Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2008, 13:16   #1
CruelAssembler
Новичок
Джуниор
 
Регистрация: 20.11.2008
Сообщений: 2
По умолчанию Как в дочерней форме узнать о закрытии главной

Нужно сделать так, чтобы при закрытии дочерней формы без закрытия главной происходило что-то одно, а когда дочерняя форма закрывается из-за того, что была команда закрыть главную - что-то другое. Но OnCloseQuery дочерней формы вызывается раньше, чем главной! Как же определить, чем вызвано закрытие дочерней формы? Спасибо!
CruelAssembler вне форума Ответить с цитированием
Старый 20.11.2008, 17:47   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Такой вариант: есть Unit1 (Form1) - главная и Unit2 (Form2) - дочерняя.
В Unit2 в разделе interface объявляем переменную:
MainFormShow: Boolean = False;
В Unit1 обрабатываем следующие события:
Код:
procedure TForm1.FormShow(Sender: TObject);
begin
  MainFormShow := True;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  MainFormShow := False;
    if Form2.Visible then Form2.Close;
end;
В Unit2:
Код:
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if MainFormShow
    then ShowMessage ('Главная открыта')
    else ShowMessage ('Главная закрыта');
end;
Arigato вне форума Ответить с цитированием
Старый 20.11.2008, 19:27   #3
CruelAssembler
Новичок
Джуниор
 
Регистрация: 20.11.2008
Сообщений: 2
По умолчанию

Спасибо, только что сам дотумкал. Просто в дочерней надо обрабатывать не OnCloseQuery, а OnClose - оно вызывается после OnCloseQuery главной.
CruelAssembler вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как зная ProcessID получить Handle главной формы? NikLik Win Api 8 27.08.2021 21:29
как связать с главной таблицей другие таблицы Droid БД в Delphi 7 24.07.2008 13:36
как поменять текст в лабел главной формы MAcK Общие вопросы .NET 8 08.05.2008 12:42
Как поставить заставку перед запуском главной формы программы? NiganInterCOM Общие вопросы Delphi 2 22.02.2008 16:11
Как сделат так, что бы при закрытии проекта появлялось сообщение monushka Помощь студентам 7 02.11.2007 08:12