Folgende Procedure prüft, ob ein Formular schon offen ist und erzeugt es ggf. neu:
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;