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

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».

Icono de aviso

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, que está disponible en Macros y diálogos de la aplicación.

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("Elemento nuevo" & 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!