Einzelnen Beitrag anzeigen

Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#37

AW: 2. Form schliessen Variable=Nil

  Alt 23. Aug 2011, 12:23
Ich weiss zwar nicht mehr, wo die Idee her ist, aber bei mir funktioniert das so: das bewusste Fenster bekommt einen wohldefinierten Namen - am Besten in einer Konstanten hinterlegt.

Diese Funktion findet ein Fenster mit einem bestimmten Namen:
Delphi-Quellcode:
function FindFormByName(AFormName: string): TForm;
var
  li: integer;
begin
  Result := nil;

  for li:= 0 to Screen.FormCount-1 do
  begin
    if (Screen.Forms[li].Name = AFormName) then
    begin
      Result := Screen.Forms[li];
      break;
    end;
  end;
end;
Diese Funktion aktiviert das Fenster, wenn bereits vorhanden, ansonsten wird es erzeugt:
Delphi-Quellcode:
const
  FORMNAME = 'MeinSuperFenster';
var
  lfrm : TMyForm; // das zu zeigende Fenster
begin
  lfrm := TMyForm(FindFormByName(FORMNAME));
  if Assigned(lfrm) then
  begin
    lfrm.Show;
    lfrm.BringToFront;
  end
  else
  begin
    lfrm := TMyForm.Create(Application);
    lfrm.Name := FORMNAME;
    lfrm.Show;
  end;
Hoffe, das hilft.
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat