MDI窗体的问题,急!谢谢各位!!!

Grace2003 2004-04-14 11:53:12
请问MDI窗体下,如何当打开第二个子MDI窗体时关闭第一个MDI子窗体啊,也就是说如何保证当前打开的只能是一个子窗体,我是初学者,谢谢各位指点了,解决马上给分!
...全文
77 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chuxin1 2004-04-14
  • 打赏
  • 举报
回复
来晚了!

主窗口调用Form2的事件代码:
for i:=0 to Form1.MDIChildCount-1 do
Form1.MDIChildren[i].Close;
Application.CreateForm(TForm2, Form2);
Form2.Show();

Form2的OnClose事件代码:
Action := caFree;
10975037 2004-04-14
  • 打赏
  • 举报
回复
if self.MDIChildCount>0 then self.MDIChildren[0].Close;
CreateMDIChild('NONAME' + IntToStr(MDIChildCount + 1));
hhzqf1980 2004-04-14
  • 打赏
  • 举报
回复
procedure TMainForm.closeAll;
var
I: Integer;
begin
for I := MDIChildCount-1 downto 0 do
MDIChildren[I].Close;
end;
menggirl 2004-04-14
  • 打赏
  • 举报
回复
cafree;
错了
程序x人生 2004-04-14
  • 打赏
  • 举报
回复
声明一个全局子窗体对象变量,动态创建子窗体,且在每次创建时,判断是否为空,否则销掉这个对象再重新创建
hhzqf1980 2004-04-14
  • 打赏
  • 举报
回复
while mainform.MDIChildCount<>0 do begin
mainform.MDIChildren[0].Close;
mainform.MDIChildren[0].Free;
end;
menggirl 2004-04-14
  • 打赏
  • 举报
回复
onclose
action:=Cnfree;

5,392

社区成员

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

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