Ayuda de LibreOffice 24.8
Los ejemplos siguientes guían en la creación de un diálogo llamado «Dialog1». Use las opciones de la barra de herramientas Cuadro de herramientas del editor de diálogos para crear el diálog y añada los siguientes controles: una casilla denominada «CheckBox1», un campo de etiqueta denominado «Label1», un botón denominado «CommandButton1» y un cuadro de lista denominado «ListBox1».
Haga un uso coherente de las mayúsculas y las minúsculas cuando adjunte un control a una variable de objeto.
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
La función LoadDialog se almacena en Tools.ModuleControls, que está disponible en Macros y diálogos de la aplicación.
REM definición global de variables
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
Sub Sample1
With GlobalScope.Basiclibraries
If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
End With
oDialog1 = Tools.LoadDialog("Standard", "Dialog1")
REM obtener modelo de diálogo
oDialog1Model = oDialog1.Model
REM mostrar texto de Label1
oLabel1 = oDialog1.GetControl("Label1")
MsgBox oLabel1.Text
REM establecer texto nuevo para el control Label1
oLabel1.Text = "Archivos nuevos"
REM mostrar propiedades de modelo para el control CheckBox1
oCheckBox1Model = oDialog1Model.CheckBox1
MsgBox oCheckBox1Model.Dbg_Properties
REM establecer estado nuevo para CheckBox1 para el modelo del control
oCheckBox1Model.State = 1
REM mostrar propiedades de modelo para el control CommandButton1
oCMD1Model = oDialog1Model.CommandButton1
MsgBox oCMD1Model.Dbg_Properties
REM mostrar propiedades del control CommandButton1
oCMD1 = oDialog1.GetControl("CommandButton1")
MsgBox oCMD1.Dbg_Properties
REM ejecutar diálogo
oDialog1.Execute()
End Sub
Sub AddEntry
With GlobalScope.Basiclibraries
If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
End With
oDialog1 = ModuleControls.LoadDialog("Standard", "Dialog1")
REM añade una entrada nueva al cuadro de lista
oDialog1Model = oDialog1.Model
oListBox = oDialog1.GetControl("ListBox1")
Dim iCount as integer
iCount = oListbox.ItemCount
oListbox.additem("Elemento nuevo" & iCount,0)
End Sub
Sub RemoveEntry
With GlobalScope.Basiclibraries
If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
End With
oDialog1 = Tools.ModuleControls.LoadDialogLoadDialog("Standard", "Dialog1")
REM eliminar la primera entrada del cuadro de lista
oDialog1Model = oDialog1.Model
oListBox = oDialog1.GetControl("ListBox1")
oListbox.removeitems(0,1)
End Sub