Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.08.2010, 14:31   #11
misher
Участник клуба
 
Аватар для misher
 
Регистрация: 26.05.2010
Сообщений: 1,648
По умолчанию

Цитата:
Можно использовать ModalResult, значение которого возвращает ShowModal
а поподробнее про эту процедуру?
This world will never be What I expected (c)
misher вне форума Ответить с цитированием
Старый 30.08.2010, 14:40   #12
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,850
По умолчанию

Модальная форма может возвращать результат (целое число). К примеру, диалоги типа MessageDlg возвращают таким образом нажатую кнопку (mrOk, mrCancel и т.п.). Можно из своей формы возвращать результат mrOk, если пароль введен и mrCancel, если закрыли форму или нажали "Отмена". А в вызывающей процедуре делать проверку результата.
Arigato вне форума Ответить с цитированием
Старый 10.09.2010, 19:17   #13
glGizma
Пользователь
 
Регистрация: 25.02.2010
Сообщений: 49
По умолчанию

Код:
[MyPass.dpr] =
program MyPass;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};

{$R *.RES}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Form2.Show;
  Application.Run;
end.
{********************************} // END;
[Unit1.pas] =
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.ShowMainForm:=false; //не отображать главное окно приложения
end;

end.
{********************************} // END;
[Unit2.pas] =
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ExtCtrls;

type
  TForm2 = class(TForm)
    Panel1: TPanel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Edit1: TEdit;
    Image1: TImage;
    Label1: TLabel;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

uses Unit1;

{$R *.DFM}

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if Form2.ModalResult=mrOk then //если пользователь нажал на кнопку Ok, то
   if Edit1.Text='123' then //если набран необходимый пароль, то
      begin
         Form1.Show; //показать главное окно
         Exit; //выйти из этой процедуры
      end;
Application.Terminate;//если все вышеуказанные условия не выполняются, то остановить программу
end;

procedure TForm2.BitBtn1Click(Sender: TObject);
begin
Form2.ModalResult:=mrOk; //результат работы этого окна
Close; //закрыть это окно
end;

procedure TForm2.BitBtn2Click(Sender: TObject);
begin
Form2.ModalResult:=mrCancel; //результат работы этого окна
Close; //закрыть это окно
end;

end.
glGizma вне форума Ответить с цитированием
Старый 10.09.2010, 19:23   #14
misher
Участник клуба
 
Аватар для misher
 
Регистрация: 26.05.2010
Сообщений: 1,648
По умолчанию

спасибо, за код!
This world will never be What I expected (c)
misher вне форума Ответить с цитированием
Старый 10.09.2010, 19:35   #15
glGizma
Пользователь
 
Регистрация: 25.02.2010
Сообщений: 49
По умолчанию

Можно ещё упростить Беz использования form2, можно ещё приплести inifile,
glGizma вне форума Ответить с цитированием
Старый 10.09.2010, 20:25   #16
misher
Участник клуба
 
Аватар для misher
 
Регистрация: 26.05.2010
Сообщений: 1,648
По умолчанию

и как это будет?
This world will never be What I expected (c)
misher вне форума Ответить с цитированием
Старый 10.09.2010, 20:33   #17
glGizma
Пользователь
 
Регистрация: 25.02.2010
Сообщений: 49
По умолчанию

Вот небольшой пример, я так использовал. Не_много погодя напишу ещё круче пример, с кодировко (смепа пароля.ini)
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  form1.Height := 120 ;
  form1.Width  := 225 ;
end;

procedure TForm1.sButton1Click(Sender: TObject);
begin
if Form1.ModalResult=mrOk then //если пользователь нажал на кнопку Ok, то
   if sEdit1.Text='123' then //если набран необходимый пароль, то
      begin
         redacktorr;
         //Form1.Show; //показать главное окно
         //Exit; //выйти из этой процедуры
      end;
      sEdit1.Text:='';
end;

procedure TForm1.redacktorr;
begin
    Form1.Width := 377; // Расширяем форму (дополнительные настройки)
end;
glGizma вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Листа под паролем. frozzy_16 Microsoft Office Excel 18 01.04.2010 14:15
Программа под Windows girkoff Софт 21 14.02.2010 08:31
Страница под паролем. oboroten09 Общие вопросы C/C++ 1 14.01.2010 00:51
Программа под WinCE YurkaGUN Помощь студентам 5 04.11.2009 16:56