Thema: Delphi MDI-ClientForm erzeugen

Einzelnen Beitrag anzeigen

Quake

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

MDI-ClientForm erzeugen

  Alt 2. Feb 2005, 14:36
Hallo,

in meiner MDI-Anwendung möchte ich verschiedene MDI-Client Formulare auf Anforderung öffnen. Wenn ich in jedem Menüpunkt folgenen Code Verwende funktioniert das auch:
Code:
procedure THauptForm.ErsteMenuPunktClicken(Sender: TObject);
  var
    i: integer;
  begin
    for i:=0 to pred(MDIChildCount) do
      if MDIChildren[i] is TMeinErstesMDIClienForm then
      begin
        MDIChildren[i].BringToFront;
        MDIChildren[i].WindowState:=wsNormal;
        Exit;
      end;
    TMeinErstesMDIClienForm.Create(self);
  end;
Was micht daran stört? Ich muss für jeden Menüpunkt diesen Code eingeben da ich ja bei jedem Münüpunkt ein anderes Formular öffnen möchte und deswegen unterscheiden sich auch die Klassen der Formulare.
Deswegen dachte ich man könnte es auch so machen:
Code:
procedure THauptForm.ErsteMenuPunktClicken(Sender: TObject);
  begin
    MDIClientFormErzeugen(TMeinErstesMDIClienForm);
  end;

procedure THauptForm.MDIClientFormErzeugen(FormularKlasse: TClass);
  var
    i: integer;
  begin
    for i:=0 to pred(MDIChildCount) do
      if MDIChildren[i] is FormularKlasse then
      begin
        MDIChildren[i].BringToFront;
        MDIChildren[i].WindowState:=wsNormal;
        Exit;
      end;
    TForm(FormularKlasse).Create(self);
  end;
Aber leider bekomme ich eine Zugriffsverletzung beim Create.

Wie bekomme ich dies denn aber nun richtig hin?

ciao
Quake
  Mit Zitat antworten Zitat