Programmbeispiele für Steuerelemente im Dialog-Editor

Um diese Beispiele ausprobieren zu können, brauchen Sie einen neuen Dialog mit dem Namen "Dialog1" anlegen. Im Dialog-Editor legen Sie mithilfe der Schaltflächen in der Werkzeugleiste folgende Steuerelemente an: ein Markierfeld mit dem Namen "Markierfeld1", ein Beschriftungsfeld mit dem Namen "Beschriftung1", eine Schaltfläche mit dem Namen "Schaltfläche1" und ein Listenfeld mit dem Namen "Listenfeld1".

Warnsymbol

Beim Zuweisen des Steuerelements an eine Objektvariable ist die Schreibweise wichtig. Wenn der Name des Steuerelements klein geschrieben wurde, muss dieser auch mit derselben Schreibweise abgefragt werden.


Globale Funktion zum Laden von Dialogen


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

Die Funktion LoadDialog ist in der Bibliothek Tools.ModuleControls gespeichert, welche im Dialog LibreOffice Makros verfügbar ist.

Dialog anzeigen


REM globale Variablendefiniton
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

Eigenschaften von Steuerelementen im Programm abfragen oder ändern


Sub Sample1
    With GlobalScope.Basiclibraries
       If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
    End With
    oDialog1 = Tools.LoadDialog("Standard", "Dialog1")
    REM Model des Dialogs holen
    oDialog1Model = oDialog1.Model
    REM Beschriftung des Textes von Beschriftung1 anzeigen
    oLabel1 = oDialog1.GetControl("Label1")
    MsgBox oLabel1.Text
    REM Neuen Text für das Steuerelement Beschriftung1 setzen
    oLabel1.Text = "New Files"
    REM Anzeigen der Model-Eigenschaften des Steuerelements Markierfeld1
    oCheckBox1Model = oDialog1Model.CheckBox1
    MsgBox oCheckBox1Model.Dbg_Properties
    REM Neuen State für Markierfeld1 am Model des Steuerelements setzen
    oCheckBox1Model.State = 1
    REM Anzeigen der Model-Eigenschaften für das Steuerelement Schaltfläche1
    oCMD1Model = oDialog1Model.CommandButton1
    MsgBox oCMD1Model.Dbg_Properties
    REM Anzeigen der Eigenschaften des Steuerelements Schaltfläche1
    oCMD1 = oDialog1.GetControl("CommandButton1")
    MsgBox oCMD1.Dbg_Properties
    REM Dialog ausführen
    oDialog1.Execute()
End Sub

Eintrag in ein Listenfeld hinzufügen


Sub AddEntry
    With GlobalScope.Basiclibraries
       If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
    End With
    oDialog1 = ModuleControls.LoadDialog("Standard", "Dialog1")
    REM setzt einen neuen Eintrag in das Listenfeld
    oDialog1Model = oDialog1.Model
    oListBox = oDialog1.GetControl("ListBox1")
    Dim iCount as integer
    iCount = oListbox.ItemCount
    oListbox.additem("New Item" & iCount,0)
End Sub

Eintrag in eines Listenfeldes löschen


Sub RemoveEntry
    With GlobalScope.Basiclibraries
       If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
    End With
    oDialog1 = Tools.ModuleControls.LoadDialogLoadDialog("Standard", "Dialog1")
    REM löscht den ersten Eintrag aus dem Listenfeld
    oDialog1Model = oDialog1.Model
    oListBox = oDialog1.GetControl("ListBox1")
    oListbox.removeitems(0,1)
End Sub

Bitte unterstützen Sie uns!