|
第四步:显示对话框
这可能是四步中最简单的了,现在你已经建立了描述窗体和对话框内容的列表,将他们传给initialize()方法,那么就显示了对话框。
initialize oDialog, [ #windowPropList: lsWindow, #windowItemList: lsDialog ] run oDialog
好了,现在来讲讲对话框的响应问题,很多废话就不翻译了。现在你的对话框还不能退出,因为你没有定义它的响应句柄。只能按ESC来退出。
第四步半:建立callback句柄
在你的对话框中所发生的每一个MUI定义的事件,它都会发送3个信息给你自定义的callback句柄。
1.事件类型(symbol) 2.组件在#windowitemlist中的位置(integer) 3.这个组件的属性列表(property list)
callback句柄的第一句是这样的:(这里也许包含你不需要理会的事件)
on myDialogCallback event, eventData, itemPropList if symbolP( event ) then case event of #windowOpening, #windowClosed: exit #windowZoomed, #windowResized: exit #itemEnteringFocus, #itemLosingFocus: exit 你的callback句柄应该主要由case语句来组成,由case来区分不同的组件响应,将以下程序写在case的最外边: #itemChanged: case itemPropList.type of #checkBox, #radioButton: put itemPropList.title & ":" && itemPropList.value #editText: put itemPropList.value #integerSliderH, #floatSliderH: put itemPropList.value #popupList: put itemPropList.value end case #itemClicked: case itemPropList.type of #defaultPushButton: oDialog.stop( TRUE ) #pushButton: oDialog.stop( TRUE ) #cancelPushButton: oDialog.stop( TRUE ) end case end case end if end
这个callback句柄起码会让你点击关闭这个对话框。并且会在message窗口显示响应的结果,你可以看看itemUpdate()命令,它是用来在交互中刷新组件的。
还有很多很有趣的应用,比如为你的程序添加一个preferences或者Options对话框,登陆对话框,或者其他什么的,但很不幸的是:MUI Xtra 在Shockwave中很不安全,所以你不能把它应用在浏览器中。 上一页 [1] [2] [3] [4] [5] |