Содержимое

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

Ниже приведены примеры для нового диалогового окна с именем "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 хранится в Tools.ModuleControls, доступном из области хранения «Макросы и диалоговые окна приложений».

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

    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

См. также

Изменение свойств элементов управления в редакторе диалоговых окон

Создание диалогового окна с помощью Basic

Создание элементов управления в редакторе диалоговых окон

Открытие диалогового окна в Basic

Пожалуйста, поддержите нас!