Sub OnMDIClose(Sender: Object; Args: IMDICloseEventArgs);
Begin
//набор операторов;
End Sub OnMDIClose;
Sender - параметр, возвращающий компонент, сгенерировавший событие.
Args - параметр, позволяющий определить параметры события.
Событие OnMDIClose наступает перед закрытием дочерней MDI-формы. Данное событие должно обрабатываться у главной MDI-формы.
При закрытии главной MDI-формы сначала будут закрыты все дочерние MDI-формы, при этом для них будет сгенерировано данное событие. Если в обработчике OnMDIClose закрытие дочерней MDI-формы было отменено, то процедура закрытия дочерних форм будет прекращена. Родительская форма закрыта не будет. Закрытие дочерних форм осуществляется в порядке, обратном созданию (если дочерние формы были созданы в порядке A->B->C, то закрытие будет осуществляться в порядке C->B->A).
Для выполнения примера предполагается наличие формы. Данная форма является родительской MDI-формой, содержащей несколько дочерних. При работе формы у дочерних MDI-форм изменяется значение свойства Tag.
Sub FormOnMDIClose(Sender: Object; Args: IMDICloseEventArgs);
Begin
If Args.MDIChild.Tag = 100 Then
Args.Allow := False;
End If;
End Sub FormOnMDIClose;
После выполнения примера при попытке закрыть дочернюю MDI-форму, если ее свойство Tag равно "100", то закрытие данной формы будет отменено.
См. также: