Приклади програмування для елементів керування в редакторі діалогових вікон

Нижче наведено приклади для нового діалогового вікна з назвою "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

Будь ласка, підтримайте нас!