Exemples de programació dels controls de l'editor de diàlegs

Els exemples següents fan referència a un diàleg nou anomenat «Dialog1». Utilitzeu les eines que hi ha en el Quadre d'eines de l'editor de diàlegs per a crear el diàleg i afegiu els controls següents: una Casella de selecció anomenada «Casella de selecció 1», un Camp d'etiqueta anomenat «Etiqueta 1», un Botó anomenat «Botó d'ordres 1» i un quadre de llista anomenat «Quadre de llista 1».

Icona d'avís

Feu un ús coherent de les majúscules i minúscules quan afegiu un control a una variable d'objecte.


Funció global per carregar diàlegs


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ó LoadDialog s'emmagatzema a Tools.ModuleControls, disponible a Macros i diàlegs de LibreOffice.

Visualització d'un diàleg


REM definició global de les 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ó de les propietats dels controls en el programa


Sub Sample1
    With GlobalScope.Basiclibraries
       If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
    End With
    oDialog1 = Tools.LoadDialog("Standard", "Dialog1")
    REM obtén el model de diàleg
    oDialog1Model = oDialog1.Model
    REM mostra el text de l'etiqueta 1
    oLabel1 = oDialog1.GetControl("Label1")
    MsgBox oLabel1.Text
    REM estableix el text nou de l'etiqueta 1 del control
    oLabel1.Text = "New Files"
    REM mostra les propietats del model per a la casella de selecció 1 del control
    oCheckBox1Model = oDialog1Model.CheckBox1
    MsgBox oCheckBox1Model.Dbg_Properties
    REM estableix l'estat nou de la casella de selecció 1 per al model de control
    oCheckBox1Model.State = 1
    REM mostra les propietats del model per al botó d'ordres 1 del control
    oCMD1Model = oDialog1Model.CommandButton1
    MsgBox oCMD1Model.Dbg_Properties
    REM mostra les propietats del botó d'ordres de control 1
    oCMD1 = oDialog1.GetControl("CommandButton1")
    MsgBox oCMD1.Dbg_Properties
    REM executa el diàleg
    oDialog1.Execute()
End Sub

Addició d'una entrada a un quadre de llista


Sub AddEntry
    With GlobalScope.Basiclibraries
       If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
    End With
    oDialog1 = ModuleControls.LoadDialog("Standard", "Dialog1")
    REM afegeix una nova entrada al quadre de llista
    oDialog1Model = oDialog1.Model
    oListBox = oDialog1.GetControl("ListBox1")
    Dim iCount as integer
    iCount = oListbox.ItemCount
    oListbox.additem("Nou element" & iCount,0)
End Sub

Supressió d'una entrada d'un quadre de llista


Sub RemoveEntry
    With GlobalScope.Basiclibraries
       If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
    End With
    oDialog1 = Tools.ModuleControls.LoadDialogLoadDialog("Standard", "Dialog1")
    REM suprimeix la primera entrada del quadre de llista
    oDialog1Model = oDialog1.Model
    oListBox = oDialog1.GetControl("ListBox1")
    oListbox.removeitems(0,1)
End Sub

Ens cal la vostra ajuda!