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

Следващите примери са за нов диалогов прозорец с име „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, достъпен в „Макроси и диалогови прозорци на LibreOffice“.

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


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

Моля, подкрепете ни!