Главная страница
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.058 c
15-1146731009
MrShadow_
2006-05-04 12:23
2006.05.28
Прозрачность отдельных компонентов...


2-1146753639
Gelios
2006-05-04 18:40
2006.05.28
ФУНКЦИЯ ПЕРЕВОДА БУКВ РУССКОГО АЛФАВИТА В ВЕРХНИЙ РЕГИСТР


8-1134388588
Ботвин Дмитрий
2005-12-12 14:56
2006.05.28
Несколько звуковых карт


15-1146261312
lookin
2006-04-29 01:55
2006.05.28
Skype никто не желает?


2-1147448103
kester
2006-05-12 19:35
2006.05.28
Двумерный массив в константе