Was stört dich am Standard:
Action := caFree;
?
Nichts, das macht aber exakt dasselbe wie Release.
Zitat:
Einfach mal so aus dem Bauch heraus if ((Form2 <> nil) and (Assigned(Form2))) then
Das hilft auch nicht.
Zitat:
procedure TForm1.Button1Click(Sender: TObject);
var
F: TForm;
I: Integer;
begin
for I := 0 to Screen.FormCount - 1 do
begin
F := Screen.Forms[I];
if F is TFrom2 then
begin
ShowMessage('Form 2 exists, opening...');
F.Visible:=true;
F.BringToFront;
Exit;
end;
end;
ShowMessage('Form 2 does not exist, creating...');
F:=TForm2.Create(self);
F.Visible:=true;
F.BringToFront;
end;
Geht, ist aber reichlich umständlich...
Danke!
P.S.
Das Problem liegt meistens zwischen den Ohren! Es gibt gar kein Problem. Ich hatte Form2 nochmal in unit1 deklariert, drum wurde der nie auf NIL gesetzt, schön blöd...