Exemplos de programação de controlos no editor de caixas de diálogo

Os seguintes exemplos são para uma nova caixa de diálogo chamada "Dialog1". Utilize as ferramentas na barra Caixa de ferramentas no editor de caixas de diálogo para criar a caixa de diálogo e adicionar os seguintes controlos: uma caixa de seleção designada por "CheckBox1", um campo de etiqueta designado por "Label1", um Botão designado por "CommandButton1" e uma caixa de lista designada por "ListBox1".

Ícone de aviso

Deve respeitar as letras maiúsculas e minúsculas ao anexar um controlo a uma variável de objeto.


Função global para carregar caixas de diálogo


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

A função LoadDialog é armazenada em Tools.ModuleControls, disponível a partir das caixas de diálogo e macros do LibreOffice.

Mostrar uma caixa de diálogo


REM definição global de variáveis
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

Ler ou editar propriedades de controlos no programa


Sub Sample1
    With GlobalScope.Basiclibraries
       If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
    End With
    oDialog1 = Tools.LoadDialog("Standard", "Dialog1")
    REM obter modelo de diálogo
    oDialog1Model = oDialog1.Model
    REM mostrar texto de Label1
    oLabel1 = oDialog1.GetControl("Label1")
    MsgBox oLabel1.Text
    REM definir novo texto para o controlo Label1
    oLabel1.Text = "Novos Ficheiros"
    REM mostrar propriedades do modelo para o controlo CheckBox1
    oCheckBox1Model = oDialog1Model.CheckBox1
    MsgBox oCheckBox1Model.Dbg_Properties
    REM definir novo estado de CheckBox1 para o modelo ou controlo
    oCheckBox1Model.State = 1
    REM mostrar propriedades do modelo para o controlo CommandButton1
    oCMD1Model = oDialog1Model.CommandButton1
    MsgBox oCMD1Model.Dbg_Properties
    REM mostrar propriedades do controlo CommandButton1
    oCMD1 = oDialog1.GetControl("CommandButton1")
    MsgBox oCMD1.Dbg_Properties
    REM executar diálogo
    oDialog1.Execute()
End Sub

Adicionar uma entrada a uma caixa de lista


Sub AddEntry
    With GlobalScope.Basiclibraries
       If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
    End With
    oDialog1 = ModuleControls.LoadDialog("Standard", "Dialog1")
    REM adiciona uma nova entrada à ListBox
    oDialog1Model = oDialog1.Model
    oListBox = oDialog1.GetControl("ListBox1")
    Dim iCount as integer
    iCount = oListbox.ItemCount
    oListbox.additem("Novo Item" & iCount,0)
End Sub

Remover uma entrada de uma caixa de lista


Sub RemoveEntry
    With GlobalScope.Basiclibraries
       If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
    End With
    oDialog1 = Tools.ModuleControls.LoadDialogLoadDialog("Standard", "Dialog1")
    REM remover a primeira entrada da ListBox
    oDialog1Model = oDialog1.Model
    oListBox = oDialog1.GetControl("ListBox1")
    oListbox.removeitems(0,1)
End Sub

Necessitamos da sua ajuda!