一個窗口可不可以一建立就溶合在某PANEL﹐能的話可以在MDI主窗口用嗎﹖﹖

解决方案 »

  1.   

    IF form2 = nil then
      begin
        form2 := TForm2.CreateParented(Panel1.Handle);
        Form2.Show;
        Form2.Left := 0;
        Form2.Top := 0;
      end else Form2.Show;
      

  2.   

    var
      FrmMain: TFrmMain;
      FMenu: TSeSkinItem;
      NewChildClass: TFormClass;
      NewChildForm: TForm;implementation
    {$R *.DFM}procedure TFrmMain.ItemClick(Sender: TObject);
    begin  if Assigned(NewChildForm) then
      begin
        try
          NewChildForm.Free;
        finally
          FMenu.Enabled := True;
        end;
      end;  case (Sender as TSeSkinItem).tag of
        11: NewChildClass := TFrmAAA;
        12: NewChildClass := TFrmBBB;
        13: NewChildClass := TFrmCCC;
      else
        NewChildClass := nil;
        exit;
      end;  if Assigned(NewChildClass) then
      begin
        NewChildForm := NewChildClass.Create(Application);
        with NewChildForm do
        try
          Hint := AppTitle;
          BorderStyle := bsNone;
          BorderIcons := [];
          Parent := Self.Panel1;
          WindowState := wsMaxiMized;
          Align := alClient;
          Show;
        finally
          FMenu := Sender as TSeSkinItem;
          FMenu.Enabled := False;
        end;
      end;
      Self.Caption := AppTitle + '管理系统 -> ' + NewChildForm.Caption;
    end;
      

  3.   

    一個窗口可不可以一建立就溶合在某PANEL﹐能的話可以在MDI主窗口用嗎﹖﹖
    可以, 能。IF form2 = nil then
      begin
        form2 := TForm2.CreateParented(Panel1.Handle);
        Form2.Show;
        Form2.Left := 0;
        Form2.Top := 0;
      end else Form2.Show;
      

  4.   

    IF not assigned(form1) then
      begin
        form1 := TForm1.Create(Application);
        Form1.parentWindow := Panel1.handle;
        Form1.Show;
    end
      

  5.   

    使用ABC组件可以省很多功夫的,一句代码都不用写,效果也很好
      

  6.   

    关于融合可以这样:
      panel1.DockSite :=true;
      application.CreateForm(tform2,form2);
       form2.Dock(panel1,BoundsRect);
       form2.show;
      

  7.   

    改为下面语句还可以将form2停靠到form1.panel1中!
     panel1.DockSite :=true;
     application.CreateForm(tform2,form2);
       form2.Dock(panel1,BoundsRect);
       form2.DragKind:=dkdock;
       form2.DragMode:=dmautomatic;
       form2.show;