Eigentlich ganz einfach. Deklariere eine Liste, das die geöffneten Detailfenster aufnimmt. Beim Zerstören des Formulars gibtst Du die geöffneten Detailfenster wieder frei:
Delphi-Quellcode:
Type
TMyForm = Class (TForm)
...
Private
fDetails : TObjectList;
...
End;
Procedure TMyForm.FormCreate (Sender : TObject);
Begin
...
fDetails := TObjectList.Create;
End;
Procedure TMyForm.FormDestroy (Sender : TObject);
Begin
fDetails.Free;
End;
Procedure TMyForm.DBGridDblClick (Sender : TObject);
Var
f : TMyDetailWindow;
Begin
f := TMyDetailWindow.Create (Nil);
fDetails.Add (f);
f.Show;
End;
Du kannst noch einbauen, das beim Minimieren des Hauptfensters auch die Detailfenster minimiert werden etc.