Ich habe noch nie Frame benutz ich mache das immer manuell mit Panels z.B. so:
(Achtung pseudo Code)
Code: Alles auswählen
unit hauptform;
...
...
implementation
uses form1unit, form2unit; //hier sind zwei formulare
procedure button1click;
begin
form2.visible:=false;
form1.parent:=panelframe; //panelframe ist wo die formulare anzeigt werden sollen;
form1.visible:=ture;
end;
procedure button1click;
begin
form1.visible:=false;
form2.parent:=panelframe; //panelframe ist wo die formulare anzeigt werden sollen;
form2.visible:=ture;
end;
Wenn die 2 Formulare nicht automatisch erstellt werden muß, kannst du es bein Hauptformular-OnCreate selber erstellen etwa so:
Code: Alles auswählen
prozedur hauptformularoncreate;
begin
Form1:=TForm.Create(self);
form1.align:=alclient;
form1.parent:=panelframe;
end;
Ich erstelle die immer bei bedarf manuell etwa so:
Code: Alles auswählen
prozedur hauptformularoncreate;
begin
form1:=nil;
form2:=nil;
end;
dann:
Code: Alles auswählen
procedure button1click;
begin
form2.visible:=false;
if form1=nil then begin
Form1:=TForm.Create(self);
form1.align:=alclient;
form1.parent:=panelframe;
end;
form1.visible:=ture;
end;
und bei button2click ähnlich vorgehen.