Du darfst die Variable
Form2 nicht verwenden!!!
Empfehlung: globale Variable Form2 löschen.
Delphi-Quellcode:
function FindOrCreateForm(FormClass: TFormClass; var Reference):Boolean;
var
i : Integer;
begin
for i := Screen.CustomFormCount-1 downto 0 do
begin
if Screen.CustomForms[i].ClassType = FormClass then
begin
TCustomForm(Reference) := Screen.CustomForms[i];
Result := True; // gefunden
Exit;
end;
end;
Application.CreateForm(FormClass, Reference);
Result := False; // neu erzeugt
end;
procedure TForm1.Button1Click(Sender: TObject);
var
frm : TForm2;
begin
if FindOrCreateForm(TForm2, frm) then
begin
Memo1.Lines.Add(DateTimeToStr(now)+' Create');
end
else
begin
Memo1.Lines.Add(DateTimeToStr(now)+' schon da');
end;
Frm.Caption := 'Test';
Frm.Show;
Frm.WindowState := wsNormal; // falls minimiert -> sichtbar machen
end;