曲径通幽论坛

标题: 指定窗口或窗口组件不存在或尚未载入 [打印本页]

作者: easy    时间: 2013-2-16 17:06
标题: 指定窗口或窗口组件不存在或尚未载入
在编写易语言程序的时候,可能会经常遇到“指定窗口或窗口组件不存在或尚未载入”的运行时错误提示:
[attach]1308[/attach]
造成该现象的原因提示信息已经说得很明白。下面举一个具体错误例子来说明。

先插入一个新的窗口。方法是在“程序”面板里,右键点击“窗口”,在弹出的菜单中选择“新插入窗口”,这样就新建立了一个窗口。

接着在“_启动窗口”中拉入一个“按钮”控件,然后双击该按钮控件,输入下面的程序代码:
[attach]1309[/attach]

再接着调试程序,按下“按钮2”,比如我这里:
[attach]1310[/attach]
如果关闭这个新窗口,就会看到上面的错误提示。造成这个错误的原因是我们对窗口的“载入”这个命令输入了错误的参数。先看“载入”这个命令的帮助说明:
    调用格式: 〈逻辑型〉 载入 (窗口 欲载入的窗口,[窗口 父窗口],逻辑型 是否采用对话框方式) - 系统核心支持库->其他
    英文名称:LoadWin
    载入指定的窗口,根据窗口的“可视”属性决定是否显示它。成功返回真,失败返回假。本命令为初级命令。
    参数<1>的名称为“欲载入的窗口”,类型为“窗口(window)”。参数值指定欲载入的窗口。
    参数<2>的名称为“父窗口”,类型为“窗口(window)”,可以被省略。参数值指定欲载入窗口的父窗口,此窗口必须已经被载入。如果本参数被省略,表示无父窗口。如果窗口具有父窗口,其位置将永远位于父窗口的上面;当父窗口被关闭时,窗口将自动被关闭;当父窗口被禁止时,窗口将自动被禁止。
    数<3>的名称为“是否采用对话框方式”,类型为“逻辑型(bool)”,初始值为“真”。参数值指定用户在对被载入窗口进行操作的同时是否允许同时对其他窗口进行操作,如果本参数值为真且被载入窗口的“可视”属性为真,则命令将一直等待到该窗口被销毁后才返回。
注意对“参数3“的说明,如果该参数设置为真,那么命令就会一直等待到该窗口被销毁后才返回。也就是说,当我们点击关闭窗口按钮关闭新载入的窗口时,载入() 函数返回,此时接着运行下面的“窗口1.移动()”方法势必会错误,因为此时窗口1已经被销毁了。纠正这个错误很简单,就是将第 3 个参数改为“假”。在这种情况下,“载入()" 函数不会等到“窗口1”销毁后才返回,而是一旦“窗口1”载入一完毕它就返回,因此它在“窗口1”还存在的时候对其进行“移动”自然不会有什么问题。




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2