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".
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 Collabora Office 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