Delphi-Quellcode:
procedure TForm1.btnButton1Click(Sender: TObject);
begin
with TForm2.Create(nil) do
begin
try
ShowModal;
finally
Free;
end;
end;
end;
// oder wenn die Variable Form2 benötigt wird:
begin
Form2 := TForm2.Create(nil);
try
Form2.ShowModal;
finally
Form2.Free;
Form2 := nil;
end;
end;
Im FormClose darf man für modale Formulare kein Release aufrufen oder Action auf caFree setzen.
Das löst sporadisch Zugriffsverletzungen aus.
Form2 an dieser Stelle auf nil zu setzen macht ebenfalls keinen Sinn.
Für die Freigabe modaler Formulare ist der Aufrufer verantwortlich.