LibreOffice 25.8 Hjælp
Tjenesten Dialog bidrager til administrationen af dialoger oprettet med Basic Dialogeditoren eller dialoger oprettet under afvikling. Hver instans af den aktuelle klasse repræsenterer en enkelt dialog vist for brugeren.
Et dialogfelt kan vises i modal eller ikke-modal tilstand.
I modal tilstand vises feltet og udførelsen af makro-processen er udsat, indtil der trykkes på en af knapperne OK eller Annuller. I mellemtiden kan brugerhandlinger, udført på feltet, udløse bestemte handlinger.
I ikke-modal tilstand "Flyder" dialogfeltet på brugerskrivebordet og udførelsen af makroprocessen fortsætter normalt. En ikke-modal dialog lukker, når den afsluttes med metoden Terminate() eller når sessionen LibreOffice Slutter. Knappen Luk vindue er inaktiv i ikke-modale dialoger.
Et dialogfelt forsvinger fra hukommelsen efter dets udtrykkelige afslfutning.
Tjenesten SFDialogs.Dialog er nært beslægtet med tjenesten SFDialogs.DialogControl.
Før brug af tjenesten Dialog skal biblioteket ScriptForge være indlæst eller importeret:
Tjenesten Dialog kaldes gennem metoden CreateScriptService. Den kræver yderligere tre positions-argumenter for at specificere dialogen, der skal aktiveres:
Container: "GlobalScope" til forudinstallerede biblioteker eller et vinduesnavn som defineret af tjenesten ScriptForge.UI. Standardværdien tom streng "" står for det aktuelle dokument.
Library: Biblioteksnavn med skelnen mellem Store og små bogstaver, der findes i containeren. Standardværdien er "Standard".
DialogName: En streng, hvor der skelnes mellem Store og små bogstaver, og som betegner dialogen.
Eksemplerne neden for i Basic og Python viser dialogen dlgConsole, som hører til det delte ScriptForge-bibliotek:
      Dim oDlg As Object, lButton As Long
      Dim Container As String, Library As String, DialogName As String
      Set oDlg = CreateScriptService("SFDialogs.Dialog", "GlobalScope", "ScriptForge", "dlgConsole")
      '... initialisering af kontrolelementer skrives her...
      lButton = oDlg.Execute()
      'Standard tilstand = Modal
      If lButton = oDlg.OKBUTTON Then
      '... Proceskontrollerer og gør, hvad der er nødvendigt her
      End If
      oDlg.Terminate()
  Eller med Python:
    dlg = CreateScriptService('SFDialogs.Dialog', 'GlobalScope', 'ScriptForge', 'dlgConsole')
    # ... initialisering af kontroller skrives her...
    rc = dlg.Execute()
    # Standard-tilstand er Modal
    if rc == dlg.OKBUTTON:
        # ... Behandl kontroller og gør, hvad der er nødvendigt her
    dlg.Terminate()
  Brug strengen "GlobalScope" som container-argument, når dialogen er gemt enten i eller i .
Dialog-tjenesten tilbyder metoder som dynamisk opretter nye kontrolelementer i en eksisterende dialog, forhåndsdefineret med Dialogeditoren. En dialog initialiseres med kontrolelementer i Dialogeditoren, og nye kontrolelementer kan tilføjes på afviklingstidspunktet før eller efter dialogens Execute()-kommando.
Tjenesten Dialog kan kaldes på samme måde – gennem CreateScriptService-metoden – når dialoger oprettes under afvikling. Det kræver yderligere to positionsargumenter efter navnet på ad-hoc-tjenesten "NewDialog":
DialogName: En streng som angiver dialogvinduet, med forskel på store og små bogstaver.
Place: Vinduesplacering af dialogen, enten:
et Basic-Array eller en Python tuple med 4 elementer: (X, Y, bredde, højde)
et com.sun.star.awt.Rectangle [X, Y, Bredde, Højde]-objekt
Alle elementer er udtrykt i Map AppFont-måleenheder.
    Sub newDialog()
        Dim oDlg As Object
       oDlg = CreateScriptService("NewDialog", "myDialog1", Array(100,200, 40, 110))
       ' ...
    End Sub
  Eller med Python:
    def newDialog():
       dlg = CreateScriptService('NewDialog', 'myDialog1', (100,200, 40, 110))
       # ... Proceskontroller og udfør hvad der ellers er brug for
  Alle de egenskaber og metoder, som gælder for forhåndsdefinerede dialoger, er tilgængelige for sådanne nye dialoger. Specier serien af CreateXXX()-metoder til at tilføje nye kontrolelementer til dialogen.
En instans af Dialog-tjenesten kan hentes via SFDialogs.DialogEvent-tjenesten, forudsat at dialogen blev initieret med Dialog-tjenesten. I eksemplet nedenfor indeholder oDlg den instans af Dialog, som udløste dialoghændelsen.
    Sub aDialogEventHander(ByRef poEvent As Object)
        Dim oDlg As Object
        Set oDlg = CreateScriptService("SFDialogs.DialogEvent", poEvent)
        ' ...
    End Sub
  Eller med Python:
    def control_event_handler(event: uno):
        dlg = CreateScriptService("SFDialogs.DialogEvent", event)
        # ...
  Bemærk at i det foregående eksempler kan præfikset "SFDialogs." udelades, når det passer bedst.
Når du opretter en hændelseshåndtering til dialoghændelser, er det god praksis at håndtere fejl inde i selve subrutinen. Antag for eksempel at hændelseshåndteringen nedenfor bliver kaldt når museknappen trykkes i dialogvinduet.
    Sub OnMouseButtonPressed(ByRef oEvent As Object)
    On Local Error GoTo Catch
        Dim oDialog As Object
        oDialog = CreateScriptService("DialogEvent", oEvent)
        ' Behandl hændelsen
        Exit Sub
    Catch:
        MsgBox SF_Exception.Description
        SF_Exception.Clear
    End Sub
  Kald SF_Exception.Clear hvis du ikke ønsker at fejlen skal videreføres, efter at dialogprogrammet er afsluttet.
I Python, brug indbyggede try/except-blokke til hændelseshåndtering som vist nedenfor:
    def on_mouse_button_pressed(event=None):
        try:
            dlg = CreateScriptService("DialogEvent", event)
            # Behandl hændelsen
        except Exception as e:
            # Objektet "bas" er en instans af Basic-tjenesten
            bas.MsgBox(str(e))
  | Navn | Skrivebeskyttet | Type | Beskrivelse | 
|---|---|---|---|
| OKBUTTON | Ja | Integer | Værdi = 1. Der blev trykket på en OK-knap. | 
| CANCELBUTTON | Ja | Integer | Værdi = 1. Der blev trykket på en OK-knap. | 
| Caption | Nej | String | Angiv dialogens titel. | 
| Height | Nej | Long | Angiv højden på dialogfeltet. | 
| Modal | Ja | Boolean | Angiver, om dialogfeltet aktuelt er i udførelse i modal tilstand. | 
| Name | Ja | String | Dialogens navn | 
| Page | Nej | Integer | En dialog kan have flere sider, som brugeren kan gå igennem trin for trin. Dialogobjektets sideegenskab definerer, hvilken af dialogens sider, der er aktiv. | 
| Visible | Nej | Boolean | Angiv, om dialogfeltet er synligt på skrivebordet. Som standard er det ikke synligt, før metoden Execute() køres og synligt derefter. | 
| XDialogModel | Ja | UNO- | Det UNO-objekt, der repræsenter dialogenmodellen. Se detaljeret information i XControlModel og UnoControlDialogModel i APIens (Application Programming Interface) dokumentation. | 
| XDialogView | Ja | UNO- | Det UNO-objekt, der repræsenter dialogvisningen. Se detaljeret information i XControl og UnoControlDialog i APIens (Application Programming Interface) dokumentation. | 
| Width | Nej | Long | Angiv dialogfeltets bredde. | 
On...-hændelsesegenskaber er URI-strenge, der refererer til et script, som udløses ved en hændelse. Læs dens specifikation in scripting framework URI specification.
| Navn | Beskrivelse af Basic IDE | 
|---|---|
| OnFocusGained | Når fokus modtages | 
| OnFocusLost | Når fokus mistes | 
| OnKeyPressed | Tast trykket | 
| OnKeyReleased | Tast sluppet | 
| OnMouseDragged | Mus flyttet mens tast trykkes | 
| OnMouseEntered | Mus indenfor | 
| OnMouseExited | Mus udenfor | 
| OnMouseMoved | Mus flyttet | 
| OnMousePressed | Museknap trykket | 
| OnMouseReleased | Museknap sluttet | 
Tip: Alle On...-egenskaberne kan sættes med programmering.
Eksemplet Hvordan data vises i et træ-kontrolelement i LibreOffice Wiki demonstrerer dette.
Tilordning af hændelse via Basic IDE og tilordning af hændelser via makroer udelukker hinanden.
TabPageContainer-kontrolelementer er ikke tilgængelige i dialogeditoren.
Målene for et dialogvindue tildeles med Map AppFont-måleenheder. En dialog- eller kontrolelement-model bruger også AppFont-måleenheder, mens deres visninger bruger pixels.
Sæt fokus på den aktuelle instans af Dialog. Returner True, hvis fokuseringen lykkedes.
Den metode kaldes fra en dialog, en kontrolhændelse eller når der vises en dialog i ikke-modal tilstand.
svc.Activate(): bool
      Dim oDlg As Object
      Set oDlg = CreateScriptService(,, "myDialog")
      oDlg.Execute()
      ' ...
      oDlg.Activate()
   Både Python- og LibreOffice-Basic-eksempler antager, at dialogen er gemt i det aktuelle dokuments Standard-bibliotek.
     dlg = CreateScriptService(,,'myDialog')
     dlg.Execute()
     # ...
     dlg.Activate()
   Centrerer den aktuelle instans af dialogen midt i det ordnede vindue. Uden argumenter centrerer metoden dialogen i midten af det aktuelle vindue.
