Главная страница
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.045 c
4-1141243206
g-l-u-k
2006-03-01 23:00
2006.05.28
Отлов окна по его классу


4-1141399908
Handle
2006-03-03 18:31
2006.05.28
Как завершить системныЙ процесс?


1-1145436571
apl
2006-04-19 12:49
2006.05.28
Добавление компонентов! Подскажите!


1-1145444485
solenko
2006-04-19 15:01
2006.05.28
Вызов функции во время выполнения


15-1146647604
Yanis
2006-05-03 13:13
2006.05.28
Где скачать java-игры для телефона?