在程序中调用 MDIChild 时首先检查是否已经Create,
若未 CreateD Then Cteate it
然后Show It
请问这如何实现,希望给出代码!
若未 CreateD Then Cteate it
然后Show It
请问这如何实现,希望给出代码!
解决方案 »
- 年终总结(一):DirectShow做的播放器(有部分代码)
- 求助。急。串口通讯连接手机时,SETCOMMSTATE失败?
- ■ 请问如何设置EDIT文本框上中下对齐,不是左中右对齐■
- 如何控制Dbgrid中的前两列不受水平滚动条的限制?
- 源代码管理软件CodeHelp发布2.0
- 如何监测一台机器上的程序是否运行?
- 谈谈MyBase的存储办法和附件的处理
- 关于c/s的问题。
- 我想在运行一个表单时, 鼠标变成漏斗形的,要怎么做?
- 我发现一怪病毒,谁知道
- 我用DELPHI写的程序(用ADO访问SQL数据库)本来用的没问题
- 一个关于TClientSocket控件的问题,我用TClientSocket控件遍了一个从HTTP服务器上下载文件的程序,来看看,或许对你也有帮助?
frmMDIChild := TfrmMDIChild.Create(Application)
frmMDIChild.show;
这个不行,因为 frmMDIChild free之后<>nil,所以第一次调用 frmMDIChild可以Create,而当关闭frmMDIChild后,frmMDIChild <> nil 就不会执行
frmMDIChild := TfrmMDIChild.Create(Application)
frmMDIChild := TfrmMDIChild.Create(Application)
frmMDIChild.show;
如果没有创建实例,则创建以后SHOW,如果你只是CLOSE,并没有FREE,实例依然存在,所以直接SHOW
...
Action := caFree;
...2、子窗口的Destroy事件处理过程中加入
...
frmMDIChild := nil;
...3、主程序建立子窗口的程序段,参阅rocktan(我是一条狗)的说明。
不过MDI子窗体,create后可以不用show :)
begin
if MDIChild[i].ClassName = 'TForm1' then exit ;
Form1 := TForm1.Create(nil);
...
end;
如何判断MDI子窗体Free了?注意:当它Free之后,frmmidchild<>nil , assigned(frmmidchild)=True !frmmidchild<>nil,并不代表已被创建,并不代表它可用你在frmmidchild.Free后再写一个frmmidchild:=nil 就ok了,frmmidchild=nil了