Die schönste Variante finde ich per Event(Callback):
Delphi-Quellcode:
TForm2 = class(TForm)
[...]
public
ClbOnHide: TNotifyEvent;
end;
[...]
procedure TForm2.FormHide(Sender: TObject);
begin
if Assigned(ClbOnHide) then //Entspricht: if (ClbOnHide <> nil) then
ClbOnHide(Self);
end;
in Form1 sieht es dann so aus:
Delphi-Quellcode:
TForm1 = class(TForm)
[...]
private
fYourSubForm: TForm2;
procedure OnSubFormHideClb(Sender: TObject);
end;
[...]
procedure TForm1.OnSubFormHideClb(Sender: TObject);
begin
ShowMessage('Form2 wurde ausgeblendet');
end;
[...]
procedure TForm1.FormCreate(Sender:TObject);
begin
fYourSubForm := TForm2.Create(Self);
fYourSubForm.ClbOnHide := OnSubFormHideClb;
end;
Ich finde diese Variante so schön weil es keine Querverweise bei Units gibts und auch die Objectorientierung gewahrt bleibt da nicht auf globale Variablen zugegriffen werden muss.