点击或拖拽改变大小

DialogWindow.ExecModal 方法

X#
允许程序员更好地控制对话框窗口中的 Windows 消息处理。

命名空间:  XSharp.VO.SDK
程序集:  XSharp.VOGUIClasses (在 XSharp.VOGUIClasses.dll 中) 版本:2.22 GA
语法
 VIRTUAL METHOD ExecModal() AS VOID
查看代码
备注
通常,对话框窗口会导致程序执行在窗口显示时暂停,然后一旦窗口关闭,程序就会继续。ExecModal( ) 的默认行为维持了预期的行为。
但是,程序员可以创建一个新类,该类继承自 DialogWindow,并实现一个新的 ExecModal() 方法,以更改此行为。
示例
例如,程序员可以使用以下版本,该版本不执行任何操作:
X#
1METHOD ExecModal() CLASS DialogWindow
2    RETURN NIL
现在,在调用 Show() 方法后,程序控制立即返回。这对于需要使用函数 ApplicationExec(EXECWHILEEVENT) 控制窗口调度程序循环的代码非常有用:
X#
 1METHOD xyz() CLASS xyz
 2    LOCAL oPDlg AS ProgressDialog // 继承自 DialogWindow
 3
 4    oPDlg := ProgressDialog{SELF, "处理中!"}
 5    oPDlg:Count := oServer:Reccount
 6    oPDlg:Show()
 7
 8    // ProgressDialog 是模态的,用户在处理期间
 9    // 除了代码允许的操作外不能做任何事情。
10    // 在这个例子中,你可以中止循环。
11
12    oServer:GoTop()
13
14    DO WHILE oServer:EOF
15        IF ! oPDlg:STEP() // 如果按下中止按钮则为 FALSE
16        EXIT
17        ENDIF
18        // 执行某些操作
19        oServer:Skip()
20    ENDDO
21
22    oPDlg:EndDialog()
参见