Съдържание

# Примери за програмиране на контроли в редактора на диалогови прозорци

Следващите примери са за нов диалогов прозорец с име „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 Добавя нов елемент в ListBox
        oDialog1Model = oDialog1.Model
        oListBox = oDialog1.GetControl("ListBox1")
        Dim iCount as integer
        iCount = oListbox.ItemCount
        oListbox.additem("Нов елемент" & 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