Returnerer True (Sand), når den lykkes.
svc.Center(opt Parent: obj): bool
Overordnet: Et valgfrit objekt kan være enten…
et ScriptForge-dialogobjekt
et ScriptForge-dokument (Calc, Base, ...)-objekt
     Sub TriggerEvent(oEvent As Object)
         Dim oDialog1 As Object, oDialog2 As Object, lExec As Long
         Set oDialog1 = CreateScriptService("DialogEvent", oEvent) ' Dialogen, der udløste hændelsen
         Set oDialog2 = CreateScriptService("Dialog", ...) ' Åbn en anden dialog
         oDialog2.Center(oDialog1)
         lExec = oDialog2.Execute()
         Select Case lExec
             ...
     End Sub
  
     def triggerEvent(event: uno):
       dlg1 = CreateScriptService('DialogEvent.Dialog', event)  # Dialogen, der har udløst hændelsen
       dlg2 = CreateScriptService('Dialog', ...)  # Åbn en anden dialog
       dlg2.Center(dlg1)
       rc = dlg2.Execute()
       if rc is False:
         # ...
   Lav en kopi af et eksisterende kontrolelement af en hvilken som helst type i selve dialogen. Det kopierede kontrolelement efterlade uændret og kan flyttes.
svc.CloneControl(SourceName: str, ControlName: str, Left: num, Top: num): svc
SourceName: Navnet på det kontrolelement, som skal kopieres.
ControlName: Et gyldigt navn som en streng med forskel på store og små bogstaver. Navnet må ikke eksistere allerede.
Left, Top: Koordinaterne for det nye kontrolelement udtrykt i AppFont-måleenheder.
      Set myButton2 = oDlg.CloneControl("Button1", "Button2", 30, 30)
   
     dlg = dlg.CloneControl('Button1', 'Button2', 30, 30)
   Returner enten:
listen over kontrolelementer, der er indeholdt i dialogen
en instans af DialogControl-klassen baseret på dens navn
svc.Controls(): str[0..*]
svc.Controls(controlname: str): svc
KontrolNavn: Et gyldigt kontrolnavn som en streng, der skelner mellem Store og små bogstaver. Hvis den mangler, returneres listen over kontrolnavne som en nul-baseret matrix.
      Dim myDialog As Object, myList As Variant, myControl As Object
      Set myDialog = CreateScriptService("SFDialogs.Dialog", , "Standard", "Dialog1")
      myList = myDialog.Controls()
      Set myControl = myDialog.Controls("myTextBox")
   
     dlg = CreateScriptService('SFDialogs.Dialog','', 'Standard', 'Dialog1')
     ctrls = dlg.Controls()
     ctrl = dlg.Controls('myTextBox')
   Opretter et nyt kontrolelement af typen Button (knap) i den aktuelle dialog.
svc.CreateButton(ControlName: str, Place: any, Toggle: bool = False, Push: str = ""): svc
ControlName: Navnet på det nye kontrolelement. Navnet på ikke eksistere allerede.
Place: enten …
et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)
et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt
Alle elementer er udtrykt i AppFont-måleenheder.
Toggle: når True oprettes en til/fra-trykknap (Toggle button). Standard = False
Push: "OK", "CANCEL" eller "" (standard)
En instans af tjenesten SFDialogs.DialogControl eller Nothing.
     Set myButton = oDlg.CreateButton("Button1", Array(20, 20, 60, 15))
   
     myButton = dlg.CreateButton('Button1', (20, 20, 60, 15))
   Opretter et nyt kontrolelement af typen CheckBox (afkrydsningsfelt) i den aktuelle dialog.
svc.CreateCheckBox(ControlName: str, Place: any, Multiline: bool = False): svc
MultiLine: Når True (standard = False), kan billedteksten blive vist på mere end en enkelt linje.
     Set myCheckBox = oDlg.CreateCheckBox("CheckBox1", Array(20, 20, 60, 15), MultiLine := True)
   
     myCheckBox = dlg.CreateCheckBox('CheckBox1', (20, 20, 60, 15), MultiLine = True)
   Opretter et nyt kontrolelement af typen ComboBox (kombinationsfelt) i den aktuelle dialog.
svc.CreateComboBox(ControlName: str, Place: any, Border: str = "3D", DropDown: bool = True, LineCount: num = 5): svc
Border: "3D" (standard), "FLAT" eller "NONE"
DrowDown: Når Sand (standard) vises en rullegardin-knap.
LineCount: Angiver det maksimale antal linjer, som vises i rullegardin-menuen (standard = 5)
     Set myComboBox = oDlg.CreateComboBox("ComboBox1", Array(20, 20, 60, 15), Dropdown := True)
   
     myComboBox = dlg.CreateComboBox('ComboBox1', (20, 20, 60, 15), Dropdown = True)
   Opretter et nyt kontrolelement af typen CurrencyField (valutafelt) i den aktuelle dialog.
svc.CreateCurrencyField(ControlName: str, Place: any, Border ="3D", SpinButton: bool = False, MinValue: num = -1000000, MaxValue: num = +1000000, Increment: num = 1, Accuracy: num = 2): svc
Border: "3D" (standard), "FLAT" eller "NONE"
SpinButton: Når True (standard = False), vises en skalafelt-knap
MinValue: Den laveste værdi, som kan skrives i kontrolelementet. Standard = -1000000
MaxValue: Den højeste værdi, som kan skrives i kontrolelementet. Standard = +1000000
Increment: Trinnet (forøgelse/formindskelse), når der trykkes på skalafelt-knappen. Standard = 1
Accuracy: Angiver den decimale præcision. Standard = 2 decimaler
     Set myCurrencyField = oDlg.CreateCurrencyField("CurrencyField1", Array(20, 20, 60, 15), SpinButton := True)
   
     myCurrencyField = dlg.CreateCurrencyField('CurrencyField1', (20, 20, 60, 15), SpinButton = True)
   Opretter et nyt kontrolelement af typen DateField (datofelt) i den aktuelle dialog.
svc.CreateDateField(ControlName: str, Place: any, Border: str = "3D", DropDown: bool = False, opt MinDate: datetime, opt MaxDate: datetime): svc
Border: "3D" (standard), "FLAT" eller "NONE"
DropDown: Når True (standard = False) vises en rullegardin-knap
MinDate: Den tidligste dato, som kan skrives i kontrolelementet. Standard = 1900-01-01
MaxDate: Den seneste dato, som kan skrives i kontrolelementet. Standard = 2200-12-31
     Set myDateField = oDlg.CreateDateField("DateField1", Array(20, 20, 60, 15), Dropdown := True)
   
     myDateField = dlg.CreateDateField('DateField1', (20, 20, 60, 15), Dropdown = True)
   Opretter et nyt kontrolelement af typen FileControl (filvælger) i den aktuelle dialog.
svc.CreateFileControl(ControlName: str, Place: any, Border: str = "3D"): svc
Border: "3D" (standard), "FLAT" eller "NONE"
     Set myFileControl = oDlg.CreateFileControl("FileControl1", Array(20, 20, 60, 15))
   
     myFileControl = dlg.CreateFileControl('FileControl1', (20, 20, 60, 15))
   Opretter et nyt kontrolelement af typen FixedLine (fast linje) i den aktuelle dialog.
svc.CreateFixedLine(ControlName: str, Place: any, Orientation: str): svc
Orientation: For vandret (horisontal) orientering brug "H" eller "Horizontal"; for lodret (vertikal) orientering brug "V" eller "Vertical".
     Set myFixedLine = oDlg.CreateFixedLine("FixedLine1", Array(20, 20, 60, 15), Orientation := "vertical")
   
     myFixedLine = dlg.CreateFixedLine('FixedLine1', (20, 20, 60, 15), Orientation = 'vertical')
   Opretter et nyt kontrolelement af typen FixedText (fast tekst) i den aktuelle dialog.
svc.CreateFixedText(ControlName: str, Place: any, Border: str = "3D", MultiLine: bool = False, Align: str = "LEFT", VerticalAlign: str = "TOP"): svc
Border: "NONE" (standard), "FLAT" eller "3D"
Multiline: Når True (standard = False) kan billedteksten blive vist på flere linjer.
Align: Vandret justering, "LEFT" (standard), "CENTER" eller "RIGHT"
VerticalAlign: Lodret justering, "TOP" (standard), "MIDDLE" eller "BOTTOM"
     Set myFixedText = oDlg.CreateFixedText("FixedText1", Array(20, 20, 60, 15), MultiLine := True)
   
     myFixedText = dlg.CreateFixedText('FixedText1', (20, 20, 60, 15), MultiLine = True)
   Opretter et nyt kontrolelement af typen FormattedField (formateret felt) i den aktuelle dialog.
svc.CreateFormattedField(ControlName: str, Place: any, Border: str = "3D", SpinButton: bool = False, MinValue: num = -1000000, MaxValue: num = +1000000): svc
Border: "3D" (standard), "FLAT" eller "NONE"
SpinButton: Når True (standard = False), vises en skalafelt-knap
MinValue: Den laveste værdi, som kan skrives i kontrolelementet. Standard = -1000000
MaxValue: Den højeste værdi, som kan skrives i kontrolelementet. Standard = +1000000
     Set myFormattedField = oDlg.CreateFormattedField("FormattedField1", Array(20, 20, 60, 15), SpinButton := True)
   
     myFormattedField = dlg.CreateFormattedField('FormattedField1', (20, 20, 60, 15), SpinButton = True)
   Opretter et nyt kontrolelement af typen GroupBox (gruppefelt) i den aktuelle dialog.
svc.CreateGroupBox(ControlName: str, Place: any): svc
     Set myGroupBox = oDlg.CreateGroupBox("GroupBox1", Array(20, 20, 60, 15))
   
     myGroupBox = dlg.CreateGroupBox('GroupBox1', (20, 20, 60, 15))
   Opretter et nyt kontrolelement af typen Hyperlink i den aktuelle dialog.
svc.CreateHyperlink(ControlName: str, Place: any, Border: str = "NONE", MultiLine: bool = False, Align: str = "LEFT", VerticalAlign: str = "TOP"): svc
Border: "NONE" (standard), "FLAT" eller "3D"
Multiline: Når True (standard = False) kan billedteksten blive vist på flere linjer.
Align: Vandret justering, "LEFT" (standard), "CENTER" eller "RIGHT"
VerticalAlign: Lodret justering, "TOP" (standard), "MIDDLE" eller "BOTTOM"
     Set myHyperlink = oDlg.CreateHyperlink("Hyperlink1", Array(20, 20, 60, 15), MultiLine := True)
   
     myHyperlink = dlg.CreateHyperlink('Hyperlink1', (20, 20, 60, 15), MultiLine = True)
   Opretter et nyt kontrolelement af typen ImageControl (billed-kontrolelement) i den aktuelle dialog.
