我有一个主窗体,窗体上有一个Panel,现在我想再创建一个窗体,让这个窗体嵌入到这个Panel中,随着这个panel的大小变化而变化,请问各位大侠,应该怎么去做呢?

解决方案 »

  1.   


    var
      frm:TForm;
    begin
      frm := TForm.Create(Panel1);
      frm.Show;
      frm.Parent := Panel1;
      frm.Align := alClient;
    end;
      

  2.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls;type
      TForm1 = class(TForm)
        Panel1: TPanel;
        procedure FormShow(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
      private
        F: TForm;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormShow(Sender: TObject);
    begin
      F := TForm.Create(nil);
      F.ParentWindow := Self.Panel1.Handle;
      F.Align := alClient;
      F.Show;
    end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      F.Free;
    end;end.
      

  3.   

    新窗体嵌入主窗体Panel时,设置Align为alClient即可。这种方法嵌入窗体、控件都可以。
      

  4.   

    刚刚试了setparent函数,把自己的窗口嵌入了一个游戏当中。酷。