window w
w=w_main.getfirstsheet()
do while isvalid(w)
if w.tag='背景' then
w=w_main.getnextsheet(w)
else
close(w)
w=w_main.getfirstsheet()
end if
loop
此段代码想要实现关闭所有窗口,可是运行后没有反应。
还有,我看不懂这段代码的意思,希望高手解释一下。谢谢。
------解决方案--------------------
你关闭的窗口应该是mdi子窗口才可以,就是说用opensheet打开的窗口
------解决方案--------------------
window w
w=w_main.getfirstsheet() //获取第一个或者是最早打开的子窗口
do while isvalid(w) //如果子窗口有效就开始循环
if w.tag='背景' then //如果子窗口是用作显示背景就找下一个
w=w_main.getnextsheet(w)
else
close(w) //如果子窗口是不是用作用作显示背景就关闭
w=w_main.getfirstsheet() //重新找第一个或者是最早打开的子窗口
end if
loop
上面的语句只会关闭所有的tag<>'背景' 的子窗口。不会关闭主窗口
------解决方案--------------------
程序本身没语法错误,你要关闭所有窗口,直接关闭父窗口就可以了。如果上面的代码你是在父窗口里写的,就直接写上close(this)就可以了
------解决方案--------------------
这个和主窗口及后来打开的窗口的类型有关系。
如果是达到重新打开软件的效果的话,可以考虑 restart()
------解决方案--------------------
你要关闭的窗口是不是通过opensheet打开的?必须是使用opensheet打开且mdiframe为w_main的!
------解决方案--------------------
正解,getnextsheet和getfirstsheet只能找到pb8所说的这种窗口,使用其它方式打开的是找不到的。
------解决方案--------------------
使用Open ( windowvar, windowtype {, parent } )方式打开窗口,并在打开时保存对应的windowvar变量到一个数组中,关闭时从该数组中移除。
在以后需要时遍历该数组,关闭数组中每一个窗口。