Esempi di programmazione per i campi di controllo nell'editor delle finestre di dialogo

Gli esempi seguenti si riferiscono a una nuova finestra di dialogo di nome "Dialogo1". Nell'editor delle finestre di dialogo, usate gli strumenti della Casella degli strumenti per creare la finestra di dialogo e aggiungere i campi di controllo seguenti: una casella di controllo di nome "CasellaControllo1", untesto fisso di nome "Etichetta1", un pulsante di nome "PulsanteComando1" e una casella di riepilogo di nome "CasellaRiepilogo1".

Icona di avvertenza

Quando abbinate un campo di controllo a una variabile oggetto, usate le maiuscole e le minuscole in modo uniforme.


Funzioni globali per caricare le finestre di dialogo


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 funzione LoadDialog è memorizzata in Tools.ModuleControls, disponibile nelle Macro e nelle finestre di dialogo di LibreOffice.

Visualizzare una finestra di dialogo


REM definizione globale delle variabili
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

Leggere o modificare le proprietà dei campi di controllo nel programma


Sub Sample1
    With GlobalScope.Basiclibraries
       If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
    End With
    oDialog1 = Tools.LoadDialog("Standard", "Dialog1")
    REM richiama il modello della finestra di dialogo
    oDialog1Model = oDialog1.Model
    REM visualizza il testo di Etichetta1
    oLabel1 = oDialog1.GetControl("Label1")
    MsgBox oLabel1.Text
    REM imposta il nuovo testo per il campo di controllo Etichetta1
    oLabel1.Text = "Nuovi file"
    REM visualizza le proprietà del modello per il campo di controllo CasellaControllo1
    oCheckBox1Model = oDialog1Model.CheckBox1
    MsgBox oCheckBox1Model.Dbg_Properties
    REM imposta il nuovo stato di CasellaControllo1 per il modello del campo di controllo
    oCheckBox1Model.State = 1
    REM visualizza le proprietà del modello per il campo di controllo PulsanteComando1
    oCMD1Model = oDialog1Model.CommandButton1
    MsgBox oCMD1Model.Dbg_Properties
    REM visualizza le proprietà del campo di controllo PulsanteComando1
    oCMD1 = oDialog1.GetControl("CommandButton1")
    MsgBox oCMD1.Dbg_Properties
    REM esegue la finestra di dialogo
    oDialog1.Execute()
End Sub

Aggiungere una voce a una casella di riepilogo


Sub AddEntry
    With GlobalScope.Basiclibraries
       If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
    End With
    oDialog1 = ModuleControls.LoadDialog("Standard", "Dialog1")
    REM aggiunge una nuova voce alla casella di riepilogo
    oDialog1Model = oDialog1.Model
    oListBox = oDialog1.GetControl("ListBox1")
    Dim iCount as integer
    iCount = oListbox.ItemCount
    oListbox.additem("Nuova voce" & iConteggio,0)
End Sub

Rimuovere una voce da una casella di riepilogo


Sub RemoveEntry
    With GlobalScope.Basiclibraries
       If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
    End With
    oDialog1 = Tools.ModuleControls.LoadDialogLoadDialog("Standard", "Dialog1")
    REM rimuove la prima voce dalla casella di riepilogo
    oDialog1Model = oDialog1.Model
    oListBox = oDialog1.GetControl("ListBox1")
    oListbox.removeitems(0,1)
End Sub