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