|
第三步:安排对话框内容
尽管不难,但这是最费时的步骤。当你完成之后,你会发现,在你写描述对话框代码之前先画一个草图会对你很有帮助。

这是一个几乎包含了所有元素的对话框。
你应该记得在第二步中,你为窗口定义了一个属性列表叫做lswindow。为了描述对话框的内容,你应该建立一个线性列表,来包含在你的对话框出现的每一个元素。也就是说,你要建一个list列表来描述可见的和不可见的所有组件。
开始定义一个空的表:
lsDialog = []
还记得定义lsWindow时的两个部分么?我们在这里也要用相同的方法来定义lsDialog列表。先用getItemPropList()方法获得默认的元素属性列表,然后改变它,然后添加(最好先复制)到一个list列表中。还不明白么?那好,我们现在就添加一个元素,你会发现其实很简单。
formatter = oDialog.getItemPropList()
这行执行后,formatter的值应该是: [ #value: 0, #type: #checkBox, #Attributes: [], #title: "title", #tip: "tip", #locH: 20, #locV: 24, #width: 200, #height: 210, #enabled: 1 ]
你希望第一个组件不是一个复选框,所以你应该改变它的#type属性,然后复制formatter,然后添加到lsDialog中。
formatter.type = #windowBegin lsDialog.append( formatter.duplicate() )
恭喜!你已经向你的对话框添加了一个组件了。从这里开始,你就可以用同样的方法添加任何组件,只要你愿意。现在我们来看看要添加所有组件的程序:
-- 添加一个不可编辑的标签 widget = oDialog.getItemPropList() widget.type = #label widget.value = "My dialog will display this text." lsDialog.append( widget.duplicate() )
-- 添加一个文本框 widget = oDialog.getItemPropList() widget.type = #editText widget.value = "Default text" lsDialog.append( widget.duplicate() )
-- 添加一个复选框 widget = oDialog.getItemPropList() widget.type = #checkBox widget.title = "My Checkbox" widget.value = TRUE -- checked by default lsDialog.append( widget.duplicate() )
-- 添加一个单选框 widget = oDialog.getItemPropList() widget.type = #radiobutton widget.title = "My Radio Button" widget.value = TRUE -- checked by default lsDialog.append( widget.duplicate() )
-- 添加一个标准的按钮 widget = oDialog.getItemPropList() widget.type = #defaultPushButton -- or #pushButton widget.title = "OK" lsDialog.append( widget.duplicate() )
-- 添加一个位图成员 widget = oDialog.getItemPropList() widget.type = #bitmap widget.value = member("myDialogGraphic") lsDialog.append( widget.duplicate() )
-- 添加一个滑动条 widget = oDialog.gettemPropList() widget.type = #integerSliderH -- or #floatSliderH attributeList = [:] attributeList.addProp( #valueRange, [ #min:1,#max:100,#increment:1 ] ) attributeList.addProp( #sliderStyle, [ #ticks,#value ] ) attributeList.addProp( #layoutStyle, [ #left ] ) widget.attributes = attributeList widget.value = 50 lsDialog.append( widget.duplicate())
-- 添加一个弹出列表框 widget = oDialog.getItemPropList() widget.type = #popupList valList = [ "640 x 480", "800 x 600", "Full Screen" ] popList = [ #normal ] layList = [ #left,#minimize ] attributeList = [ #popupStyle:popList, #valueList:valList, #layoutStyle:layList ] widget.attributes = attributeList widget.value = valList[ 3 ] lsDialog.append( widget.duplicate() )
上一页 [1] [2] [3] [4] [5] 下一页 |