Difference between revisions of "ZH/Documentation/BASIC Guide/Working With Dialogs"
Line 43: | Line 43: | ||
=== 使用“确定”或“取消”进行关闭 === | === 使用“确定”或“取消”进行关闭 === | ||
− | 如果对话框包含'''确定'''或'''取消'''按钮,在单击其中一个按钮时,将会自动关闭对话框。有关使用这些按钮的详细信息,请参见[[ | + | 如果对话框包含'''确定'''或'''取消'''按钮,在单击其中一个按钮时,将会自动关闭对话框。有关使用这些按钮的详细信息,请参见[[Documentation/BASIC Guide/Control Elements|对话框控制元素详述]]。 |
如果通过单击'''确定'''按钮关闭对话框,<tt>Execute-</tt> 方法将返回值 1,否则返回值 0。 | 如果通过单击'''确定'''按钮关闭对话框,<tt>Execute-</tt> 方法将返回值 1,否则返回值 0。 |
Revision as of 22:21, 27 November 2008
Apache OpenOffice Basic 对话框由一个对话框窗口组成,其中可以包含文本字段、列表框、单选按钮以及其他控制元素。
创建对话框
可以使用 Apache OpenOffice 对话框编辑器创建和构造对话框:
可以将控制元素从设计面板(右侧)拖到对话框区域中,并定义其位置和大小。
下面的示例显示了一个包含标签和列表框的对话框。
可以使用以下代码打开对话框:
Dim Dlg As Object
DialogLibraries.LoadLibrary("Standard")
Dlg = CreateUnoDialog(DialogLibraries.Standard.DlgDef)
Dlg.Execute()
Dlg.dispose()
CreateUnoDialog 创建了一个名为 Dlg 的对象,该对象引用关联的对话框。在创建对话框之前,必须确保已加载对话框使用的库(本示例中为 Standard 库)。LoadLibrary 方法可以执行此任务。
在初始化 Dlg 对话框对象后,可以使用 Execute 方法显示该对话框。此类对话框称为模态对话框,因为只有在关闭对话框后才能对其执行其他编程操作。在打开此类对话框时,程序会处于 Execute 调用状态。
在程序结束后,最后一行代码中的 dispose 方法将会批准对话框使用的资源。
关闭对话框
使用“确定”或“取消”进行关闭
如果对话框包含确定或取消按钮,在单击其中一个按钮时,将会自动关闭对话框。有关使用这些按钮的详细信息,请参见对话框控制元素详述。
如果通过单击确定按钮关闭对话框,Execute- 方法将返回值 1,否则返回值 0。
Dim Dlg As Object
DialogLibraries.LoadLibrary("Standard")
Dlg = CreateUnoDialog(DialogLibraries.Standard.MyDialog)
Select Case Dlg.Execute()
Case 1
MsgBox "Ok pressed"
Case 0
MsgBox "Cancel pressed"
End Select
使用标题栏中的“关闭”按钮进行关闭
可通过单击对话框窗口标题栏上的“关闭”按钮来关闭对话框。对话框的 Execute 方法将返回值 0,这与单击“取消”时返回的值相同。
使用显式程序调用进行关闭
还可以使用 endExecute 方法关闭打开的对话框窗口:
Dlg.endExecute()
访问单个控制元素
对话框可以包含任意数目的控制元素。可通过返回控制元素名称的 getControl 方法访问这些元素。
Dim Ctl As Object
Ctl = Dlg.getControl("MyButton")
Ctl.Label = "New Label"
该代码首先确定 MyButton 控制元素的对象,然后使用对该元素的引用初始化 Ctl 对象变量。最后,该代码将控制元素的 Label 属性设置为 New Label 值。
使用对话框和控制元素的模型
Apache OpenOffice API 中的很多地方都区分可见程序元素(视图)及其背后的数据或文档(模型)。除了控制元素的方法和属性之外,对话框和控制元素对象还具有一个下级 Model 对象。此对象用于直接访问对话框或控制元素的内容。
与其他 Apache OpenOffice API 区域不同,在对话框中,没有始终对数据和描绘进行明确的区分。可以同时通过“视图”和“模型”来提供 API 元素。
可通过 Model 属性以程序控制方式访问对话框和控制元素对象的模型。
Dim cmdNext As Object
cmdNext = Dlg.getControl("cmdNext")
cmdNext.Model.Enabled = False
本示例借助 cmdNtext 中的模型对象停用了 Dlg 对话框中的 cmdNtext 按钮。
Content on this page is licensed under the Public Documentation License (PDL). |