永发信息网

Delphi中MDI窗体关闭问题

答案:2  悬赏:80  手机版
解决时间 2021-03-02 01:40
几个MDIChildForm先是最小化。然后将其中一个最大化,再点击最大化这个MDIChildForm的关闭按钮,这个窗体将会关闭。问题是当这个窗体关闭的时候为什么原先最小化的其他几个窗体中,有一个自动最大化了呢?

MDIChildForm是动态创建,关闭事件中代码是 action:=cafree;
最佳答案
调用前先调用一下这个函数
procedure TMainForm.CloseFrm;
var
i : integer;
begin
try
for i := 0 to Screen.FormCount - 1 do
begin
if Screen.Forms[i].FormStyle = fsMDIChild then
begin
CloseWindow(Screen.Forms[i].Handle);
Screen.Forms[i].Close;
end;
end;
except

end;
end;

然后每个窗体的close中写

action:=cafree;

yourform:=nil;
全部回答
看你的代码,我的理解是你在 rzpagecontrol 嵌入了窗体,然后再rzpagecontrol的页面切换后,相应的窗体也要激活(即设置焦点setfocus) 问题可能就出在设置焦点上,因为 窗体获得焦点后,窗体上的tabstop=0的twincontrol类控件也将同时获得焦点,lable不属于twincontrol类控件所以没有焦点,而tbutton是属于twincontrol类控件。 在 rzpagecontrol 的 change 事件中,可能rzpagecontrol页面并没有真正切换完成,目标页面还处于隐藏状态,delphi是绝对不能对隐藏页面设置焦点的(这一点我以前碰得过)。 为了证明我的想法是否正确,你可以在窗体中加入一个image控件或其它不能获取焦点的控件,看看是不是正常。 另外,你也可以注释掉这一行再试试: tform(rzpagecontrol1.activepage.controls[i]).setfocus;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
小米二怎么设置短信中心号码
Tommy Hilfirer地址有知道的么?有点事想过去
【谷子地】填歇后语诸葛亮吊孝---谷子地里的
以‘信心源于准备’为素材写作文
适合20多岁女人开的中高档车?
简便计算86-45+55脱式
李渊的老家并州是现在的哪里
品宣酒多少钱一瓶
【依旧烟笼十里堤】江雨霏霏江草齐,六朝如梦
牛筋皮是牛的哪个部位
郭村村民委员会地址有知道的么?有点事想过去
在网上怎么勾引男人。
轻松购一元夺宝官网被封了吗
武昌区粮道街民主路食品药监局周末是否上班?
现在YY申请短位频道6位的需要什么条件,我的
推荐资讯
这个月打算要孩子离下次月经还有10天,今天查
汽车polo三角架胶套坏了车感觉得出来吗
别克英朗汽车地板原装卡扣坏了怎么安装
成人教育本科可以考中医执业医师证吗
温州医科大学仁济学院允许转专业吗?
lol名字为什么不能加符号 lol违规字符昵称一
跪求 NBA2KOL 教练模式 挂机 按键精灵
翠屏御景在哪里啊,我有事要去这个地方
我们这里结婚要办三天酒席,今天最后一天,也
【星垂平野阔的下一句】星垂平野阔下一句是什
男友说抱我时候心脏跳的很厉害,我却没这种感
这个翡翠项链大约能值多少钱啊
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?