Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.065 c
15-1146744905
Golik
2006-05-04 16:15
2006.05.28
Как создать резервную копию БД ?


15-1146317340
Yegorchic
2006-04-29 17:29
2006.05.28
"Программы, написанные на языках программирования"


2-1147186661
XiAndr
2006-05-09 18:57
2006.05.28
Монопольный запуск


1-1145526338
.ruslan
2006-04-20 13:45
2006.05.28
Сортировка ListView


15-1146767168
Volf_555
2006-05-04 22:26
2006.05.28
Как можно запретить автоматическую закачку из инета программ?




   Наверх