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 listagem chamada "ListBox1".

Ícone Aviso

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 em uma caixa de listagem


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 listagem


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

♥ Doe para nosso projeto! ♥