LibreOfficeDev 25.8 Help
De service Dialog draagt bij aan het beheer van dialoogvensters die zijn gemaakt met de Basic Dialog Editor of van dialoogvensters die on-the-fly zijn gemaakt . Elke instantie van de huidige klasse vertegenwoordigt een enkel dialoogvenster dat aan de gebruiker wordt weergegeven.
Een dialoogvenster kan worden weergegeven in modale of in niet-modale modi.
In de modale modus wordt het vak weergegeven en wordt de uitvoering van het macroproces opgeschort, totdat op een van de knoppen OK of Annuleren wordt gedrukt. In de tussentijd kunnen gebruikersacties die op de box worden uitgevoerd, specifieke acties activeren.
In niet-modale modus "zweeft" het dialoogvenster op het bureaublad van de gebruiker en de uitvoering van het macroproces gaat normaal door. Een niet-modaal dialoogvenster wordt gesloten wanneer het wordt beëindigd met de methode Terminate() of wanneer de LibreOfficeDev-sessie eindigt. De knop voor het sluiten van het venster is inactief in niet-modale dialoogvensters.
Een dialoogvenster verdwijnt uit het geheugen nadat het expliciet is beëindigd.
De service SFDialogs.Dialog is nauw verwant aan de service SFDialogs.DialogControl.
Voordat de service Dialog gebruikt kan worden, moet de bibliotheek ScriptForge eerst worden geladen of geïmporteerd:
De service Dialog wordt aangeroepen via de methode CreateScriptService. Er zijn drie aanvullende positionele argumenten nodig om het dialoogvenster te specificeren dat moet worden geactiveerd:
Container: "GlobalScope" voor voorgeïnstalleerde bibliotheken of een vensternaam zoals gedefinieerd met de service ScriptForge.UI. De standaardwaarde, een lege tekenreeks, staat voor het huidige document.
Library: De hoofdlettergevoelige naam van een bibliotheek in de container. Standaardwaarde is "Standard".
DialogName: Een hoofdlettergevoelige tekenreeks die de dialoog aangeeft.
De onderstaande voorbeelden in Basic en Python tonen het dialoogvenster dlgConsole dat behoort tot de gedeelde bibliotheek ScriptForge:
      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")
      '... hier staat wat initialisatie...
      lButton = oDlg.Execute()
      'Standaardmodus is Modal
      If lButton = oDlg.OKBUTTON Then
      '... Procescontrole
      End If
      oDlg.Terminate()
  Of met Python:
    dlg = CreateScriptService('SFDialogs.Dialog', 'GlobalScope', 'ScriptForge', 'dlgConsole')
    #... hier staat wat initialisatie...
    rc = dlg.Execute()
    # Standaardmodus is Modal
    if rc == dlg.OKBUTTON:
        # ... Procescontrole
    dlg.Terminate()
  Gebruik de tekenreeks "GlobalScope" als het argument container wanneer het dialoogvenster is opgeslagen in of in .
De dialoogservice biedt methodes die dynamisch nieuwe besturingselementen maken in een bestaand dialoogvenster dat vooraf is gedefinieerd met de Dialoogbewerker. Een dialoogvenster wordt geïnitialiseerd met besturingselementen in de Dialoogbewerker en nieuwe besturingselementen kunnen tijdens runtime worden toegevoegd vóór of na de Execute()-instructie van het dialoogvenster.
De service Dialog kan op dezelfde manier worden aangeroepen - via de methode CreateScriptService - wanneer u direct dialoogvensters maakt. Er zijn twee aanvullende positionele argumenten nodig na de naam van de ad-hocservice "NewDialog":
DialogName: Een hoofdlettergevoelige tekenreeks die het dialoogvenster aanduidt.
Place: Vensterlocatie van het dialoogvenster is ofwel :
een BASIC Matrix of Python-tuple met 4 elementen: (X, Y, breedte, hoogte)
een com.sun.star.awt.Rectangle [X, Y, Width, Height]-object
Alle elementen worden uitgedrukt in Map AppFont units.
    Sub newDialog()
        Dim oDlg As Object
       oDlg = CreateScriptService("NewDialog", "myDialog1", Array(100,200, 40, 110))
       ' ...
    End Sub
  Of Python gebruiken:
    def newDialog():
       dlg = CreateScriptService('NewDialog', 'myDialog1', (100,200, 40, 110))
       # ... Procescontroles en doen wat nodig is
  Alle eigenschappen en methodes die van toepassing zijn op vooraf gedefinieerde dialoogvensters zijn beschikbaar voor dergelijke nieuwe dialoogvensters. In het bijzonder de reeks CreateXXX() methodes voor het toevoegen van nieuwe dialoogbesturingselementen.
Een exemplaar van de Dialog-service kan worden opgehaald via de SFDialogs.DialogEvent-service, op voorwaarde dat de dialoog is gestart met de Dialog-service. In het onderstaande voorbeeld bevat oDlg de instantie Dialog die de dialooggebeurtenis heeft geactiveerd.
    Sub aDialogEventHander(ByRef poEvent As Object)
        Dim oDlg As Object
        Set oDlg = CreateScriptService("SFDialogs.DialogEvent", poEvent)
        ' ...
    End Sub
  Of Python gebruiken:
    def control_event_handler(event: uno):
        dlg = CreateScriptService("SFDialogs.DialogEvent", event)
        # ...
  Merk op dat in de voorgaande voorbeelden het voorvoegsel "SFDialogs." kan worden weggelaten wanneer dit passend wordt geacht.
Bij het maken van een gebeurtenishandler voor dialooggebeurtenissen is het een goede gewoonte om fouten binnen de subroutine zelf af te handelen. Stel bijvoorbeeld dat onderstaande gebeurtenishandler wordt aangeroepen wanneer de muisknop wordt ingedrukt in het dialoogvenster.
    Sub OnMouseButtonPressed(ByRef oEvent As Object)
    On Local Error GoTo Catch
        Dim oDialog As Object
        oDialog = CreateScriptService("DialogEvent", oEvent)
        ' De gebeurtenis verwerken
        Exit Sub
    Catch:
        MsgBox SF_Exception.Description
        SF_Exception.Clear
    End Sub
  SF_Exception.Clear aanroepen als u niet wilt dat de fout zich voortplant, nadat de uitvoering van het dialoogvenster is beëindigd.
Gebruik in Python native try/except-blokken voor het afhandelen van uitzonderingen, zoals hieronder getoond:
    def on_mouse_button_pressed(event=None):
        try:
            dlg = CreateScriptService("DialogEvent", event)
            # De gebeurtenis verwerken
        except Exception as e:
            # Het object "bas" is een instantie van de Basic-service
            bas.MsgBox(str(e))
  | Naam | AlleenLezen | Type | Beschrijving | 
|---|---|---|---|
| OKBUTTON | Ja | Integer | Value = 1. Er is op de knop OK gedrukt. | 
| CANCELBUTTON | Ja | Integer | Value = 0. A Er is op de knop Annuleren gedrukt. | 
| Caption | Nee | String | Geef de titel van het dialoogvenster op. | 
| Height | Nee | Long | Geef de hoogte van het dialoogvenster op. | 
| Modal | Ja | Boolean | Geeft aan of het dialoogvenster momenteel wordt uitgevoerd in de modale modus. | 
| Name | Ja | String | De naam van het dialoogvenster | 
| Page | Nee | Integer | Een dialoogvenster kan meerdere pagina's hebben die stap voor stap door de gebruiker kunnen worden doorlopen. De eigenschap Page van het Dialog-object definieert welke pagina van het dialoogvenster actief is. | 
| Visible | Nee | Boolean | Geef op of het dialoogvenster zichtbaar is op het bureaublad. Standaard is het niet zichtbaar totdat de methode Execute() wordt uitgevoerd en daarna zichtbaar. | 
| XDialogModel | Ja | UNO | Het UNO-object dat het dialoogmodel vertegenwoordigt. Raadpleeg XControlModel en UnoControlDialogModel in de Application Programming Interface (API)-documentatie voor gedetailleerde informatie. | 
| XDialogView | Ja | UNO | Het UNO-object dat de dialoogweergave vertegenwoordigt. Raadpleeg XControl en UnoControlDialog in de Application Programming Interface (API)-documentatie voor gedetailleerde informatie. | 
| Width | Nee | Long | Geef de breedte van het dialoogvenster op. | 
On… gebeurtenis-eigenschappen zijn URI-reeksen die verwijzen naar een script dat wordt geactiveerd voor een gebeurtenis. Lees de specificatie in de scripting framework URI-specificatie.
| Naam | Basic IDE-beschrijving | 
|---|---|
| OnFocusGained | Bij het verkrijgen van focus | 
| OnFocusLost | Bij verlies van focus | 
| OnKeyPressed | Toets ingedrukt | 
| OnKeyReleased | Toets losgelaten | 
| OnMouseDragged | Muis bewoog tijdens toetsaanslagen | 
| OnMouseEntered | Muis binnen | 
| OnMouseExited | Muis buiten | 
| OnMouseMoved | Muisbeweging | 
| OnMousePressed | Muisknop ingedrukt | 
| OnMouseReleased | Muisknop losgelaten | 
Tip: Alle Aan…-eigenschappen kunnen programmatisch worden ingesteld.
 Hoe gegevens in een boomstructuur worden weergegeven-voorbeeld in LibreOfficeDev Wiki demonstreert dit.
Het toewijzen van gebeurtenissen via de Basic IDE en het toewijzen van gebeurtenissen via macro's sluiten elkaar uit.
TabPageContainer besturingselementen zijn niet beschikbaar in Dialog Editor.
Het dimensioneren van een dialoogvenster wordt gedaan met behulp van AppFont-eenheden toewijzen. Een dialoogvenster- of besturingsmodel maakt ook gebruik van AppFont-eenheden. Terwijl hun weergaven pixels gebruiken.
Stel de focus in op de huidige Dialog instantie. Retourneer True als het scherpstellen gelukt is.
Deze methode wordt aangeroepen vanuit een dialoog of besturingsgebeurtenis, of wanneer een dialoog wordt weergegeven in niet-modale modus.
svc.Activate(): bool
      Dim oDlg As Object
      Set oDlg = CreateScriptService(,, "myDialog")
      oDlg.Execute()
      ' ...
      oDlg.Activate()
   Python en LibreOfficeDev Basicvoorbeelden gaan er beide van uit dat het dialoogvenster is opgeslagen in de bibliotheek Standard van het huidige document.
     dlg = CreateScriptService(,,'myDialog')
     dlg.Execute()
     # ...
     dlg.Activate()
   Centreert de huidige dialooginstantie in het midden van een bovenliggend venster. Zonder argumenten centreert de methode het dialoogvenster in het midden van het huidige venster.
Retourneert True bij succes.
svc.Center(opt Parent: obj): bool
Parent: Een optioneel object …
een ScriptForge-dialoogobject
een document (Calc, Base, …) "ScriptForge"
     Sub TriggerEvent(oEvent As Object)
         Dim oDialog1 As Object, oDialog2 As Object, lExec As Long
         Set oDialog1 = CreateScriptService("DialogEvent", oEvent) ' Het dialoogvenster dat de gebeurtenis heeft veroorzaakt
         Set oDialog2 = CreateScriptService("Dialog", ...) ' Open een tweede dialoogvenster
         oDialog2.Center(oDialog1)
         lExec = oDialog2.Execute()
         Select Case lExec
             ...
     End Sub
  
     def triggerEvent(event: uno):
       dlg1 = CreateScriptService('DialogEvent.Dialog', event) # Het dialoogvenster dat de gebeurtenis heeft veroorzaakt
       dlg2 = CreateScriptService('Dialog', ...)  # Een tweede dialoogvenster openen
       dlg2.Center(dlg1)
       rc = dlg2.Execute()
       if rc is False:
         # ...
   Dupliceer een bestaand besturingselement van welk type dan ook in het daadwerkelijke dialoogvenster. Het gedupliceerde besturingselement blijft ongewijzigd en kan worden verplaatst.
svc.CloneControl(SourceName: str, ControlName: str, Left: num, Top: num): svc
SourceName: De naam van het besturingselement dat moet worden gedupliceerd.
ControlName: Een geldige besturingselementnaam als hoofdlettergevoelige tekenreeks. Het mag nog niet bestaan.
Left, Top: De coördinaten van het nieuwe besturingselement uitgedrukt in Map AppFont units.
      Set myButton2 = oDlg.CloneControl("Button1", "Button2", 30, 30)
   
     dlg = dlg.CloneControl('Button1', 'Button2', 30, 30)
   Teruggave:
de lijst met bedieningselementen in het dialoogvenster
a DialogControl klasse-instantie op basis van zijn naam
svc.Controls(): str[0..*]
svc.Controls(controlname: str): svc
ControlName : Een geldige besturingselementnaam als hoofdlettergevoelige tekenreeks. Indien afwezig, wordt de lijst met besturingselementnamen geretourneerd als een op nul gebaseerde 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')
   Creëert een nieuw besturingselement van het type Knop in het huidige dialoogvenster.
svc.CreateButton(ControlName: str, Place: any, Toggle: bool = False, Push: str = ""): svc
ControlName: de naam van het nieuwe besturingselement. Het mag nog niet bestaan.
Place: ofwel …
een Basic Matrix of Python tuple met 4 elementen: (X, Y, breedte, hoogte)
een com.sun.star.awt.Rectangle [X, Y, Width, Height]-object
All elementen worden uitgedrukt in Map AppFont units.
Toggle: als True Er wordt een schakelknop gemaakt. Standaard = False
Push: "OK", "CANCEL" of "" (standaard)
Een voorkomen van SFDialogs.DialogControl-service of Nothing.
     Set myButton = oDlg.CreateButton("Button1", Array(20, 20, 60, 15))
   
     myButton = dlg.CreateButton('Button1', (20, 20, 60, 15))
   Creëert een nieuw besturingselement van het type Keuzevakje in het huidige dialoogvenster.
svc.CreateCheckBox(ControlName: str, Place: any, Multiline: bool = False): svc
MultiLine: Wanneer True (standaard = False), kan het bijschrift op meer dan één regel worden weergegeven.
     Set myCheckBox = oDlg.CreateCheckBox("CheckBox1", Array(20, 20, 60, 15), MultiLine := True)
   
     myCheckBox = dlg.CreateCheckBox('CheckBox1', (20, 20, 60, 15), MultiLine = True)
   Creëert een nieuw besturingselement van het type Invoervak met keuzelijst in het huidige dialoogvenster.
svc.CreateComboBox(ControlName: str, Place: any, Border: str = "3D", DropDown: bool = True, LineCount: num = 5): svc
Rand: "3D" (standaard), "FLAT" of "NONE"
DropDown: Als True (standaard), er wordt een keuzelijstknop weergegeven
LineCount: Specificeert het maximale aantal regels dat wordt weergegeven in de keuzelijst (standaard = 5)
     Set myComboBox = oDlg.CreateComboBox("ComboBox1", Array(20, 20, 60, 15), Dropdown := True)
   
     myComboBox = dlg.CreateComboBox('ComboBox1', (20, 20, 60, 15), Dropdown = True)
   Maakt een nieuw besturingselement van het type HuidigVeld in het huidige dialoogvenster.
