我用一下代码动态创建了一个窗体,并自动停靠进PageControl中,但是却无法拖出,且窗体在PageControl中无法移动,缩放和关闭。
procedure NewForm;
var
  f: TForm1;
  tab: TTabSheet;
begin
  tab:=TTabSheet.Create(Form2.PageControl1);
  tab.Parent := Form2.PageControl1;
  tab.PageControl := Form2.PageControl1;
  f := TForm1.Create(tab);
  f.Parent :=tab;
  f.Show;
  f.Dock(tab,tab.ClientRect);
  Form2.PageControl1.ActivePage := tab;
end;
动态创建的窗体dragmode=dmautomatic,dragkind=dkdock。
而将停靠语句f.Parent :=tab;f.Dock(tab,tab.ClientRect);去掉,产生的窗体被拖进PageControl后却能再拖出。
我使用的是Delphi XE2编译器。

解决方案 »

  1.   

    f.Dock(tab,tab.ClientRect);//tab.ClientRect应该民这个导致的
      

  2.   

    我是将窗体1嵌入窗体2中PageControl的新标签页中,但还想将窗体1拖出来。
      

  3.   

    f.Parent :=tab;
    后好像不能托出来了哦,得重新   Form2.Parent := nil;窗体才能出来
      

  4.   

    pageControl也要设置相关属性,例如DockSite要设置为True,还有dragkind,dragmode
      

  5.   

    那是肯定的
    f.Dock(tab,tab.ClientRect);//tab.ClientRect应该民这个导致的
    都在tab的Client下了,还能拖?
      

  6.   

    F.Parent := nil;窗体就自动出来了我要的是能够用鼠标拖出来