为什么我将窗体停靠进PageControl无法拖出

OIworm 2012-02-26 04:31:36
我用一下代码动态创建了一个窗体,并自动停靠进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编译器。
...全文
118 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
OIworm 2012-02-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 case5166 的回复:]

引用 4 楼 case5166 的回复:
f.Parent :=tab;
后好像不能托出来了哦,得重新 F.Parent := nil;窗体才能出来
我后面不是补充了嘛
[/Quote]
F.Parent := nil;窗体就自动出来了。。。我要的是能够用鼠标拖出来
我看见佛 2012-02-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 case5166 的回复:]
f.Parent :=tab;
后好像不能托出来了哦,得重新 F.Parent := nil;窗体才能出来
[/Quote]我后面不是补充了嘛
海木漄 2012-02-27
  • 打赏
  • 举报
回复
那是肯定的
f.Dock(tab,tab.ClientRect);//tab.ClientRect应该民这个导致的
都在tab的Client下了,还能拖?
一剑飘雪 2012-02-27
  • 打赏
  • 举报
回复
有点混乱
金卯刀 2012-02-27
  • 打赏
  • 举报
回复
pageControl也要设置相关属性,例如DockSite要设置为True,还有dragkind,dragmode
我看见佛 2012-02-27
  • 打赏
  • 举报
回复
f.Parent :=tab;
后好像不能托出来了哦,得重新 Form2.Parent := nil;窗体才能出来
OIworm 2012-02-26
  • 打赏
  • 举报
回复
我是将窗体1嵌入窗体2中PageControl的新标签页中,但还想将窗体1拖出来。
lzg827 2012-02-26
  • 打赏
  • 举报
回复
帮顶吧。

楼主将窗体嵌入PageCoontrol,然后整个又嵌入另外窗体?
我看见佛 2012-02-26
  • 打赏
  • 举报
回复
f.Dock(tab,tab.ClientRect);//tab.ClientRect应该民这个导致的

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