Ejemplos de programación de controles en el Editor de diálogos

Los siguientes ejemplos se aplican a un nuevo diálogo llamado "Dialog1". Utilice las herramientas de la barra Cuadro de herramientas del editor de diálogos para crear el diálogo y agregar los controles siguientes: una casilla de verificación denominada "Casillaverificación1", un campo de etiqueta denominado "Etiqueta1", un botón denominado "Botóncomando1" y un cuadro de lista denominado "Cuadrolista1".

Icono de advertencia

Haga un uso coherente de las mayúsculas y las minúsculas cuando adjunte un control a una variable de objeto.


Función global para cargar diálogos


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, disponible en Macros y diálogos de LibreOffice.

Mostrar un diálogo


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

Lectura o edición de las propiedades de los controles en el programa


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

Añadir una entrada a un cuadro de lista


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("Nuevo elemento" & iCount,0)
End Sub

Eliminar una entrada de un cuadro de lista


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

¡Necesitamos su ayuda!