Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.27;
Скачать: CL | DM;

Вниз

Странное поведение fsMDIChild формы, или ...   Найти похожие ветки 

 
AM   (2003-01-16 13:15) [0]

Доброго всем дня! Вот есть у меня главная родительская форма (fsMDIForm) и есть дочерняя форма (fsMDIChild), которую я создаю в процессе работы приложения. На OnClose дочерней формы стоит обработчик. Вопрос:
Разве не должен этот обработчик вызываться, когда дочерняя форма открыта, а я закрываю Главную родительскую? Насколько я понимаю Главная форма сначало закрывает все дочерние потом себя ... или это не так?


 
Игорь Шевченко ©   (2003-01-16 13:40) [1]

Не должен вызываться.


 
gsu ©   (2003-01-16 13:41) [2]

на то и MDIChild


 
Chubais ©   (2003-01-16 13:43) [3]

фсё правильно
при закрытии главной идет OnCloseQuery чилдов, а OnClose не идет


 
Игорь Шевченко ©   (2003-01-16 13:45) [4]

Для того, чтобы попытаться это побороть, можно написать следующий код:

TForm1 - fsMDIForm


procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
while ActiveMDIChild <> nil do begin
ActiveMDIChild.Close();
ActiveMDIChild.Release();
Application.ProcessMessages();
end;
end;


 
AM   (2003-01-16 13:54) [5]

>> Игорь Шевченко © (16.01.03 13:45)
Я последовал вашему совету, все работает, но самое интересное что при этом получается побочный эффект:
Событие FormCloseQuery(Sender: TObject; var CanClose: Boolean);
дочерней формы вызывается дважды :))


 
Игорь Шевченко ©   (2003-01-16 14:25) [6]

См. Chubais © (16.01.03 13:43)



Страницы: 1 вся ветка

Текущий архив: 2003.01.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
1-86916
МитяЙ2
2003-01-14 22:00
2003.01.27
Возврат из процедуры (функции)


3-86671
Young_01
2003-01-08 16:08
2003.01.27
Ошибка при открытии dbf файлов


14-87125
^Sanya
2003-01-09 09:03
2003.01.27
Как ник сменить?????


14-87043
Andy Eremin
2003-01-08 13:33
2003.01.27
Как установить BDE Admin без дистрибутива


9-86618
Miron
2002-07-26 11:32
2003.01.27
OpenGL