svc.CreateCurrencyField(ControlName: str, Place: any, Border ="3D", SpinButton: bool = False, MinValue: num = -1000000, MaxValue: num = +1000000, Increment: num = 1, Accuracy: num = 2): svc
Rand: "3D" (standaard), "FLAT" of "NONE"
SpinButton: als True (standaard = False), er is een draaiknop aanwezig
MinValue: de kleinste waarde die in het besturingselement kan worden ingevoerd. Standaard = -1000000
MaxValue: de grootste waarde die in het besturingselement kan worden ingevoerd. Standaard = +1000000
Increment: de stap wanneer de draaiknop wordt ingedrukt. Standaard = 1
Accuracy: specificeert de decimale nauwkeurigheid. Standaard = 2 decimalen
     Set myCurrencyField = oDlg.CreateCurrencyField("CurrencyField1", Array(20, 20, 60, 15), SpinButton := True)
   
     myCurrencyField = dlg.CreateCurrencyField('CurrencyField1', (20, 20, 60, 15), SpinButton = True)
   Creëert een nieuw besturingselement van het type Gegevensveld in het huidige dialoogvenster.
svc.CreateDateField(ControlName: str, Place: any, Border: str = "3D", DropDown: bool = False, opt MinDate: datetime, opt MaxDate: datetime): svc
Rand: "3D" (standaard), "FLAT" of "NONE"
DropDown: als True (standaard = False), Er wordt een keuzelijstknop weergegeven
MinDate: de kleinste datum die in de besturing kan worden ingevoerd. Standaard = 1900-01-01
MaxDate: de grootste datum die in de besturing kan worden ingevoerd. Standaard = 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)
   Maakt een nieuw besturingselement van het type FileControl in het huidige dialoogvenster.
svc.CreateFileControl(ControlName: str, Place: any, Border: str = "3D"): svc
Rand: "3D" (standaard), "FLAT" of "NONE"
     Set myFileControl = oDlg.CreateFileControl("FileControl1", Array(20, 20, 60, 15))
   
     myFileControl = dlg.CreateFileControl('FileControl1', (20, 20, 60, 15))
   Creëert een nieuw besturingselement van het type FixedLine in het huidige dialoogvenster.
svc.CreateFixedLine(ControlName: str, Place: any, Orientation: str): svc
Oriëntatie: voor horizontale oriëntatie gebruik "H" of "Horizontaal"; gebruik voor verticale oriëntatie "V" of "Verticaal".
     Set myFixedLine = oDlg.CreateFixedLine("FixedLine1", Array(20, 20, 60, 15), Orientation := "vertical")
   
     myFixedLine = dlg.CreateFixedLine('FixedLine1', (20, 20, 60, 15), Orientation = 'vertical')
   Maakt een nieuw besturingselement van het type FixedText in het huidige dialoogvenster.
svc.CreateFixedText(ControlName: str, Place: any, Border: str = "3D", MultiLine: bool = False, Align: str = "LEFT", VerticalAlign: str = "TOP"): svc
Rand: "NONE" (standaard), "FLAT" of "3D"
Multiline: Als True (standaard= False), het bijschrift kan op meer dan één regel worden weergegeven
Uitlijnen: horizontale uitlijning, "LEFT" (standaard), "CENTER" of "RIGHT"
VerticalAlign: verticale uitlijning, "TOP" (standaard), "MIDDLE" of "BOTTOM"
     Set myFixedText = oDlg.CreateFixedText("FixedText1", Array(20, 20, 60, 15), MultiLine := True)
   
     myFixedText = dlg.CreateFixedText('FixedText1', (20, 20, 60, 15), MultiLine = True)
   Maakt een nieuw besturingselement van het type FormattedField in het huidige dialoogvenster.
svc.CreateFormattedField(ControlName: str, Place: any, Border: str = "3D", SpinButton: bool = False, MinValue: num = -1000000, MaxValue: num = +1000000): svc
Rand: "3D" (standaard), "FLAT" of "NONE"
SpinButton: als True (standaard = False), er is een draaiknop aanwezig
MinValue: de kleinste waarde die in het besturingselement kan worden ingevoerd. Standaard = -1000000
MaxValue: de grootste waarde die in het besturingselement kan worden ingevoerd. Standaard = +1000000
     Set myFormattedField = oDlg.CreateFormattedField("FormattedField1", Array(20, 20, 60, 15), SpinButton := True)
   
     myFormattedField = dlg.CreateFormattedField('FormattedField1', (20, 20, 60, 15), SpinButton = True)
   Maakt een nieuw besturingselement van het type GroupBox in het huidige dialoogvenster.
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))
   Maakt een nieuw besturingselement van het type Hyperlink in het huidige dialoogvenster.
