扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
Form2单元接口部分 type TForm2=Class(TForm) pubic procedureLoaded;override; procedureCreateParams (varParams:TParams);override; end; 实现部分 procedureTForm2.Loaded; begin inheritedLoaded; Visible:=Flase; Position:=poDefault; BorderIcons:=[]; BorderStyle:=bsNone; //注意此时的窗口边界样式和图标, 改变这两个值,看看有无其它变化。 HandNeeded;//如果窗口不存在,就生成它。 SetBouds(0,0,Width,Height); //不改变窗口原来的大小。 end; procedureTForm2.CreateParams (varParams:TCreateParams); begin inheritedCreateParams(Params); Params.WndParent:=(OwnerasTForm).Handle; //指定父窗口的句柄。 Params.Style:=WS_CHILDorWS_CLIPSIBLINGS; //注意窗口的样式。 params.X:=0; params.Y:=0; end;
Form1接口部分 type TForm1=Class(TForm) Panel1:TPanel; Form2Button:TButton; Form3Button:TButton; procedureFormCreate(Sender:TObject); procedureFormShow(Sender:TObject); procedureFormResize(Sender:TObject); procedureForm2ButtonOnClick(Sender: ject); procedureForm3ButtonOnClick(Sender:TObject); end; Form1实现部分//需要引用Form2和Form3单元。 procedureTForm1.FormCreate(Sender:TObject); begin Form2:=TForm2.Create(Self);//实际生成窗口。 Form3:=TForm3.Create(Self); Form2.Show; Form3.Show; end; procedureFormShow(Sender:TObject); begin Form2.BringToFront;//将该窗口放置在最上面。 end; procedureFormResize(Sender:TObject); begin MoveWindow(Form2.Handle,Panel1.Left,Panel1.Top, Panel1.ClientWidth,Panel1.ClientHeight,True); //跟随着面板的大小和位置。 MoveWindow(Form3.Handle,Panel1.Left,Panel1.Top, Panel1.ClientWidth,Panel1.ClientHeight,True); end; procedureForm2ButtonOnClick(Sender:TObject); begin Form2.BringToFront; end; procedureForm3ButtonOnClick(Sender:TObject); begin Form2.BringToFront; end;
procedureTForm1.Button1Click(Sender:TObject); begin ifForm2=nilthen //判断窗口是否已经存在,如果不存在则重新生成它。 begin Form2:=TForm2.Create(Self); Form2.Parent:=Panel1; end; Form2.WindowState:=wsMaximized; Form2.Show; Form2.BringToFront; end; procedureTForm1.Button2Click(Sender:TObject); begin ifForm3=nilthen begin Form3:=TForm3.Create(Self); Form3.Parent:=Panel1; end; Form3.WindowState:=wsMaximized; Form3.Show; Form3.BringToFront; end;
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。