¿Y por qué privar al usuario de métodos tradicionales para cerrar una ventana habiendo otras formas de solucionar esto?
Al momento de construir un formulario hijo:
Código Delphi
[-]
with TChildForm.Create(Self) do
FreeNotification(Self);
Tile;
Para recibir la notificación de defunción del hijo redefinimos el método Notification del padre:
Código Delphi
[-]
procedure TMainForm.Notification(AComponent: TComponent; Operation: TOperation);
begin
inherited;
if (AComponent is TChildForm) and (Operation = opRemove) then
Tile;
end;
Para asegurar que el hijo muera usamos su evento OnClose:
Código Delphi
[-]
procedure TChildForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
// Saludos