svc.CreateHyperlink(ControlName: str, Place: any, Border: str = "NONE", MultiLine: bool = False, Align: str = "LEFT", VerticalAlign: str = "TOP"): svc
Rand: "NONE" (standaard), "FLAT" of "3D"
MultiLine: Als True (standaard= False), het bijschrift kan op meer dan één regel worden weergegeven
Align: horizontale uitlijning, "LEFT" (standaard), "CENTER" of "RIGHT"
VerticalAlign: verticale uitlijning, "TOP" (standaard), "MIDDLE" of "BOTTOM"
     Set myHyperlink = oDlg.CreateHyperlink("Hyperlink1", Array(20, 20, 60, 15), MultiLine := True)
   
     myHyperlink = dlg.CreateHyperlink('Hyperlink1', (20, 20, 60, 15), MultiLine = True)
   Maakt een nieuw besturingselement van het type ImageControl in het huidige dialoogvenster.
svc.CreateImageControl(ControlName: str, Place: any, Border: str = "3D", Scale: str = "FITTOSIZE"): svc
Rand: "3D" (standaard), "FLAT" of "NONE"
Scale: Een van de volgende waarden: "FITTOSIZE" (standaard), "KEEPRATIO" of "NO"
     Set myImageControl = oDlg.CreateImageControl("ImageControl1", Array(20, 20, 60, 15))
   
       myImageControl = dlg.CreateImageControl('ImageControl1", (20, 20, 60, 15))
   Maakt een nieuw besturingselement van het type ListBox in het huidige dialoogvenster.
svc.CreateListBox(ControlName: str, Place: any, Border: str = "3D", DropDown: bool = True, LineCount: num = 5, MultiSelect: bool = False): svc
Rand: "3D" (standaard), "FLAT" of "NONE"
DropDown: Als True (standaard), er wordt een keuzelijstknop weergegeven
LineCount: Specificeert het maximale aantal regels dat wordt weergegeven in de keuzelijst (standaard = 5)
MultiSelect: Als True, kan er meer dan 1 item worden geselecteerd. Standaard = 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)
   Maakt een nieuw besturingselement van het type NumericField in het huidige dialoogvenster.
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
Rand: "3D" (standaard), "FLAT" of "NONE"
SpinButton: als True (standaard = False), er is een draaiknop aanwezig
MinValue: de kleinste waarde die in het besturingselement kan worden ingevoerd. Standaard = -1000000
MaxValue: de grootste waarde die in het besturingselement kan worden ingevoerd. Standaard = +1000000
Increment: de stap wanneer de draaiknop wordt ingedrukt. Standaard = 1
Accuracy: specificeert de decimale nauwkeurigheid. Standaard = 2 decimalen
     Set myNumericField = oDlg.CreateNumericField("NumericField1", Array(20, 20, 60, 15), SpinButton := True)
   
     myNumericField = dlg.CreateNumericField('NumericField1', (20, 20, 60, 15), SpinButton = True)
   Creëert een nieuw besturingselement van het type PatternField in het huidige dialoogvenster.
svc.CreatePatternField(ControlName: str, Place: any, Border: str = "3D", EditMask: str, opt LiteralMax: str): svc
Rand: "3D" (standaard), "FLAT" of "NONE"
EditMask: een tekencode die bepaalt wat de gebruiker mag invoeren
Bekijk Pattern_Field in de wiki voor meer informatie.
LiteralMask: bevat de initiële waarden die worden weergegeven in het patroonveld
     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')
   Maakt een nieuw besturingselement van het type ProgressBar in het huidige dialoogvenster.
svc.CreateProgressBar(ControlName: str, opt Place: any, Border: str = "3D", MinValue: num = 0, MaxValue: num = 100): svc
Rand: "3D" (standaard), "FLAT" of "NONE"
MinValue: de kleinste waarde die in het besturingselement kan worden ingevoerd. Standaard = 0
MaxValue: de grootste waarde die in het besturingselement kan worden ingevoerd. Standaard = 100
     Set myProgressBar = oDlg.CreateProgressBar("ProgressBar1", Array(20, 20, 60, 15), MaxValue := 1000)
   
     myProgressBar = dlg.CreateProgressBar('ProgressBar1', (20, 20, 60, 15), MaxValue = 1000)
   Maakt een nieuw besturingselement van het type RadioButton in het huidige dialoogvenster.
svc.CreateRadioButton(ControlName: str, Place: any, MultiLine: bool = False): svc
MultiLine: Als True (standaard = False), kan het bijschrift op meer dan één regel worden weergegeven
     Set myRadioButton = oDlg.CreateRadioButton("RadioButton1", Array(20, 20, 60, 15), MultiLine := True)
   
     myRadioButton = dlg.CreateRadioButton('RadioButton1', (20, 20, 60, 15), MultiLine = True)
   Maakt een nieuw besturingselement van het type ScrollBar in het huidige dialoogvenster.
