一个程序建立两个窗体FORM1 FORM2,在FORM1的单元UINT1中USES了FORM2的但愿UNIT2。在FORM1中放一个按钮,写入代码ShowWindow(Form2.handle, SW_SHOW);
此时FORM2显示了出来,问题是点关闭按钮时却无法关闭FORM2,而FORM2的其他按钮工作正常。哪为高人能告诉我是什么原因啊?
此时FORM2显示了出来,问题是点关闭按钮时却无法关闭FORM2,而FORM2的其他按钮工作正常。哪为高人能告诉我是什么原因啊?
解决方案 »
- 简单:又是keydown的问题,不要笑我笨
- ◆◆◆求一个用颜色下拉列表选颜色的控件◆◆◆
- 大侠们救命啊,再搞不清楚就毕不了业了!!!!
- 能告诉我哪里有系统介绍TREEVIEW的书和贴子吗?(在线!)
- 求教关于findwindow的用法.
- 我刚学,请多指教(关于socket)(急用!!,在等待)
- 在設計一個查詢模塊時,怎樣判斷日期的合法性?
- 有人借口给别人破代码,来收取email地址,我怀疑是练**功的,有本事就http发布出来
- 重载窗体的Create方法时出现错误!
- delphi10使用idsmtp与idmessage连接QQ邮箱进行邮件发送问题
- 请教:如何在delphi中实现点对点的文件传输
- delphi中的窗体怎么取得焦点
begin
action:=cafree;
end;
procedure Tform2.FormDestroy(Sender: TObject);
begin
foem2 :=nil;
end;上面这些是写到FORM2里面的procedure TFrmMain.N15Click(Sender: TObject);
begin
if not assigned(form2) then
begin
form2 := Tform2.Create(Application);
form2.show;
end
end;这些是写到FROM1里面的,你那样写也可以!~
begin
Action := caFree;
end;
确实这样,我感觉既然都不能响应close事件,非得要人为加入active:=cafree;
说明这种创建模式只是暂时化的显示出这个窗体来,可能是有什么标志位没有设置,虽然接受到关闭消息,但是根据这个标志位来判断系统是否可以关闭这个窗体。如果是这样的化,就说明showwindow这个函数显示的窗体时肯定绕过了VCL的某个环节,导致VCL没有设置那个所谓的标志位,所以不能关闭。而窗体上控件的parent就是窗体,是窗体对象维护其上控件的创建销毁,被绕过的VCL环节应该就含有创建窗体上子控件的代码过程。这样控件就显示不出来了。这只是我的推测,还需要查看VCL源码来证实。不过目前我还没有看明白流程。
有没有高人再指点一下