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