我想拖放地有规矩点的就是拖放到 某个Panel1后,能创建页面标签比如拖放了 5个窗体到Form1.Panel1中,则创建5个页面标签,当不停靠在上面时就自动取消标签说白点:就是像MyIE那样多页面标签,只不过每个页面我想是 窗体而 不是事先在Form1中用PageControl来做好的,而且子窗体能够随时拖出来。找了个Gavina的组件,好像不太理想。谢谢

解决方案 »

  1.   

    要有标签还是用pagecontrol吧,不过用动态方法来创建TabSheet.
    在form1上放一个pagecontrol1,
    然后,我假设点一个按钮确发新增事件.
    procedure btnclick(sender: TObject);
    var
      a: TTabSheet;
      b: TForm;
    begin
      a:= TTabSheet.Create(Self);
      a.pagecontrol := pagecontrol1;
      b:= Tform.Create(Self);
      b.Parent := a;
      b.Caption := 'testfrm';
      a.Caption := b.Caption;
      b.BorderStyle := bsnone;
      b.visible := true;
      b.Align := alClient; 
    end;
      

  2.   

    前面没看到你说的是拖放。拖放也差不多,只要判断一下,form有没有拖到pagecontrol的范围内,如果在范围内的话,就创建一个tabsheet,然后把form的parent设成tabsheet.同时from的align设为alcient.form的borderstyle设为bsnone,再把tabsheet的caption设成form一样就行了。
      

  3.   

    谢谢  zhangcheng125(老狼)不过如何让TabSheet能显示滚动条? 
    因为我的窗体可能比TabSheet大,显示后里面的东西被截断了