對話方塊編輯器中控制項的程式設計示例

以下示例用於一個名為「Dialog1」的新對話方塊。在對話方塊編輯器中,使用 [工具箱] 列中的工具建立對話方塊,並在其中增加以下控制項:[核取方塊](名為「CheckBox1」)、[標籤欄位](名為「Label1」)、[指令按鈕](名為「CommandButton1」) 以及 [清單方塊](名為「ListBox1」)。

警告圖示

將控制項附加到物件型變數時,請使字母大小寫保持一致。


用於載入對話方塊的全域函式

Function LoadDialog(Libname as String, DialogName as String, Optional oLibContainer)

Dim oLib as Object

Dim oLibDialog as Object

Dim oRuntimeDialog as Object

    If IsMissing(oLibContainer) Then

        oLibContainer = DialogLibraries

    End If

    oLibContainer.LoadLibrary(LibName)

    oLib = oLibContainer.GetByName(Libname)

    oLibDialog = oLib.GetByName(DialogName)

    oRuntimeDialog = CreateUnoDialog(oLibDialog)

    LoadDialog() = oRuntimeDialog

End Function

顯示對話方塊

rem 變數的全域定義

Dim oDialog1 AS Object

Sub StartDialog1

    BasicLibraries.LoadLibrary("Tools")

    oDialog1 = LoadDialog("Standard", "Dialog1")

    oDialog1.Execute()

End Sub

在程式中讀取或編輯控制項的屬性

Sub Sample1

    BasicLibraries.LoadLibrary("Tools")

    oDialog1 = LoadDialog("Standard", "Dialog1")

    REM 獲取對話方塊模型

    oDialog1Model = oDialog1.Model

    REM 顯示 Label1 的文字

    oLabel1 = oDialog1.GetControl("Label1")

    MsgBox oLabel1.Text

    REM 為控制項 Label1 設定新文字

    oLabel1.Text = "New Files"

    REM 顯示控制項 CheckBox1 的模型屬性

    oCheckBox1Model = oDialog1Model.CheckBox1

    MsgBox oCheckBox1Model.Dbg_Properties

    REM 為 CheckBox1 的控制項模型設定新狀態

    oCheckBox1Model.State = 1

    REM 顯示控制項 CommandButton1 的模型屬性

    oCMD1Model = oDialog1Model.CommandButton1

    MsgBox oCMD1Model.Dbg_Properties

    REM 顯示控制項 CommandButton1 的屬性

    oCMD1 = oDialog1.GetControl("CommandButton1")

    MsgBox oCMD1.Dbg_Properties

    REM 執行對話方塊

    oDialog1.Execute()

End Sub

將條目加入 ListBox 中

Sub AddEntry

    BasicLibraries.LoadLibrary("Tools")

    oDialog1 = LoadDialog("Standard", "Dialog1")

    REM 將條目加入 ListBox 中

    oDialog1Model = oDialog1.Model

    oListBox = oDialog1.GetControl("ListBox1")

    Dim iCount as integer

    iCount = oListbox.ItemCount

    oListbox.additem("New Item" & iCount,0)

End Sub

移除 ListBox 中的條目

Sub RemoveEntry

    BasicLibraries.LoadLibrary("Tools")

    oDialog1 = LoadDialog("Standard", "Dialog1")

    REM 移除 ListBox 中的第一個條目

    oDialog1Model = oDialog1.Model

    oListBox = oDialog1.GetControl("ListBox1")

    oListbox.removeitems(0,1)

End Sub