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;