Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Странное поведение fsMDIChild формы, или ... [D5, Win95/98, Win2k]


AM ©   (2003-01-16 13:15:00) 

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


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

См. Chubais © (16.01.03 13:43)


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

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


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

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

TForm1 - fsMDIForm


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


Chubais   (2003-01-16 13:43:00) [4]

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


gsu   (2003-01-16 13:41:00) [5]

на то и MDIChild


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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо