请支援——MDI

setfocus 2002-12-29 02:49:56
我定义两个窗体:form1和form2;其中form1中有panel窗体一个和button,并且form1.formstyle:=fsmdiform;form2是其子窗体即为form2.formstyle:=fsmdichild;
目的:点击button时候,form2作为form1的子窗体出现在form1的panel区域中。自己试写代码如下:
if form1.MDIChildCount=0 then
begin
form2:=tform2.Create(self);
form2.Parent:=panel1;
Form2.Show ;
end;
但是不能显示在panel1中,请支援!
分不是问题!
...全文
49 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
liam 2002-12-29
  • 打赏
  • 举报
回复
MDI的子窗口只能在MDI窗口中显示,如果要把Form2显示在Panel1上的话,把
Form2.formstyle:=fsNormal即可,同时在Form2.Show的之前加入form2.Align := alClient;即能实现你的功能。

laihecongxi 2002-12-29
  • 打赏
  • 举报
回复
mdi的默认的空白区是子窗体的显示区.所以你的想法不能在MDI中实现.
如果form2为普通窗体才可以:
form2.Dock(panel1,panel1.ClientRect);
form2.show;
setfocus 2002-12-29
  • 打赏
  • 举报
回复
还有人回答吗?
setfocus 2002-12-29
  • 打赏
  • 举报
回复
m_leaner(追鑫) :方法不能通过!不行!
langer1(长江后浪推前浪--前浪死在沙滩上):我早用过了!也是一样的效果!你只是换成API了!
langer1 2002-12-29
  • 打赏
  • 举报
回复
SetParent(self.handle, parent.handle);
m_leaner 2002-12-29
  • 打赏
  • 举报
回复
跟一下看BEGIN和end之间执行了吗,我觉得代码没有问题呀
if form1.MDIChildCount=0 then
begin
form2:=tform2.Create(self);
form2.Parent:=panel1;
Form2.Show ;
end;
试验一下
if form1.MDIChildCount=0 then
begin
form2:=tform2.Create(self);
form2.Parent:=panel1;
Form2.visible:=true;
end;
setfocus 2002-12-29
  • 打赏
  • 举报
回复
今天都没上班?
setfocus 2002-12-29
  • 打赏
  • 举报
回复
说明白点!不是很清楚
redwh 2002-12-29
  • 打赏
  • 举报
回复
用Frame啊

5,379

社区成员

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

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