关于MDI的一个问题

a3skite 2002-07-25 11:10:50
我创建了一个mdi程序,运行时所有的子窗口全部被打开,我希望程序运行时主窗口是空的,然后根据用户的不同操作打开不同的子窗口,请问怎么实现?
...全文
45 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
del_c_sharp 2002-07-25
  • 打赏
  • 举报
回复
var
h:hwnd;
begin
h:=FindWindow('Tform2',nil);
if h<>0 then
begin
//showwindow(form1.MDIChildren[0].Handle,SW_SHOWNORMAL );
showwindow(h,SW_SHOWNORMAL);
end;
zhaojin1975 2002-07-25
  • 打赏
  • 举报
回复
先按Snakeguo(楠) (莫等闲&up2myself)说的做,然后
这样实现,子窗口已经打开,只是把它激活,而不是再创建一个
if not Assigned(form1) then
begin
Application.CreateForm(Tform1,form1);
form1.Show;
end
else
form1.Show;
a3skite 2002-07-25
  • 打赏
  • 举报
回复
??????????????????????
谢谢两位
1. 如果子窗口已经打开,我希望只是把它激活,而不是再创建一个,请问怎么实现?
2. careerist() 说的代码在哪?我没找着。
??????????????????????
skytears 2002-07-25
  • 打赏
  • 举报
回复
把子窗口从Project->Options...->Auto-create forms中去掉
然后在主窗口中调用:Application.CreateForm(tform1, form1);
form1.show;
skytears 2002-07-25
  • 打赏
  • 举报
回复
把子窗口从Project->Options...->Auto-create forms中去掉
然后在主窗口中调用:
application.createform(tform1,form1);
form1.show;
careerist 2002-07-25
  • 打赏
  • 举报
回复
在program中把子窗口的Application.CreateForm(xxx, xxx)都删掉,然后在主窗口中添加菜单或者按钮,在它们的事件中调用以下代码:
Application.CreateForm(xxx, xxx);
xxx.show;
Snakeguo 2002-07-25
  • 打赏
  • 举报
回复
把子窗口从Project->Options...->Auto-create forms中去掉
然后在主窗口中调用:
MDIForm1 := TMDIForm1.Create(Self);
MDIForm1.Show;

注意在MDIForm1.OnClose事件中加上:Action := caFree;
a3skite 2002-07-25
  • 打赏
  • 举报
回复
???????????????????
存在时用form1.Show并没激活子窗口form1
怎么才能激活form1?
???????????????????

5,386

社区成员

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

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