Thema: Delphi MDI-ClientForm erzeugen

Einzelnen Beitrag anzeigen

Quake

Registriert seit: 25. Aug 2003
222 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: MDI-ClientForm erzeugen

  Alt 3. Feb 2005, 10:25
Hallo, erstmal danke für dein mühen, aber dies von dier ist der erste Blick
Ich hab jetzt aber den Fehler heraus gefunden. Das Problem ist ich möchte das Fenster zurück geliefert bekommen. Deswegen habe ich bei meinem 2. Beitrag aus der Procedure eine Function gemacht. Das Problem in dieser Function trat auf, wenn das Formular schon existiert. Da ich in meinem Programm eine kleine Änderung gegenüber dem 2. Beitrag gemacht hatte. Undzwar hat ich in der Function zuerst MDIChildren[i].BringToFront; und erst danach result:=MDIChildren[i]; . Das hat zur folge, das i nicht mehr die nummer des gleichen MDIChildren ist. Wird der Code in der Reihenfolge verwendet wie er im Beitrag 2 steht liefert result das richte Formular zurück. Und das Create habe ich auch noch verändert. Mit Application.CreateForm(FormularKlasse,result) hat das MDIChild den falschen Owner.

ciao
Quake
Delphi-Quellcode:
function TApplikationsForm.MDIClientFormErzeugen(FormularKlasse: TFormClass): TForm;
  var
    i: integer;
  begin
    result:=nil;
    for i:=0 to pred(MDIChildCount) do
    begin
      if MDIChildren[i] is FormularKlasse then
      begin
        result:=MDIChildren[i];
        result.BringToFront;
        result.WindowState:=wsNormal;
        Exit;
      end;
    end;
    result:=FormularKlasse.Create(self);
  end;
  Mit Zitat antworten Zitat