Contenido
Índice 🔎︎

# 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".

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

Temas relacionados

Cambiar las propiedades de los controles del Editor de diálogos

Crear un diálogo de Basic

Creación de controles en el Editor de diálogos

Abrir un cuadro de diálogo con Basic