Примеры программирования для управляющих элементов в редакторе диалогов

Ниже приведены примеры для нового диалогового окна с именем "Dialog1". Воспользуйтесь инструментами на Панели инструментов в редакторе диалоговых окон, чтобы создать диалоговое окно и добавить следующие элементы управления: Флажок с именем "CheckBox1", Подпись с именем "Label1", Кнопку с именем "CommandButton1" и Список с именем "ListBox1".

Значок предупреждения

При добавлении элемента управления к переменной не забывайте о соответствии прописных и строчных букв.


Глобальная функция для загрузки диалоговых окон


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

LoadDialog function is stored in Tools.ModuleControls available from LibreOffice Macros and Dialogs.

Отображение диалогового окна


REM глобальное определение переменных
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

Чтение или изменение свойств элементов управления в программе


Sub Sample1
    With GlobalScope.Basiclibraries
       If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
    End With
    oDialog1 = Tools.LoadDialog("Standard", "Dialog1")
    REM получение модели диалогового окна
    oDialog1Model = oDialog1.Model
    REM отображение текста Label1
    oLabel1 = oDialog1.GetControl("Label1")
    MsgBox oLabel1.Text
    REM задание нового текста для элемента управления Label1
    oLabel1.Text = "Создать файлы"
    REM отображение свойств модели для элемента управления CheckBox1
    oCheckBox1Model = oDialog1Model.CheckBox1
    MsgBox oCheckBox1Model.Dbg_Properties
    REM задание нового состояния для CheckBox1 для модели элемента управления
    oCheckBox1Model.State = 1
    REM отображение свойств модели для элемента управления CommandButton1
    oCMD1Model = oDialog1Model.CommandButton1
    MsgBox oCMD1Model.Dbg_Properties
    REM отображение свойств элемента управления CommandButton1
    oCMD1 = oDialog1.GetControl("CommandButton1")
    MsgBox oCMD1.Dbg_Properties
    REM выполнение диалогового окна
    oDialog1.Execute()
End Sub

Добавление элемента в список


Sub AddEntry
    With GlobalScope.Basiclibraries
       If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
    End With
    oDialog1 = ModuleControls.LoadDialog("Standard", "Dialog1")
    REM добавляет новый элемент в список
    oDialog1Model = oDialog1.Model
    oListBox = oDialog1.GetControl("ListBox1")
    Dim iCount as integer
    iCount = oListbox.ItemCount
    oListbox.additem("New Item" & iCount,0)
End Sub

Удаление элемента из списка


Sub RemoveEntry
    With GlobalScope.Basiclibraries
       If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
    End With
    oDialog1 = Tools.ModuleControls.LoadDialogLoadDialog("Standard", "Dialog1")
    REM удаление первого элемента из списка
    oDialog1Model = oDialog1.Model
    oListBox = oDialog1.GetControl("ListBox1")
    oListbox.removeitems(0,1)
End Sub

Please support us!