使用对话框

From Apache OpenOffice Wiki
Jump to: navigation, search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
doc OOo
Book.png


Apache OpenOffice Basic 对话框由一个对话框窗口组成,其中可以包含文本字段、列表框、单选按钮以及其他控制元素。

创建对话框

可以使用 Apache OpenOffice 对话框编辑器创建和构造对话框:

File:ZH-Documentation basicguide dlg 01 trans.gif
在对话框编辑器中创建和构造对话框

可以将控制元素从设计面板(右侧)拖到对话框区域中,并定义其位置和大小。

下面的示例显示了一个包含标签和列表框的对话框。

包含标签和列表框的对话框

可以使用以下代码打开对话框:

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 值。

Documentation note.png 与 Apache OpenOffice Basic 标识符不同,控制元素名称区分大小写。

使用对话框和控制元素的模型

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).


Personal tools