Forum: Projektplanung und -Management
by bcvs,
12. Mär 2015
Nein, das war schon immer so.
Forum: Projektplanung und -Management
by bcvs,
12. Mär 2015
Genau für diesen Fall gibt es ja das OnClose-Ereignis, damit du da nochmal eingreifen kannst. Und ob du Release selbst aufrufst oder nicht ist Geschmackssache.
Das hier:
procedure TFrmClient1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
FrmClient1 := nil;
end;
bewirkt genau das selbe wie:
procedure TFrmClient1.FormClose(Sender: TObject; var Action:...
Forum: Projektplanung und -Management
by bcvs,
11. Mär 2015
Du erzeugst ja eine Instanz der Klasse TForm. Diese Diese Instanz gibt sich selbst frei, wenn im das Action im Onclose auf caFree steht. Dazu braucht es eigentlich überhapt keine Instanzvariable (in deinem Fall FrmClient1).
Dein FrmClient zeigt nur zusätzlich noch auf die Instanz, kann aber auch nil sein oder theoretisch sonst irgendwohin zeigen.
Forum: Projektplanung und -Management
by bcvs,
11. Mär 2015
Ich mache im Prinzip sowas:
procedure TFrmClient1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
FrmClient1:=nil;
end;
Also kein FreeAndNil, denn das Free wird ja automatisch durch das Action:=caFree ausgelöst.