回 帖 发 新 帖 刷新版面

主题:如何让子窗体只打开一次

请路过的大哥大姐才个忙,如何让子窗体只打开一次,如果某子窗体已打开,再打开时它就不用再创建一个,如果还没打开,就创建一个,我用childform = nil来判断,但不行。 在线等

回复列表 (共2个回复)

沙发

查找子窗体名字FindWindow得出窗口句柄,等于0就创建,大于0就不再创建

板凳

首先需要说,楼上用FindWindow的思路不推荐使用。尽管有效,但不推荐。

估计楼主之所以用childform = nil 做判断无用,我想可能是楼主在Free窗体时,并没有给窗体变量赋值为nil。在窗体第一次被构造前,由于窗体变量是全局变量,所以其值一定为nil;但是,当窗体被析构了,不存在了,但窗体变量那四字节的空间仍然保留那个地址值。
常用的方法是用FreeAndNil来析构,这样可以保证在析构后窗体变量值为nil,便于下一次做判断

我来回复

您尚未登录,请登录后再回复。点此登录或注册