svc.CreateImageControl(ControlName: str, Place: any, Border: str = "3D", Scale: str = "FITTOSIZE"): svc
Border: "3D" (standard), "FLAT" eller "NONE"
Scale: En af værdierne "FITTOSIZE" (standard), "KEEPRATIO" eller "NO"
     Set myImageControl = oDlg.CreateImageControl("ImageControl1", Array(20, 20, 60, 15))
   
       myImageControl = dlg.CreateImageControl('ImageControl1", (20, 20, 60, 15))
   Opretter et nyt kontrolelement af typen ListBox (rulleliste) i den aktuelle dialog.
svc.CreateListBox(ControlName: str, Place: any, Border: str = "3D", DropDown: bool = True, LineCount: num = 5, MultiSelect: bool = False): svc
Border: "3D" (standard), "FLAT" eller "NONE"
DrowDown: Når Sand (standard) vises en rullegardin-knap.
LineCount: Angiver det maksimale antal linjer, som vises i rullegardin-menuen (standard = 5)
MultiSelect: Når True kan markeres mere end 1 element ad gangen. Standard = False
     Set myListBox = oDlg.CreateListBox("ListBox1", Array(20, 20, 60, 15), Dropdown := True, MultiSelect := True)
   
     myListBox = dlg.CreateListBox('ListBox1', (20, 20, 60, 15), Dropdown = True, MultiSelect = True)
   Opretter et nyt kontrolelement af typen NumericFielc (talfelt) i den aktuelle dialog.
svc.CreateNumericField(ControlName: str, Place: any, Border: str = "3D", SpinButton: bool = False, MinValue: num = -1000000, MaxValue: num = 1000000, Increment: num = 1, Accuracy: num = 2): svc
Border: "3D" (standard), "FLAT" eller "NONE"
SpinButton: Når True (standard = False), vises en skalafelt-knap
MinValue: Den laveste værdi, som kan skrives i kontrolelementet. Standard = -1000000
MaxValue: Den højeste værdi, som kan skrives i kontrolelementet. Standard = +1000000
Increment: Trinnet (forøgelse/formindskelse), når der trykkes på skalafelt-knappen. Standard = 1
Accuracy: Angiver den decimale præcision. Standard = 2 decimaler
     Set myNumericField = oDlg.CreateNumericField("NumericField1", Array(20, 20, 60, 15), SpinButton := True)
   
     myNumericField = dlg.CreateNumericField('NumericField1', (20, 20, 60, 15), SpinButton = True)
   Opretter et nyt kontrolelement af typen PatternField (mønsterfelt) i den aktuelle dialog.
svc.CreatePatternField(ControlName: str, Place: any, Border: str = "3D", EditMask: str, opt LiteralMax: str): svc
Border: "3D" (standard), "FLAT" eller "NONE"
EditMask: En tegnkode, som bestemmer hvad brugeren kan skrive ind.
Se Pattern_Field i wikien for mere information.
LiteralMask: Indeholder startværdierne som vises i mønsterfeltet
     Set myPatternField = oDlg.CreatePatternField("PatternField1", Array(20, 20, 60, 15), EditMask := "NNLNNLLLLL", LiteralMask := "__.__.2002")
   
     myPatternField = dlg.CreatePatternField('PatternField1', (20, 20, 60, 15), EditMask = 'NNLNNLLLLL', LiteralMask = '__.__.2002')
   Opretter et nyt kontrolelement af typen ProgressBar (fremgangsvisning) i den aktuelle dialog.
svc.CreateProgressBar(ControlName: str, opt Place: any, Border: str = "3D", MinValue: num = 0, MaxValue: num = 100): svc
Border: "3D" (standard), "FLAT" eller "NONE"
MinValue Den mindste værdi, som kan skrives ind i kontrolelementet. Standard = 0
MaxValue: Den største værdi, som kan skrives ind i kontrolelementet. Standard = 100
     Set myProgressBar = oDlg.CreateProgressBar("ProgressBar1", Array(20, 20, 60, 15), MaxValue := 1000)
   
     myProgressBar = dlg.CreateProgressBar('ProgressBar1', (20, 20, 60, 15), MaxValue = 1000)
   Opretter et nyt kontrolelement af typen RadioButton (alternativknap) i den aktuelle dialog.
svc.CreateRadioButton(ControlName: str, Place: any, MultiLine: bool = False): svc
Multiline: Når True (standard = False) kan billedteksten blive vist på flere linjer.
     Set myRadioButton = oDlg.CreateRadioButton("RadioButton1", Array(20, 20, 60, 15), MultiLine := True)
   
     myRadioButton = dlg.CreateRadioButton('RadioButton1', (20, 20, 60, 15), MultiLine = True)
   Opretter et nyt kontrolelement af typen ScrollBar (rullebjælke) i den aktuelle dialog.
svc.CreateScrollBar(ControlName: str, Place, Orientation: str, Border: str = "3D", MinValue: num = 0, MaxValue: num = 100): svc
Orientation: For vandret (horisontal) orientering brug "H" eller "Horizontal"; for lodret (vertikal) orientering brug "V" eller "Vertical".
Border: "3D" (standard), "FLAT" eller "NONE"
MinValue Den mindste værdi, som kan skrives ind i kontrolelementet. Standard = 0
MaxValue: Den største værdi, som kan skrives ind i kontrolelementet. Standard = 100
     Set myScrollBar = oDlg.CreateScrollBar("ScrollBar1", Array(20, 20, 60, 15), MaxValue := 1000)
   
     myScrollBar = dialog.CreateScrollBar('ScrollBar1', (20, 20, 60, 15), MaxValue = 1000)
   Opretter et nyt kontrolelement af typen TableControl (tabel) i den aktuelle dialog.
svc.CreateTableControl(ControlName: str, Place: any, Border: str = "3D", RowHeaders: bool = True, ColumnHeaders: bool = True, ScrollBars: str = "N", GridLines: bool = False): svc
Border: "3D" (standard), "FLAT" eller "NONE"
RowHeaders: Når True (standard), vises rækkeoverskrifterne
ColumnHeaders: Når True (standard), vises kolonneoverskrifterne
ScrollBars: Mulige værdier er "H" eller "Horizontal" (vandrette rullebjælker), "V" eller "Vertical" (lodrette rullebjælker), "B" eller "Both" (begge rullebjælker), "N" eller "None" (standard) for ingen rullebjælker. Rullebjælker vises dynamisk, når der er behov for dem.
GridLines: Når True (standard = False) tegnes vandrette og lodrette linjer mellem gittercellerne
     Set myTableControl = oDlg.CreateTableControl("TableControl1", Array(20, 20, 60, 15), ScrollBars := "B")
   
     myTableControl = dlg.CreateTableControl('TableControl1', (20, 20, 60, 15), ScrollBars = 'B')
   Opretter et nyt kontrolelement af typen TabPageContainer i den aktuelle dialog. Fanebladene bliver spredt over flere linjer i dialogen, når det er nødvendigt. Brug af multiple TabPageContainer understøttes ikke.
Oprettelse af TabPageContainer-kontrolelementer kommer altid sidst en oprettelse af en dialog.
svc.CreateTabPageContainer(ControlName: str, Place: any, TabHeaders: str[1..*], Border: str = "3D"): svc
TabHeaders: Et array af strenge, som definerer etiketter for de enkelte faneblade.
Border (kant): "3D" (standard), "FLAT" eller "NONE"
     Set myTabPageContainer = oDlg.CreateTabPageContainer("someContainer", Array(20, 20, 60, 15), TabHeaders := Array("Modules", "Dialogs", "Libraries"))
   
     myTabPageContainer = dlg.CreateTabPageContainer('theTabs', TabHeaders=('Modules', 'Dialogs', 'Libraries'), place=(20, 20, 60, 15))
   Opretter et nyt kontrolelement af typen TextField (tekstfelt) i den aktuelle dialog.
svc.CreateTextField(ControlName: str, Place: any, Border: str = "3D", MultiLine: bool = False, MaximumLength: num = 0, PasswordCharacter: str = ""): svc
Border: "3D" (standard), "FLAT" eller "NONE"
Multiline: Når True (standard = False) kan billedteksten blive vist på flere linjer.
MaximumLength: Maksimalt antal tegn (standard = 0 betyder ubegrænset)
PasswordCharacter: Et enkelt tegn, som angiver ekkoet for et adgangskodefelt (standard = "")
Set myTextField = oDlg.CreateTextField("TextField1", Array(20, 20, 120, 50), MultiLine := True)
   
     myTextField = dlg.CreateTextField('TextField1', (20, 20, 120, 50), MultiLine = True)
   Opretter et nyt kontrolelement af typen TimeField (klokkeslætsfelt) i den aktuelle dialog.
svc.CreateTimeField(ControlName: str, Place: any, Border: str = "3D", MinTime: num = 0, MaxTime: num = 24): svc
Border: "3D" (standard), "FLAT" eller "NONE"
MinTime: Den mindste tidsværdi (klokkeslæt), som kan indtastes i kontrolelementet. Standard = 0
MaxTime: Den største tidsværdi (klokkeslæt), som kan indtastes i kontrolelementet. Standard = 24h
     Set myTimeField = oDlg.CreateTimeField("TimeField1", Array(20, 20, 60, 15))
   
     myTimeField = dlog.CreateTimeField('TimeField1', (20, 20, 60, 15))
   Opretter et nyt kontrolelement af typen TreeControl (træ-kontrolelement) i den aktuelle dialog.
svc.CreateTreeControl(ControlName: str, Place: any, Border = "3D"): svc
Border: "3D" (standard), "FLAT" eller "NONE"
     Set myTreeControl = oDlg.CreateTreeControl("TreeControl1", Array(20, 20, 60, 15))
   
     myTreeControl = dlg.CreateTreeControl('TreeControl1', (20, 20, 60, 15))
   Afslutter visningen af en modal dialog og giver argumentet tilbage som den aktuelle Execute() løbende handlings returværdi.
EndExecute() opbevares sædvanligvis i behandlingen af en makro, der udløstes af en dialog eller en kontrolhændelse.
svc.EndExecute(returnvalue: int)
returværdi: Den værdi, der videregives til den kørende Execute()-metode.
      Sub OnEvent(poEvent As com.sun.star.lang.EventObject)
          Dim oDlg As Object
          Set oDlg = CreateScriptService("SFDialogs.DialogEvent", poEvent)
          oDlg.EndExecute(ReturnValue := 25)
      End Sub
   
     from com.sun.star.lang import EventObject
     def on_event(event: EventObject):
         dlg = CreateScriptService("SFDialogs.DialogEvent", event)
         dlg.EndExecute(25)
   Ovennævnte omtaler af com.sun.star.lang.EventObject er valgfrie. Disse anmærkninger hjælper med at identificere LibreOffice Application Programming Interface (API).
Viser dialogfeltet og venter, når modal, på den afslutning af brugeren. Den returnerede værdi er enten:
0: et tryk på knappen Annullér
1 : et tryk på knappen OK
Ellers stoppede dialogen med et EndExecute()-udtryk, udsendt af en dialog eller en kontrolhændelse
Ved ikke-modale dialogfelter returnerer metoden altid 0 og udførelsen af makroen fortsætter.
svc.Execute(modal: bool = True): int
modal: False (falsk) ved en ikke-modal dialog. Standard = True (sand).
I dette Basic-eksempel er dialogen myDialog gemt i det aktuelle dokuments Standard-bibliotek.
      Dim oDlg As Object, lReturn As Long
      Set oDlg = CreateScriptService("SFDialogs.Dialog", , , "myDialog")
      lReturn = oDlg.Execute(Modal := False)
      Select Case lReturn
          ' ...
      End Select
   Denne Python-kode viser den modale dialog DlgConvert i det delte Basic-bibliotek DlgConvert.
     dlg = CreateScriptService("SFDialogs.Dialog", 'GlobalScope', 'Euro', "DlgConvert")
     rc = dlg.Execute()
     if rc == dlg.CANCELBUTTON:
         # ...
   Erstatter alle faste tekststrenge i en dialog med deres oversatte versioner baseret på en instans af tjenesten L10N . Denne metode oversætter følgende strenge:
Metoden returnerer True (sand), hvis den lykkes.
For at oprette en liste over strenge, der kan oversættes i en dialog, bruger du metoden AddTextsFromDialog fra tjenesten L10N.
svc.GetTextsFromL10N(l10n: svc): bool
l10n: En instans af tjenesten L10N, som de oversatte strenge hentes fra.
Det følgende eksempel indlæser oversatte strenge og anvender dem på dialogen "Min dialog".
     oDlg = CreateScriptService("Dialog", "GlobalScope", "Standard", "MyDialog")
     myPO = CreateScriptService("L10N", "/home/user/po_files/")
     oDlg.GetTextsFromL10N(myPO)
     oDlg.Execute()
   
     dlg = CreateScriptService("Dialog", "GlobalScope", "Standard", "MyDialog")
     myPO = CreateScriptService("L10N", "/home/user/po_files/")
     dlg.GetTextsFromL10N(myPO)
     dlg.Execute()
   Læs hjælpesiden tjenesten L10N for at få mere at vide om, hvordan PO- og POT-filer håndteres.
Importér og duplikér et eksisterende kontrolelement af en hvilken som helst type fra en dialog til den aktuelle dialog. Det duplikerede kontrolelement forbliver uændret. Det nye kontrolelement kan omdøbes og flyttes. Når hændelseshåndteringer findes, kan de også importeres.
svc.ImportControl(SourceDialog: svc, SourceName: str, opt ControlName: str, Page: num = 0, OffsetX: num = 0, OffsetY:num = 0, IncludeOnProperties: bool = False): svc
SourceDialog: en klasse-instans af SFDialogs.Dialog.
SourceName: navnet på kontrolelementet, som skal importeres.
ControlName: navnet på det nye kontrolelement. Det må ikke findes allerede. Standardværdien er SourceName
Page: sidetallet for det nye kontrolelement. Standardværdi = 0
OffsetX, OffsetY: antallet af pixels, der skal lægges til koordinaterne for kilde-kontrolelementet i "Map AppFont"-enheder. Standard = 0, kan være negative.
IncludeOnProperties: inkludér On...-hændelsesegenskaberne. Standard = False.
     Set mCtrl = oDlg.ImportControl(srceDlg, "someCtrlName")
   
     dlg.ImportControl(srceDlg, 'aCtrlName', includeOnProperties=true)
   Sæt tabuleringsindekset for en række af kontrolelementer. Sekvensen af kontrolelementer er givet som et array af navne på kontrolelementer, fra den første til den sidste.
Kontrolelementer med et indeks >= 1 er ikke tilgængelige med TAB-tasten hvis:
- de er udeladt fra den givne liste
- deres type er FixedLine, GroupBox eller ProgressBar
- de er deaktiveret
svc.TabsList(TabsList: num, Start: num = 1, Increment: num = 1): bool
TabsList: Et array af gyldige kontrolelement-navne i tabuleringsrækkefølge
Start: Det tabulatorindeks, som skal tildeles det første kontrolelement i listen. Standard = 1
Increment: Forskellen mellem to tabulatorindekser, som kommer efter hinanden. Standard = 1
Returnerer True når det lykkes.
     oDlg.OrderTabs(Array("myListBox", "myTextField", "myNumericField"), Start := 10)
   
     dlg.OrderTabs(('myListBox', 'myTextField', 'myNumericField'), Start = 10)
   Flytter det øverste venstre hjørne af dialogen til nye koordinator og/eller ændrer dialogens dimensioner. Alle afstrande er udtrykt i AppFont-måleenheder. Uden argumenter nulstiller metoden til de oprindelige dimensioner. Returnerer True hvis størrelsesændring lykkedes.
svc.Resize(opt Left: num, opt Top: num, opt Width: num, opt Height: num): bool
Left: Den vandrette afstand fra det øverste venstre hjørne
Top: Den lodrette afstand fra det øverste venstre hjørne
Width: Bredden på det rektangel, der indeholder dialogen
Height: Højden på det rektangel, der indeholder dialogen
Udeladte argumenter forbliver uændrede
     oDlg.Resize(1000, 2000, Height := 6000) ' Bredden (Width) ændres ikke
   
     dlg.Resize(1000, 2000, Height = 6000)  # Bredden (Width) ændres ikke
   Definerer hvilket kontrolelementer i en dialog, der er ansvarlige for at skifte side, noget som gør det lettere at administrere egenskaben Page (side) for en dialog og dens kontrolelementer.
Visninger kan have flere sider, og den aktuelt synlige side er defineret af dialogegenskaben Page. Hvis Page-egenskaben ikke ændres, er den synlige side som standard lig med 0 (nul), hvilket betyder at ingen bestemt side er defineret og alle synlige kontrolelementer vises, uanset hvilket værdier der er sat for kontrolelementernes egen Page-egenskab.
Når Page-egenskaben for en dialog ændres til en anden værdi, som 1, 2, 3 osv., så vises kun de kontrolelementer hvis Page-egenskab svarer til den aktuelle dialogside.
Ved at bruge metoden SetPageManager er det muligt at definere fire typer af elementer som sideadministratorer:
Rulleliste eller kombinationsfelt: I dette tilfælde svarer hvert element i rullelisten eller kombinationsfeltet til en side. Det første element refererer til Side 1, det andet element til Side 2 og så videre.
Gruppe af alternativknapper: Definerer en gruppe af alternativknapper, som vil kontrollere hvilken side, der er synlig.
Sekvens af knapper: Definerer et sæt af knapper, som hver svarer til en dialogside. Dette kan bruges til at efterligne en faneblads-brugerflade ved at placere knapper ved siden af hinanden i dialogen.
Forrige/Næste-knapper: Definerer hvilke knapper i dialogen, der vil blive brugt til at navigere til forrige/næste side i dialogen.
Det er muligt at bruge mere end én sideadministrator-mekanisme samtidig.
Denne metode er beregnet til at blive kaldt én gang før Execute-metoden kaldes. Efterfølgende kald ignoreres.
Hvis metoden lykkes, returnes True.
svc.SetPageManager(pilotcontrols: str = "", tabcontrols: str = "", wizardcontrols: str = "", opt lastpage: int): bool
pilotcontrols: En komma-separeret liste af navne på kontrolelementer af typerne ListBox (rulleliste), ComboBox (kombinationsfelt) eller RadioButton (alternativknap), der skal bruges som sideadministratorer. For alternativknap-kontrolelementer, angiv navnet på det første kontrolelement den anvendte gruppe.
tabcontrols: En komma-separeret liste af navne på knapper, der skal bruges som sideadministratorer. Den rækkefølge, de har i dette argument, svarer til de sidetal, de bliver tilknyttede.
wizardcontrols: En komma-separeret listen med navne på de to knapper, der skal bruges som Forrige/Næste-knapper.
lastpage: Nummeret på den sidste tilgængelige side. Det anbefales at angive denne værdi, når du bruger knapper til Forrige/Næste.
Tænk på en dialog med tre sider. Dialogen har et ListBox-kontrolelement (rulleliste) med navnet "aPageList", som vil blive brug til at kontrollere den synlige side. Derudover er der to knapper kaldet "btnPrevious" og "btnNext", som vil blive brugt som Forrige/Næste-knapper i dialogen.
    oDlg.SetPageManager(PilotControls := "aPageList", _
                           WizardControls := "btnPrevious,btnNext", _
                           LastPage := 3)
    oDlg.Execute()
  
    dlg.SetPageManager(pilotcontrols="aPageList",
                       wizardcontrols="btnPrevious,btnNext",
                       lastpage=3)
    dlg.Execute()
  Afslut tjenesten Dialog for den aktuelle instans. Returner True (sand), hvis afslutningen lykkedes.
svc.Terminate(): bool
Basic- og Python-eksemplerne herunder åbner de ikke modale dialoger DlgConsole og dlgTrace. De gemmes henholdsvis i de delte biblioteker ScriptForge og Access2Base. Luk dialog-knapperne er deaktiveret og der udføres udtrykkelig afslutning i slutningen af en kørselsproces.
I dette eksempel erstatter en knap i DlgConsole hæmmet lukning af vinduet:
     oDlg = CreateScriptService("SFDialogs.Dialog","GlobalScope","ScriptForge","DlgConsole")
     oDlg.Execute(modal:=False)
     Wait 5000
     oDlg.Terminate()
   
     from time import sleep
     dlg = CreateScriptService('SFDialogs.Dialog',"GlobalScope",'Access2Base',"dlgTrace")
     dlg.Execute(modal=False)
     sleep 5
     dlg.Terminate()