Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.28;
Скачать: CL | DM;

Вниз

Закрытие формы   Найти похожие ветки 

 
Viconia ©   (2006-05-13 16:54) [0]

У меня главной формой является окошко с паролем. Когда пароль вводится, оно скрывается и появляется вторая форма. В form2 на кнопку выход я прописала form1.close. Но возникает проблема - если щелкать на кнопку "крестик" на шапке формы, но form2 закрывается, но form1 остается скрытой, т.е. приложение не закрывается. Как сделать так, чтобы при нажатии на "крестик" form1 закрывалась?


 
Der Nechk@ssoff ©   (2006-05-13 17:01) [1]

На  form1 наверное есть кнопка для проверки пароля? Проверяй пароль,если пароль=true то form1.close; или showmessage("Неверныепароль!");


 
Viconia ©   (2006-05-13 17:05) [2]

Так если у меня form1 главная, то если я выполню form1.close у меня приложение закроется полностью.


 
easy ©   (2006-05-13 17:08) [3]

http://dfc.com.ru/password.zip  2,4 kb


 
Viconia ©   (2006-05-13 17:15) [4]

Я, наверное, немного неправильно сформулировала:
Как сделать так, чтобы при нажатии крестика на шапке формы form2 одновременно закрывалась и Form1


 
Viconia ©   (2006-05-13 17:28) [5]

to easy:
я на делфи первый раз прогу делаю, поэтому еще плохо разбираюсь:
а если у меня много форм, мне нужно все application.createform писать


Application.Initialize;
 with TForm1.Create(Application) do begin
   try
     Showmodal;
     if (ModalResult=mrOK) and (Edit1.text="password") then begin
       Application.CreateForm(TForm2, Form2);


Вот тут, да?


 Application.Run;
     end;
   finally
     Free;
   end;
 end;


 
Шпиён   (2006-05-13 17:52) [6]

"Повесить" на TForm2.OnClose:

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form1.Close;
end;


 
Viconia ©   (2006-05-13 18:03) [7]

Большое спасибо всем!!! Разобралась-таки:))))


 
Жуков Олег   (2006-05-13 22:03) [8]

To Viconia -
Лучше изначально не делать форму для ввода пароля главной, от этого только проблемы.
В Delphi главной становится первая создаваемая форма, у которой Owner=Application. Поэтому можно сделать так:

function CheckPassword(): Boolean
var
 Form: TInputPasswordForm;
begin
 Form := TInputPasswordForm.Create(nil);  // т.к. Owner <> Application, эта форма не станет главной
 try
   Result := Form.ShowModal() = mrOk;
   if Result then
     Result := Form.EditPassword.Text = "12345"; // мой секретный пароль
 finally
   Form.Free();
 end;
ebd;


А в файле DPR использовать:
if CheckPassword() then
begin
 // Тут создавать главную форму, и делать всё остальное что нужно для запуска программы
end;



Страницы: 1 вся ветка

Текущий архив: 2006.05.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.035 c
2-1147185339
HBZ
2006-05-09 18:35
2006.05.28
Использование DLL


2-1147605348
Mr tray
2006-05-14 15:15
2006.05.28
делает ли что-то exit в конце процедуры


2-1147541363
kilonet
2006-05-13 21:29
2006.05.28
Помогите с построением дерева (TTreeView)


2-1147432717
Andrey235
2006-05-12 15:18
2006.05.28
работа приложения в DOS e


6-1138795143
Phoenix9000
2006-02-01 14:59
2006.05.28
Удаление и копирование файлов на сетевой ресурс