Programmeringsexempel för kontroller i dialogredigeraren

Innehåll
Index 🔎︎

# Programming Examples for Controls in the Dialog Editor

Följande exempel gäller för en ny dialogruta som kallas "Dialog1". Använd verktygen på verktygsraden Verktygslåda i dialogredigeraren om du vill skapa dialogrutan och lägga till de här kontrollerna: en kryssruta som kallas "Kryssruta1", ett etikettfält som kallas "Etikettfält1", en knapp som kallas "Kommandoknapp1" och en listruta som kallas "Listruta1".

Var konsekvent med stora och små bokstäver när du bifogar en kontroll med objektvariabel.

### Globala funktioner för laddning av dialogrutor

    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.

### Visa en dialogruta

    REM globala definitioner av variabler
    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

### Läsa och redigera egenskaper för kontroller i programmet

    Sub Sample1
        With GlobalScope.Basiclibraries
           If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
        End With
        oDialog1 = Tools.LoadDialog("Standard", "Dialog1")
        REM hämta dialogrutemodell
        oDialog1Model = oDialog1.Model
        REM visa texten för Etikett1
        oLabel1 = oDialog1.GetControl("Label1")
        MsgBox oLabel1.Text
        REM ange ny text för kontrollen Etikett1
        oEtikett1.Text = "Nya filer"
        REM visa modellegenskaper för kontrollen Kryssruta1
        oCheckBox1Model = oDialog1Model.CheckBox1
        MsgBox oCheckBox1Model.Dbg_Properties
        REM ange nytt tillstånd för Kryssruta1 för kontrollmodell
        oCheckBox1Model.State = 1
        REM visa modellegenskaper för kontrollen Kommandoknapp1
        oCMD1Model = oDialog1Model.CommandButton1
        MsgBox oCMD1Model.Dbg_Properties
        REM visa egenskaper för kontrollen Kommandoknapp1
        oCMD1 = oDialog1.GetControl("CommandButton1")
        MsgBox oCMD1.Dbg_Properties
        REM öppna dialogrutan
        oDialog1.Execute()
    End Sub

### Lägga till en post i en listruta

    Sub AddEntry
        With GlobalScope.Basiclibraries
           If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
        End With
        oDialog1 = ModuleControls.LoadDialog("Standard", "Dialog1")
        REM lägger till en ny post i listrutan
        oDialog1Model = oDialog1.Model
        oListBox = oDialog1.GetControl("ListBox1")
        Dim iCount as integer
        iCount = oListbox.ItemCount
        oListruta.additem("Ny post" & iCount,0)
    End Sub

### Ta bort en post från en listruta

    Sub RemoveEntry
        With GlobalScope.Basiclibraries
           If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
        End With
        oDialog1 = Tools.ModuleControls.LoadDialogLoadDialog("Standard", "Dialog1")
        REM ta bort den första posten från listrutan
        oDialog1Model = oDialog1.Model
        oListBox = oDialog1.GetControl("ListBox1")
        oListbox.removeitems(0,1)
    End Sub

Närliggande ämnen

Ändra egenskaper för kontroller i dialogredigeraren

Skapa en Basic-dialogruta

Skapa kontroller i dialogredigeraren

Opening a Dialog With Basic