Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.05.28;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.013 c
6-1138795143
Phoenix9000
2006-02-01 14:59
2006.05.28
Удаление и копирование файлов на сетевой ресурс


5-1132651701
nikolas
2005-11-22 12:28
2006.05.28
Текущая дата в TDateEdit из RxLib


2-1147257446
Dyakon_Frost
2006-05-10 14:37
2006.05.28
Запись в файл в три столбца!


2-1147261376
Fl@sh
2006-05-10 15:42
2006.05.28
Клиент сервер и мемори стрим


1-1144999513
_RusLAN
2006-04-14 11:25
2006.05.28
Exception. Изменение сообщения ошибки.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский