主题:如何让子窗体只打开一次
jinsr
[专家分:0] 发布于 2008-01-15 10:53:00
请路过的大哥大姐才个忙,如何让子窗体只打开一次,如果某子窗体已打开,再打开时它就不用再创建一个,如果还没打开,就创建一个,我用childform = nil来判断,但不行。 在线等
回复列表 (共2个回复)
沙发
ILikePromgram [专家分:190] 发布于 2008-01-15 23:45:00
查找子窗体名字FindWindow得出窗口句柄,等于0就创建,大于0就不再创建
板凳
长尾兔 [专家分:3630] 发布于 2008-01-17 21:56:00
首先需要说,楼上用FindWindow的思路不推荐使用。尽管有效,但不推荐。
估计楼主之所以用childform = nil 做判断无用,我想可能是楼主在Free窗体时,并没有给窗体变量赋值为nil。在窗体第一次被构造前,由于窗体变量是全局变量,所以其值一定为nil;但是,当窗体被析构了,不存在了,但窗体变量那四字节的空间仍然保留那个地址值。
常用的方法是用FreeAndNil来析构,这样可以保证在析构后窗体变量值为nil,便于下一次做判断
我来回复