Conteúdo
Índice 🔎︎

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

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

Tópicos relacionados

Alterar propriedades dos controlos no editor de caixas de diálogo

Criar uma caixa de diálogo do Basic

Criar controlos no Editor de caixas de diálogo

Abrir uma caixa de diálogo com Basic