Exemplos de programação para controles no editor de diálogos

Conteúdo
Índice 🔎︎

# Exemplos de programação para controles no editor de caixa de diálogo

Os exemplos a seguir são para um novo diálogo chamado "Dialog1". Use as ferramentas na barra de Controle no editor de diálogos para criar o diálogo e acrescentar os seguintes controles: uma caixa de seleção chamada "CheckBox1", um campo de rótulo chamado "Label1", um botão chamado "CommandButton1", e uma caixa de lista chamada "ListBox1".

Ao anexar um controle a uma variável de objeto, seja consistente com as letras maiúsculas e minúsculas.

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

### Exibir 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 as propriedades de controles no programa

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

### Adicionar uma entrada numa 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 ao controle 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 do controle ListBox
        oDialog1Model = oDialog1.Model
        oListBox = oDialog1.GetControl("ListBox1")
        oListbox.removeitems(0,1)
    End Sub

Tópicos relacionados

Alterar propriedades de controles no editor de caixa de diálogo

Criar uma caixa de diálogo do Basic

Criar controles no editor de caixa de diálogo

Abrir uma caixa de diálogo com Basic