Форум: "Основная";
Текущий архив: 2003.01.27;
Скачать: [xml.tar.bz2];
ВнизСтранное поведение 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c