Die Form ist nicht mit ShowModal geöffnet sondern nur mit Show.
Beim schließen der Form wird das onClose Event getriggert -> FormClose
in FormClose wird eine callback funktion des parents aufgerufen in welcher
form.Release;
form := nil;
gesetzt wird.
Warum so kompliziert? Bei nicht modalen Forms brauchst du überhaupt kein destroy, free oder release.
Einfach nur:
Delphi-Quellcode:
procedure TMyForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
Falls du die Formvariable noch brauchst, um zu überprüfen, ob die Form existiert, kannst du sie hier auch auf nil setzen.