svc.CreateScrollBar(ControlName: str, Place, Orientation: str, Border: str = "3D", MinValue: num = 0, MaxValue: num = 100): svc
Oriëntatie: voor horizontale oriëntatie gebruik "H" of "Horizontaal"; gebruik voor verticale oriëntatie "V" of "Verticaal".
Rand: "3D" (standaard), "FLAT" of "NONE"
MinValue: de kleinste waarde die in het besturingselement kan worden ingevoerd. Standaard = 0
MaxValue: de grootste waarde die in het besturingselement kan worden ingevoerd. Standaard = 100
     Set myScrollBar = oDlg.CreateScrollBar("ScrollBar1", Array(20, 20, 60, 15), MaxValue := 1000)
   
     myScrollBar = dialog.CreateScrollBar('ScrollBar1', (20, 20, 60, 15), MaxValue = 1000)
   Maakt een nieuw besturingselement van het type TableControl in het huidige dialoogvenster.
svc.CreateTableControl(ControlName: str, Place: any, Border: str = "3D", RowHeaders: bool = True, ColumnHeaders: bool = True, ScrollBars: str = "N", GridLines: bool = False): svc
Rand: "3D" (standaard), "FLAT" of "NONE"
RowHeaders: als True (standaard), worden de rijkoppen weergegeven
ColumnHeaders: als True (standaard), worden de kolomkoppen weergegeven
ScrollBars: mogelijke waarden zijn: "H" of "Horizontaal" (horizontale schuifbalken), "V" of "Verticaal" (verticale schuifbalken); "B" of "Beide" (beide schuifbalken); "G" of "Geen" (standaard) voor geen schuifbalken. Schuifbalken verschijnen dynamisch wanneer ze nodig zijn.
GridLines: als True (standaard = False) zijn horizontale en verticale lijnen getekend tussen de rastercellen
     Set myTableControl = oDlg.CreateTableControl("TableControl1", Array(20, 20, 60, 15), ScrollBars := "B")
   
     myTableControl = dlg.CreateTableControl('TableControl1', (20, 20, 60, 15), ScrollBars = 'B')
   Maakt een nieuw besturingselement van het type TabPageContainer in het huidige dialoogvenster. Tabbladen worden indien nodig over afzonderlijke regels in het dialoogvenster verspreid. Meerdere TabPageContainer worden niet ondersteund.
Het aanmaken van het TagePageContainer-besturingselement gebeurt altijd als laatste in een dialoogvenster.
svc.CreateTabPageContainer(ControlName: str, Place: any, TabHeaders: str[1..*], Border: str = "3D"): svc
TabHeaders: Een matrix van tekenreeksen die elk afzonderlijk label voor tabbladen definieert
Border: "3D" (standaard), "FLAT" of "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))
   Maakt een nieuw besturingselement van het type TextField in het huidige dialoogvenster.
svc.CreateTextField(ControlName: str, Place: any, Border: str = "3D", MultiLine: bool = False, MaximumLength: num = 0, PasswordCharacter: str = ""): svc
Rand: "3D" (standaard), "FLAT" of "NONE"
MultiLine: Als True (standaard = False), het bijschrift kan op meer dan één regel worden weergegeven
MaximumLength: het maximale aantal tekens (standaard = 0 betekent onbeperkt)
PasswordCharacter: een enkel teken dat de echo voor een wachtwoordtekstveld specificeert (standaard = "")
Set myTextField = oDlg.CreateTextField("TextField1", Array(20, 20, 120, 50), MultiLine := True)
   
     myTextField = dlg.CreateTextField('TextField1', (20, 20, 120, 50), MultiLine = True)
   Maakt een nieuw besturingselement van het type TimeField in het huidige dialoogvenster.
svc.CreateTimeField(ControlName: str, Place: any, Border: str = "3D", MinTime: num = 0, MaxTime: num = 24): svc
Rand: "3D" (standaard), "FLAT" of "NONE"
MinTime: de kleinste tijd die in het besturingselement kan worden ingevoerd. Standaard = 0
MaxTime: de grootste tijd die in het besturingselement kan worden ingevoerd. Standaard = 24u
     Set myTimeField = oDlg.CreateTimeField("TimeField1", Array(20, 20, 60, 15))
   
     myTimeField = dlog.CreateTimeField('TimeField1', (20, 20, 60, 15))
   Maakt een nieuw besturingselement van het type TreeControl in het huidige dialoogvenster.
svc.CreateTreeControl(ControlName: str, Place: any, Border = "3D"): svc
Rand: "3D" (standaard), "FLAT" of "NONE"
     Set myTreeControl = oDlg.CreateTreeControl("TreeControl1", Array(20, 20, 60, 15))
   
     myTreeControl = dlg.CreateTreeControl('TreeControl1', (20, 20, 60, 15))
   Beëindigt de weergave van een modaal dialoogvenster en geeft het argument terug als retourwaarde voor de huidige Execute() actieve actie.
EndExecute() is meestal vervat in de verwerking van een macro die wordt geactiveerd door een dialoogvenster of besturingsgebeurtenis.
svc.EndExecute(returnvalue: int)
returnvalue: De waarde die is doorgegeven aan de actieve methode Execute().
      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)
   Bovenstaande com.sun.star.lang.EventObject-vermeldingen zijn optioneel. Dergelijke annotaties helpen bij het identificeren van LibreOfficeDev Application Programming Interface (API).
Geef het dialoogvenster weer en wacht, indien modaal, op beëindiging door de gebruiker. De geretourneerde waarde is ofwel:
0 : Cancel knop ingedrukt
1 : OK knop ingedrukt
Anders stopte het dialoogvenster met een EndExecute()-instructie uitgegeven door een dialoogvenster of controlegebeurtenis
Voor niet-modale dialoogvensters retourneert de methode altijd 0 en gaat de uitvoering van de macro door.
svc.Execute(modal: bool = True): int
modal: False bij niet-modale dialoogvenster. Standaard = True.
In dit basisvoorbeeld wordt het dialoogvenster myDialog opgeslagen in de bibliotheek Standard van het huidige document.
      Dim oDlg As Object, lReturn As Long
      Set oDlg = CreateScriptService("SFDialogs.Dialog", , , "myDialog")
      lReturn = oDlg.Execute(Modal := False)
      Select Case lReturn
          ' ...
      End Select
   Deze Python-code geeft het modale dialoogvenster DlgConvert weer uit de gedeelde Basic bibliotheek Euro.
     dlg = CreateScriptService("SFDialogs.Dialog", 'GlobalScope', 'Euro', "DlgConvert")
     rc = dlg.Execute()
     if rc == dlg.CANCELBUTTON:
         # ...
   Vervangt alle vaste tekstreeksen in een dialoogvenster door hun vertaalde versies op basis van een service-instantie L10N. Deze methode vertaalt de volgende strings:
De methode retourneert True indien succesvol.
Gebruik de AddTextsFromDialog methode van de service L10N om een lijst met vertaalbare tekenreeksen in een dialoogvenster te maken.
svc.GetTextsFromL10N(l10n: svc): bool
l10n: Een service-instantie L10N waaruit vertaalde tekenreeksen worden opgehaald.
Het volgende voorbeeld laadt vertaalde tekenreeksen en past ze toe op het dialoogvenster "MyDialog".
     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()
   Lees de L10N-service-helppagina voor meer informatie over hoe PO- en POT-bestanden worden verwerkt.
Importeer en dupliceer een bestaand besturingselement van elk type van het ene dialoogvenster naar het daadwerkelijke dialoogvenster. Het gedupliceerde besturingselement blijft ongewijzigd. U kunt de nieuwe besturingselementen hernoemen en verplaatsen. Gebeurtenis-handlers kunnen, indien aanwezig, ook worden geïmporteerd.
svc.ImportControl(SourceDialog: svc, SourceName: str, opt ControlName: str, Page: num = 0, OffsetX: num = 0, OffsetY:num = 0, IncludeOnProperties: bool = False): svc
SourceDialog: een SFDialogs.Dialog klasse-instantie.
SourceName: de naam van het besturingselement dat moet worden geïmporteerd.
ControlName: de naam van het nieuwe besturingselement. Het mag nog niet bestaan. Standaard is SourceName
Page: het paginanummer van het nieuwe besturingselement. Standaard = 0
OffsetX, OffsetY: het aantal pixels dat aan de broncodecoördinaten moet worden toegevoegd in "Map AppFont"-eenheden. Standaardwaarde = 0, kan negatief zijn.
IncludeOnProperties: neem de gebeurteniseigenschappen On... op. Standaardwaarde = False.
     Set mCtrl = oDlg.ImportControl(srceDlg, "someCtrlName")
   
     dlg.ImportControl(srceDlg, 'aCtrlName', includeOnProperties=true)
   Stel de tabelindex van een reeks besturingselementen in. De volgorde van de besturingselementen wordt gegeven als een reeks besturingsnamen, van de eerste tot de laatste.
Besturingselementen met een index >= 1 zijn niet toegankelijk met de TAB-toets als:
- ze zijn weggelaten uit de gegeven lijst
 - hun type is FixedLine, GroupBox of ProgressBar
- ze zijn uitgeschakeld
svc.TabsList(TabsList: num, Start: num = 1, Increment: num = 1): bool
TabsList: een matrix met geldige controlenamen in de volgorde van tabellering
Start: de tabbladindex die moet worden toegewezen aan het eerste besturingselement in de lijst. Standaard = 1
Increment: het verschil tussen 2 opeenvolgende tabbladindexen. Standaard = 1
Retourneert True als geslaagd.
     oDlg.OrderTabs(Array("myListBox", "myTextField", "myNumericField"), Start := 10)
   
     dlg.OrderTabs(('myListBox', 'myTextField', 'myNumericField'), Start = 10)
   Verplaatst de linkerbovenhoek van een dialoogvenster naar nieuwe coördinaten en/of wijzigt de afmetingen ervan. Alle afstanden worden uitgedrukt in AppFont-eenheden. Zonder argumenten reset de methode de initiële dimensies. Retourneert True als het wijzigen van de grootte is gelukt.
svc.Resize(opt Left: num, opt Top: num, opt Width: num, opt Height: num): bool
Left: de horizontale afstand vanaf de linkerbovenhoek
Top: de verticale afstand vanaf de linkerbovenhoek
Width: de breedte van de rechthoek die het dialoogvenster bevat
Height: de hoogte van de rechthoek die het dialoogvenster bevat
Ontbrekende argumenten blijven ongewijzigd
     oDlg.Resize(1000, 2000, Height := 6000) ' Breedte is niet gewijzigd
   
     dlg.Resize(1000, 2000, Height = 6000)  # Breedte is niet gewijzigd
   Definieert welke besturingselementen in een dialoogvenster verantwoordelijk zijn voor het schakelen tussen pagina's, waardoor het eenvoudiger wordt om de eigenschap Pagina van een dialoogvenster en de bijbehorende besturingselementen te beheren.
Dialoogvensters kunnen meerdere tabbladen hebben en het momenteel zichtbare tabblad wordt gedefinieerd door de Pagina dialoogeigenschap. Als de eigenschap Page ongewijzigd blijft, is het standaard zichtbare tabblad gelijk aan 0 (nul), wat betekent dat er geen specifiek tabblad is gedefinieerd en dat alle zichtbare bedieningselementen worden weergegeven, ongeacht de waarde die is ingesteld in hun eigen eigenschap Page.
Wanneer de eigenschap Page van een dialoogvenster wordt gewijzigd in een andere waarde, zoals 1, 2, 3 enzovoort, dan worden alleen de besturingselementen weergegeven waarvan de eigenschap Page overeenkomt met de huidige dialoogvensterpagina zullen worden tentoongesteld.
Door gebruik te maken van de methode SetPageManager is het mogelijk om vier types paginabeheerders te definiëren:
List box or combo box:in dit geval komt elk item in de keuzelijst of keuzelijst met invoervak overeen met een tabblad. Het eerste item verwijst naar tabblad 1, het tweede item verwijst naar tabblad 2 enzovoort.
Group of radio buttons: definieert een groep keuzerondjes die bepalen welk tabblad zichtbaar is.
Volgorde van knoppen: definieert een set knoppen, die elk overeenkomen met een dialoogpagina. Dit kan worden gebruikt om een interface met tabbladen te emuleren door knoppen naast elkaar in het dialoogvenster te plaatsen.
Previous/Next buttons: definieert welke knoppen in het dialoogvenster worden gebruikt om naar het vorige/volgende tabblad in het dialoogvenster te navigeren.
Het is mogelijk om meer dan één tabbladbeheermechanisme tegelijkertijd te gebruiken.
Het is de bedoeling dat deze methode slechts één keer wordt aangeroepen voordat de methode Execute wordt aangeroepen. Latere oproepen worden genegeerd.
Indien succesvol retourneert deze methode True.
svc.SetPageManager(pilotcontrols: str = "", tabcontrols: str = "", wizardcontrols: str = "", opt lastpage: int): bool
pilotcontrols: een door komma's gescheiden lijst van ListBox-, ComboBox- of RadioButton-besturingselementen die worden gebruikt als tabbladbeheerders. Geef voor RadioButton-besturingselementen de naam op van het eerste besturingselement in de te gebruiken groep.
tabcontrols: een door komma's gescheiden lijst met knopnamen die zullen worden gebruikt als tabbladbeheerders. De volgorde waarin ze in dit argument worden opgegeven, komt overeen met het bladnummer waaraan ze zijn gekoppeld.
wizardcontrols: een door komma's gescheiden lijst met de namen van twee knoppen die zullen worden gebruikt als de knoppen Vorige/Volgende.
lastpage: het nummer van het laatst beschikbare tabblad. Het wordt aanbevolen om deze waarde op te geven bij gebruik van Vorige/Volgende tabbladbeheer.
Neem een dialoog met drie tabbladen. Het dialoogvenster heeft een ListBox-besturingselement met de naam "aPageList" dat zal worden gebruikt om het zichtbare tabblad te beheren. Daarnaast zijn er twee knoppen genaamd "btnPrevious" en "btnNext" die zullen worden gebruikt als de Vorige/Volgende knoppen in het dialoogvenster.
    oDlg.SetPageManager(PilotControls := "aPageList", _
                           WizardControls := "btnPrevious,btnNext", _
                           LastPage := 3)
    oDlg.Execute()
  
    dlg.SetPageManager(pilotcontrols="aPageList",
                       wizardcontrols="btnPrevious,btnNext",
                       lastpage=3)
    dlg.Execute()
  Beëindig de service Dialog voor de huidige instantie. Retourneert True als de beëindiging is gelukt.
svc.Terminate(): bool
Onderstaande basis- en Python-voorbeelden openen de niet-modale dialoogvensters DlgConsole en dlgTrace. Ze worden respectievelijk opgeslagen in ScriptForge en Access2Base gedeelde bibliotheken. Dialoogvenster sluitknoppen zijn uitgeschakeld en expliciete beëindiging wordt uitgevoerd aan het einde van een lopend proces.
In dit voorbeeld vervangt een knop in DlgConsole de geblokkeerde venstersluiting:
     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()