Delphi-Quellcode:
if assigned(Form2) then
begin
Form2:=nil;
end;
Hier gibst Du Form2 nicht frei (zumindestens bei der
VCL würde das Form2.Free fehlen);
Soweit ich das verstanden habe geht es um Android als Ziel und da haben wir immer noch ARC, was bedeutet,
dass Free auch nur das Ding intern auf nil setzt und damit den Referenzzähler runter zählt.
Ja, man könnte Free stattdessen aufrufen um besser
Win32 kompatibel zu sein und für den Zeitpunkt, an
dem ARC unter Mobile wegfällt vorbereitet zu sein, ich glaube aber nicht dass der Fehler daher kommt.
Noch ein Tipp an den OP: nicht vor jede Variablen Deklaration muss man var davor schreiben wenn man
mehrere aufeinanderfolgende hat. Es genügt dann bei der ersten.
Beispiel:
Delphi-Quellcode:
var
i : Integer;
s: string;