Programming Examples for Controls in the Dialog Editor

Poniższe przykłady dotyczą nowego okna dialogowego o nazwie "Dialog1". Użyj narzędzi znajdujących się na pasku Przybornik w oknie dialogowym, aby utworzyć okno dialogowe i dodać poniższe formanty: pole wyboru o nazwie "CheckBox1", pole etykiety o nazwie "Label1", przycisk o nazwie "CommandButton1" i pole listy o nazwie "ListBox1".

Ikona ostrzeżenia

Przy dołączaniu formantu do zmiennej obiektu należy zachować konsekwencję w stosowaniu małych i wielkich liter.


Funkcja globalna dotycząca ładowania okien dialogowych


Function LoadDialog(Libname as String, DialogName as String, Optional oLibContainer)
Dim oLib as Object ' com.sun.star.script.XLibraryContainer
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

LoadDialog function is stored in Tools.ModuleControls available from LibreOffice Macros and Dialogs.

Wyświetlanie okna dialogowego


REM globalna definicja zmiennych
Dim oDialog1 AS Object
Sub StartDialog1
    With GlobalScope.BasicLibraries
       If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
    End With
    oDialog1 = Tools.ModuleControls.LoadDialog("Standard", "Dialog1")
    oDialog1.Execute()
End Sub

Odczyt lub edycja właściwości formantów w programie


Sub Sample1
    With GlobalScope.Basiclibraries
       If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
    End With
    oDialog1 = Tools.LoadDialog("Standard", "Dialog1")
    REM pobranie modelu okna dialogowego
    oDialog1Model = oDialog1.Model
    REM wyświetlenie tekstu Label1
    oLabel1 = oDialog1.GetControl("Label1")
    MsgBox oLabel1.Text
    REM ustawienie nowego tekstu dla formantu Label1
    oLabel1.Text = "Nowe pliki"
    REM wyświetlenie właściwości modelu dla formantu CheckBox1
    oCheckBox1Model = oDialog1Model.CheckBox1
    MsgBox oCheckBox1Model.Dbg_Properties
    REM ustawienie nowego stanu dla CheckBox1 dla modelu formantu
    oCheckBox1Model.State = 1
    REM wyświetlenie właściwości modelu dla formantu CommandButton1
    oCMD1Model = oDialog1Model.CommandButton1
    MsgBox oCMD1Model.Dbg_Properties
    REM wyświetlenie właściwości formantu CommandButton1
    oCMD1 = oDialog1.GetControl("CommandButton1")
    MsgBox oCMD1.Dbg_Properties
    REM uruchomienie okna dialogowego
    oDialog1.Execute()
End Sub

Dodanie wpisu do pola listy


Sub AddEntry
    With GlobalScope.Basiclibraries
       If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
    End With
    oDialog1 = ModuleControls.LoadDialog("Standard", "Dialog1")
    REM dodanie nowego wpisu do pola listy
    oDialog1Model = oDialog1.Model
    oListBox = oDialog1.GetControl("ListBox1")
    Dim iCount as integer
    iCount = oListbox.ItemCount
    oListbox.additem("New Item" & iCount,0)
End Sub

Usunięcie wpisu z pola listy


Sub RemoveEntry
    With GlobalScope.Basiclibraries
       If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
    End With
    oDialog1 = Tools.ModuleControls.LoadDialogLoadDialog("Standard", "Dialog1")
    REM usunięcie pierwszego wpisu z pola listy
    oDialog1Model = oDialog1.Model
    oListBox = oDialog1.GetControl("ListBox1")
    oListbox.removeitems(0,1)
End Sub

Please support us!