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

Í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 Macros e caixas de diálogo da aplicação.

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

♥ Doe para nosso projeto! ♥