Pomoc LibreOffice 24.8
Usługa Dialog umożliwia zarządzanie oknami dialogowymi utworzonymi za pomocą Edytora okien dialogowych Basic lub oknami dialogowymi utworzonymi w locie. Każde wystąpienie bieżącej klasy reprezentuje pojedyncze okno dialogowe wyświetlane użytkownikowi.
Okno dialogowe może być wyświetlane w trybie modalnym lub niemodalnym.
W trybie modalnym pole jest wyświetlane, a wykonywanie procesu makro jest zawieszane do czasu naciśnięcia jednego z przycisków OK lub Anuluj. W międzyczasie działania użytkownika wykonane na skrzynce mogą wywołać określone działania.
W trybie niemodalnym okno dialogowe „pływa” na pulpicie użytkownika, a wykonywanie procesu makro przebiega normalnie. Niemodalne okno dialogowe jest zamykane po zakończeniu metodą Terminate() lub po zakończeniu sesji LibreOffice. W niemodalnych oknach dialogowych przycisk zamykania okna jest nieaktywny.
Okno dialogowe znika z pamięci po jego jawnym zakończeniu.
Usługa SFDialogs.Dialog jest ściśle powiązana z usługą SFDialogs.DialogControl.
Przed użyciem usługi Dialog należy załadować lub zaimportować bibliotekę ScriptForge:
Usługę Dialog wywołuje się za pomocą metody CreateScriptService. Aby określić okno dialogowe do aktywacji, wymagane są trzy dodatkowe argumenty pozycyjne:
Container: "GlobalScope" dla preinstalowanych bibliotek lub nazwa okna zdefiniowana przez usługę ScriptForge.UI. Wartość domyślna pustego ciągu "" oznacza bieżący dokument.
Library: nazwa biblioteki zawartej w kontenerze, w której uwzględniana jest wielkość liter. Wartość domyślna to „Standard”.
DialogName: ciąg znaków, w którym rozróżniana jest wielkość liter, określający okno dialogowe.
Poniższe przykłady w języku Basic i Python przedstawiają okno dialogowe dlgConsole należące do biblioteki współdzielonej 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")
      '... miejsce do inicjowania formantów...
      lButton = oDlg.Execute()
      ' Domyślnym trybem jest tryb modalny
      If lButton = oDlg.OKBUTTON Then
      '... Miejsce przetwarzania formantów i wykonywania niezbędnych działań
      End If
      oDlg.Terminate()
  Lub używając Pythona:
    dlg = CreateScriptService('SFDialogs.Dialog', 'GlobalScope', 'ScriptForge', 'dlgConsole')
    # ... miejsce do inicjowania formantów...
    rc = dlg.Execute()
    # Trybem domyślnym jest modalny
    if rc == dlg.OKBUTTON:
        # ... Miejsce przetwarzania formantów i wykonywania niezbędnych działań
    dlg.Terminate()
  Użyj ciągu „GlobalScope” jako argumentu container, gdy okno dialogowe jest przechowywane w lub w .
Usługa dialogowa oferuje metody umożliwiające dynamiczne tworzenie nowych formantów w istniejącym oknie dialogowym predefiniowanym za pomocą Edytora okien dialogowych. Okno dialogowe jest inicjowane za pomocą formantów w Edytorze okien dialogowych, a nowe formanty można dodać w czasie wykonywania przed lub po instrukcji okna dialogowego Execute().
Usługę Dialog można również wywołać za pomocą metody CreateScriptService podczas tworzenia okien dialogowych na bieżąco. Wymaga dwóch dodatkowych argumentów pozycyjnych po nazwie usługi ad hoc „NewDialog”:
DialogName: ciąg znaków, w którym rozróżniana jest wielkość liter, określający okno dialogowe.
Place: lokalizacja okna dialogowego to:
krotka Basic lub Pythona Array z 4 elementami: (X, Y, szerokość, wysokość)
obiekt com.sun.star.awt.Rectangle [X, Y, szerokość, wysokość].
Wszystkie elementy są wyrażone w jednostkach Map AppFont.
    Sub newDialog()
        Dim oDlg As Object
       oDlg = CreateScriptService("NewDialog", "myDialog1", Array(100,200, 40, 110))
       ' ...
    End Sub
  Lub używając Pythona:
    def newDialog():
       dlg = CreateScriptService('NewDialog', 'myDialog1', (100,200, 40, 110))
       # ... Kontrola procesu i robienie tego, co konieczne
  Wszystkie właściwości i metody mające zastosowanie do predefiniowanych okien dialogowych są dostępne dla takich nowych okien dialogowych. W szczególności seria metod CreateXXX() służących do dodawania nowych formantów okna dialogowego.
Instancję usługi Dialog można pobrać poprzez usługę SFDialogs.DialogEvent, pod warunkiem, że okno dialogowe zostało zainicjowane za pomocą usługi Dialog. W poniższym przykładzie oDlg zawiera instancję Dialog, która wyzwoliła zdarzenie dialogowe.
    Sub aDialogEventHander(ByRef poEvent As Object)
        Dim oDlg As Object
        Set oDlg = CreateScriptService("SFDialogs.DialogEvent", poEvent)
        ' ...
    End Sub
  Lub używając Pythona:
    def control_event_handler(event: uno):
        dlg = CreateScriptService("SFDialogs.DialogEvent", event)
        # ...
  Należy pamiętać, że w poprzednich przykładach przedrostek "SFDialogs." można pominąć, jeśli uzna się to za stosowne.
Podczas tworzenia procedury obsługi zdarzeń dla zdarzeń dialogowych dobrą praktyką jest obsługa błędów wewnątrz samego podprogramu. Załóżmy na przykład, że poniższa procedura obsługi zdarzeń jest wywoływana po naciśnięciu przycisku myszy w oknie dialogowym.
    Sub OnMouseButtonPressed(ByRef oEvent As Object)
    On Local Error GoTo Catch
        Dim oDialog As Object
        oDialog = CreateScriptService("DialogEvent", oEvent)
        ' Przetwarzanie zdarzeń
        Exit Sub
    Catch:
        MsgBox SF_Exception.Description
        SF_Exception.Clear
    End Sub
  Wywołaj SF_Exception.Clear, jeśli nie chcesz, aby błąd rozprzestrzeniał się po zakończeniu wykonywania okna dialogowego.
W Pythonie użyj natywnych bloków try/except do obsługi wyjątków, jak pokazano poniżej:
    def on_mouse_button_pressed(event=None):
        try:
            dlg = CreateScriptService("DialogEvent", event)
            # Przetwórz zdarzenie
        except Exception as e:
            # Obiekt „bas” jest instancją usługi Basic
            bas.MsgBox(str(e))
  | Nazwa | Tylko do odczytu | Typ | Opis | 
|---|---|---|---|
| OKBUTTON | Tak | Integer | Wartość = 1. Naciśnięto przycisk OK. | 
| CANCELBUTTON | Tak | Integer | Wartość = 0. Naciśnięto przycisk Anuluj. | 
| Caption | Nie | String | Określ tytuł okna dialogowego. | 
| Height | Nie | Long | Określ wysokość okna dialogowego. | 
| Modal | Tak | Boolean | Określa, czy okno dialogowe jest aktualnie wykonywane w trybie modalnym. | 
| Name | Tak | String | Nazwa okna dialogowego | 
| Page | Nie | Integer | Okno dialogowe może składać się z kilku stron, po których użytkownik może przechodzić krok po kroku. Właściwość Page obiektu Dialog określa, która strona okna dialogowego jest aktywna. | 
| Visible | Nie | Boolean | Określa, czy okno dialogowe jest widoczne na pulpicie. Domyślnie jest ono widoczne dopiero po wywołaniu metody Execute(). | 
| XDialogModel | Tak | UNO | Obiekt UNO reprezentujący model okna dialogowego. Zobacz XControlModel i UnoControlDialogModel w dokumentacji interfejsu programowania aplikacji (API), aby uzyskać szczegółowe informacje. | 
| XDialogView | Tak | UNO | Obiekt UNO reprezentujący widok okna dialogowego. Zobacz XControl i UnoControlDialog w dokumentacji interfejsu programowania aplikacji (API), aby uzyskać szczegółowe informacje. | 
| Width | Nie | Long | Określ szerokość okna dialogowego. | 
Właściwości On… zwracają ciąg URI z odwołaniem do skryptu wywołanego przez zdarzenie. Właściwości On… można ustawić programowo.
Przeczytaj specyfikację w strukturze skryptowej specyfikacji URI.
| Nazwa | Odczyt/Zapis | Opis IDE Basic | 
|---|---|---|
| OnFocusGained | Tak | Przy uzyskaniu fokusu | 
| OnFocusLost | Tak | Przy utracie fokusu | 
| OnKeyPressed | Tak | Klawisz naciśnięty | 
| OnKeyReleased | Tak | Klawisz zwolniony | 
| OnMouseDragged | Tak | Przesunięcie myszy podczas wciśnięcia klawisza | 
| OnMouseEntered | Tak | Mysz wewnątrz | 
| OnMouseExited | Tak | Mysz na zewnątrz | 
| OnMouseMoved | Tak | Przesunięcie myszy | 
| OnMousePressed | Tak | Naciśnięto przycisk myszy | 
| OnMouseReleased | Tak | Zwolniono przycisk myszy | 
Przypisywanie zdarzeń poprzez IDE Basic i przypisywanie zdarzeń poprzez makra wzajemnie się wykluczają.
Wymiarowanie okna dialogowego odbywa się za pomocą jednostek Map AppFont. Model okna dialogowego lub formantu również wykorzystuje jednostki AppFont. Podczas gdy ich widoki wykorzystują piksele.
Ustaw fokus na bieżącą instancję Dialog. Zwróć True, jeśli ustawienie fokusu się powiodło.
Ta metoda jest wywoływana z okna dialogowego lub zdarzenia formantu lub gdy okno dialogowe jest wyświetlane w trybie niemodalnym.
svc.Activate(): bool
      Dim oDlg As Object
      Set oDlg = CreateScriptService(,, "myDialog")
      oDlg.Execute()
      ' ...
      oDlg.Activate()
   W przykładach Pythona i LibreOffice Basic założono, że okno dialogowe jest przechowywane w bibliotece Standard bieżącego dokumentu.
     dlg = CreateScriptService(,,'myDialog')
     dlg.Execute()
     # ...
     dlg.Activate()
   Wyśrodkowuje bieżącą instancję okna dialogowego na środku okna nadrzędnego. Bez argumentów metoda centruje okno dialogowe na środku bieżącego okna.
Zwraca True, gdy się powiedzie.
svc.Center(opt Parent: obj): bool
Parent: opcjonalny obiekt, który może być: …
obiektem dialogowym ScriptForge
obiektem dokumentu ScriptForge (Calc, Base, ...)
     Sub TriggerEvent(oEvent As Object)
         Dim oDialog1 As Object, oDialog2 As Object, lExec As Long
         Set oDialog1 = CreateScriptService("DialogEvent", oEvent) ' Okno dialogowe, które spowodowało zdarzenie
         Set oDialog2 = CreateScriptService("Dialog", ...) ' Otwórz drugie okno dialogowe
         oDialog2.Center(oDialog1)
         lExec = oDialog2.Execute()
         Select Case lExec
             ...
     End Sub
  
     def triggerEvent(event: uno):
       dlg1 = CreateScriptService('DialogEvent.Dialog', event)  # Okno dialogowe, które spowodowało zdarzenie
       dlg2 = CreateScriptService('Dialog', ...)  # Otwórz drugie okno dialogowe
       dlg2.Center(dlg1)
       rc = dlg2.Execute()
       if rc is False:
         # ...
   Powiel istniejący formant dowolnego typu w rzeczywistym oknie dialogowym. Zduplikowany formant pozostaje niezmieniony i można go przenieść.
svc.CloneControl(SourceName: str, ControlName: str, Left: num, Top: num): svc
SourceName: nazwa formantu do zduplikowania.
ControlName: prawidłowa nazwa formantu jako ciąg uwzględniający wielkość liter. Nie może jeszcze istnieć.
Left, Top: współrzędne nowgo formantu wyrażone w jednostkach Map AppFont.
      Set myButton2 = oDlg.CloneControl("Button1", "Button2", 30, 30)
   
     dlg = dlg.CloneControl('Button1', 'Button2', 30, 30)
   Zwróć:
listę formantów zawartych w oknie dialogowym
instancję klasy DialogControl na podstawie jej nazwy
svc.Controls(): str[0..*]
svc.Controls(controlname: str): svc
ControlName: prawidłowa nazwa formantu jako ciąg uwzględniający wielkość liter. W przypadku braku lista nazw formantów jest zwracana jako tablica liczona od zera.
      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')
   Tworzy nowy formant typu Button w bieżącym oknie dialogowym.
svc.CreateButton(ControlName: str, Place: any, Toggle: bool = False, Push: str = ""): svc
ControlName: nazwa nowego formantu. Nie może jeszcze istnieć.
Place: albo …
krotka Basic lub Pythona Array z 4 elementami: (X, Y, szerokość, wysokość)
obiekt com.sun.star.awt.Rectangle [X, Y, szerokość, wysokość].
Wszystkie elementy są wyrażone w jednostkach Map AppFont.
Toggle: gdy True, tworzony jest przycisk przełączania. Domyślnie = False
Push: "OK", "CANCEL" or "" (domyślnie)
Instancja usługi SFDialogs.DialogControl lub Nothing.
     Set myButton = oDlg.CreateButton("Button1", Array(20, 20, 60, 15))
   
     myButton = dlg.CreateButton('Button1', (20, 20, 60, 15))
   Tworzy nowy formant typu CheckBox w bieżącym oknie dialogowym.
svc.CreateCheckBox(ControlName: str, Place: any, Multiline: bool = False): svc
MultiLine: gdy True (domyślnie = False), podpis może być wyświetlany w więcej niż jednym wierszu.
     Set myCheckBox = oDlg.CreateCheckBox("CheckBox1", Array(20, 20, 60, 15), MultiLine := True)
   
     myCheckBox = dlg.CreateCheckBox('CheckBox1', (20, 20, 60, 15), MultiLine = True)
   Tworzy nowy formant typu ComboBox w bieżącym oknie dialogowym.
svc.CreateComboBox(ControlName: str, Place: any, Border: str = "3D", DropDown: bool = True, LineCount: num = 5): svc
Border: "3D" (domyślnie), "FLAT" albo "NONE"
DropDown: gdy True (domyślnie) wyświetlany jest przycisk rozwijany
LineCount: określa maksymalną liczbę wierszy wyświetlaną na liście rozwijanej (domyślnie = 5)
     Set myComboBox = oDlg.CreateComboBox("ComboBox1", Array(20, 20, 60, 15), Dropdown := True)
   
     myComboBox = dlg.CreateComboBox('ComboBox1', (20, 20, 60, 15), Dropdown = True)
   Tworzy nowy formant typu CurrencyField w bieżącym oknie dialogowym.
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" (domyślnie), "FLAT" albo "NONE"
SpinButton: gdy True (domyślnie = False), obecny jest przycisk obracania
MinValue: najmniejsza wartość, jaką można wprowadzić w formancie. Wartość domyślna = -1000000
MaxValue: największa wartość, jaką można wprowadzić w formancie. Wartość domyślna = +1000000
Increment: krok po naciśnięciu przycisku obracania. Wartość domyślna = 1
Accuracy: określa dokładność dziesiętną. Domyślnie = 2 cyfry dziesiętne
     Set myCurrencyField = oDlg.CreateCurrencyField("CurrencyField1", Array(20, 20, 60, 15), SpinButton := True)
   
     myCurrencyField = dlg.CreateCurrencyField('CurrencyField1', (20, 20, 60, 15), SpinButton = True)
   Tworzy nowy formant typu DateField w bieżącym oknie dialogowym.
svc.CreateDateField(ControlName: str, Place: any, Border: str = "3D", DropDown: bool = False, opt MinDate: datetime, opt MaxDate: datetime): svc
Border: "3D" (domyślnie), "FLAT" albo "NONE"
DropDown: gdy True (domyślnie = False), wyświetlany jest przycisk rozwijany
MinDate: najmniejsza data, jaką można wprowadzić w formancie. Wartość domyślna = 01.01.1900
MaxDate: największa data, jaką można wprowadzić w formancie. Wartość domyślna = 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)
   Tworzy nowy formant typu FileControl w bieżącym oknie dialogowym.
svc.CreateFileControl(ControlName: str, Place: any, Border: str = "3D"): svc
Border: "3D" (domyślnie), "FLAT" albo "NONE"
     Set myFileControl = oDlg.CreateFileControl("FileControl1", Array(20, 20, 60, 15))
   
     myFileControl = dlg.CreateFileControl('FileControl1', (20, 20, 60, 15))
   Tworzy nowy formant typu FixedLine w bieżącym oknie dialogowym.
svc.CreateFixedLine(ControlName: str, Place: any, Orientation: str): svc
Orientation: w przypadku orientacji poziomej użyj „H” lub „Horizontal”; w przypadku orientacji pionowej użyj „V” lub „Vertical”.
     Set myFixedLine = oDlg.CreateFixedLine("FixedLine1", Array(20, 20, 60, 15), Orientation := "vertical")
   
     myFixedLine = dlg.CreateFixedLine('FixedLine1', (20, 20, 60, 15), Orientation = 'vertical')
   Tworzy nowy formant typu FixedText w bieżącym oknie dialogowym.
svc.CreateFixedText(ControlName: str, Place: any, Border: str = "3D", MultiLine: bool = False, Align: str = "LEFT", VerticalAlign: str = "TOP"): svc
Border: "NONE" (domyślnie), "FLAT" albo "3D"
Multiline: gdy True (domyślnie = False), podpis może być wyświetlany w więcej niż jednym wierszu
Align: wyrównanie poziome; "LEFT" (domyślnie), "CENTER" albo "RIGHT"
VerticalAlign: wyrównanie pionowe; "TOP" (domyślnie), "MIDDLE" albo "BOTTOM"
     Set myFixedText = oDlg.CreateFixedText("FixedText1", Array(20, 20, 60, 15), MultiLine := True)
   
     myFixedText = dlg.CreateFixedText('FixedText1', (20, 20, 60, 15), MultiLine = True)
   Tworzy nowy formant typu FormattedField w bieżącym oknie dialogowym.
svc.CreateFormattedField(ControlName: str, Place: any, Border: str = "3D", SpinButton: bool = False, MinValue: num = -1000000, MaxValue: num = +1000000): svc
Border: "3D" (domyślnie), "FLAT" albo "NONE"
SpinButton: gdy True (domyślnie = False), obecny jest przycisk obracania
MinValue: najmniejsza wartość, jaką można wprowadzić w formancie. Wartość domyślna = -1000000
MaxValue: największa wartość, jaką można wprowadzić w formancie. Wartość domyślna = +1000000
     Set myFormattedField = oDlg.CreateFormattedField("FormattedField1", Array(20, 20, 60, 15), SpinButton := True)
   
     myFormattedField = dlg.CreateFormattedField('FormattedField1', (20, 20, 60, 15), SpinButton = True)
   Tworzy nowy formant typu ComboBox w bieżącym oknie dialogowym.
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))
   Tworzy nowy formant typu Hyperlink w bieżącym oknie dialogowym.
svc.CreateHyperlink(ControlName: str, Place: any, Border: str = "NONE", MultiLine: bool = False, Align: str = "LEFT", VerticalAlign: str = "TOP"): svc
Border: "NONE" (domyślnie), "FLAT" albo "3D"
Multiline: gdy True (domyślnie = False), podpis może być wyświetlany w więcej niż jednym wierszu
Align: wyrównanie poziome; "LEFT" (domyślnie), "CENTER" albo "RIGHT"
VerticalAlign: wyrównanie pionowe; "TOP" (domyślnie), "MIDDLE" albo "BOTTOM"
     Set myHyperlink = oDlg.CreateHyperlink("Hyperlink1", Array(20, 20, 60, 15), MultiLine := True)
   
     myHyperlink = dlg.CreateHyperlink('Hyperlink1', (20, 20, 60, 15), MultiLine = True)
   Tworzy nowy formant typu ImageControl w bieżącym oknie dialogowym.
svc.CreateImageControl(ControlName: str, Place: any, Border: str = "3D", Scale: str = "FITTOSIZE"): svc
Border: "3D" (domyślnie), "FLAT" albo "NONE"
Scale: jedna z kolejnych wartości: "FITTOSIZE" (domyślnie), "KEEPRATIO" albo "NO"
     Set myImageControl = oDlg.CreateImageControl("ImageControl1", Array(20, 20, 60, 15))
   
       myImageControl = dlg.CreateImageControl('ImageControl1", (20, 20, 60, 15))
   Tworzy nowy formant typu ListBox w bieżącym oknie dialogowym.
svc.CreateListBox(ControlName: str, Place: any, Border: str = "3D", DropDown: bool = True, LineCount: num = 5, MultiSelect: bool = False): svc
Border: "3D" (domyślnie), "FLAT" albo "NONE"
DropDown: gdy True (domyślnie) wyświetlany jest przycisk rozwijany
LineCount: określa maksymalną liczbę wierszy wyświetlaną na liście rozwijanej (domyślnie = 5)
MultiSelect: jeśli True, można wybrać więcej niż 1 wpis. Domyślnie = 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)
   Tworzy nowy formant typu NumericField w bieżącym oknie dialogowym.
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" (domyślnie), "FLAT" albo "NONE"
SpinButton: gdy True (domyślnie = False), obecny jest przycisk obracania
MinValue: najmniejsza wartość, jaką można wprowadzić w formancie. Wartość domyślna = -1000000
MaxValue: największa wartość, jaką można wprowadzić w formancie. Wartość domyślna = +1000000
Increment: krok po naciśnięciu przycisku obracania. Wartość domyślna = 1
Accuracy: określa dokładność dziesiętną. Domyślnie = 2 cyfry dziesiętne
     Set myNumericField = oDlg.CreateNumericField("NumericField1", Array(20, 20, 60, 15), SpinButton := True)
   
     myNumericField = dlg.CreateNumericField('NumericField1', (20, 20, 60, 15), SpinButton = True)
   Tworzy nowy formant typu PatternField w bieżącym oknie dialogowym.
svc.CreatePatternField(ControlName: str, Place: any, Border: str = "3D", EditMask: str, opt LiteralMax: str): svc
Border: "3D" (domyślnie), "FLAT" albo "NONE"
EditMask: kod znaku określający, co może wprowadzić użytkownik. 
Zobacz Pattern_Field na stronach wiki, aby uzyskać więcej informacji.
LiteralMask: zawiera wartości początkowe, które są wyświetlane w polu wzoru
     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')
   Tworzy nowy formant typu ProgressBar w bieżącym oknie dialogowym.
svc.CreateProgressBar(ControlName: str, opt Place: any, Border: str = "3D", MinValue: num = 0, MaxValue: num = 100): svc
Border: "3D" (domyślnie), "FLAT" albo "NONE"
MinValue: najmniejsza wartość, jaką można wprowadzić w formancie. Wartość domyślna = 0
MaxValue: największa wartość, jaką można wprowadzić w formancie. Wartość domyślna = 100
     Set myProgressBar = oDlg.CreateProgressBar("ProgressBar1", Array(20, 20, 60, 15), MaxValue := 1000)
   
     myProgressBar = dlg.CreateProgressBar('ProgressBar1', (20, 20, 60, 15), MaxValue = 1000)
   Tworzy nowy formant typu RadioButton w bieżącym oknie dialogowym.
svc.CreateRadioButton(ControlName: str, Place: any, MultiLine: bool = False): svc
Multiline: gdy True (domyślnie = False), podpis może być wyświetlany w więcej niż jednym wierszu
     Set myRadioButton = oDlg.CreateRadioButton("RadioButton1", Array(20, 20, 60, 15), MultiLine := True)
   
     myRadioButton = dlg.CreateRadioButton('RadioButton1', (20, 20, 60, 15), MultiLine = True)
   Tworzy nowy formant typu ScrollBar w bieżącym oknie dialogowym.
svc.CreateScrollBar(ControlName: str, Place, Orientation: str, Border: str = "3D", MinValue: num = 0, MaxValue: num = 100): svc
Orientation: w przypadku orientacji poziomej użyj „H” lub „Horizontal”; w przypadku orientacji pionowej użyj „V” lub „Vertical”.
Border: "3D" (domyślnie), "FLAT" albo "NONE"
MinValue: najmniejsza wartość, jaką można wprowadzić w formancie. Wartość domyślna = 0
MaxValue: największa wartość, jaką można wprowadzić w formancie. Wartość domyślna = 100
     Set myScrollBar = oDlg.CreateScrollBar("ScrollBar1", Array(20, 20, 60, 15), MaxValue := 1000)
   
     myScrollBar = dialog.CreateScrollBar('ScrollBar1', (20, 20, 60, 15), MaxValue = 1000)
   Tworzy nowy formant typu TableControl w bieżącym oknie dialogowym.
svc.CreateTableControl(ControlName: str, Place: any, Border: str = "3D", RowHeaders: bool = True, ColumnHeaders: bool = True, ScrollBars: str = "N", GridLines: bool = False): svc
Border: "3D" (domyślnie), "FLAT" albo "NONE"
RowHeaders: gdy True (domyślnie), wyświetlane są główki wierszy
ColumnHeaders: gdy True (domyślnie), wyświetlane są główki kolumn
ScrollBars: możliwe wartości to: „H” lub „Horizontal” (poziome paski przewijania), „V” lub „Vertical” (pionowe paski przewijania); „B” lub „Both” (oba paski przewijania); „N” lub „None” (domyślnie) w przypadku braku pasków przewijania. Paski przewijania pojawiają się dynamicznie, gdy są potrzebne.
GridLines: gdy True (domyślnie = False, pomiędzy komórkami siatki są malowane poziome i pionowe linie
     Set myTableControl = oDlg.CreateTableControl("TableControl1", Array(20, 20, 60, 15), ScrollBars := "B")
   
     myTableControl = dlg.CreateTableControl('TableControl1', (20, 20, 60, 15), ScrollBars = 'B')
   Tworzy nowy formant typu TextField w bieżącym oknie dialogowym.
svc.CreateTextField(ControlName: str, Place: any, Border: str = "3D", MultiLine: bool = False, MaximumLength: num = 0, PasswordCharacter: str = ""): svc
Border: "3D" (domyślnie), "FLAT" albo "NONE"
Multiline: gdy True (domyślnie = False), podpis może być wyświetlany w więcej niż jednym wierszu
MaximumLength: maksymalna liczba znaków (domyślnie = 0, co oznacza nieograniczoną)
PasswordCharacter: pojedynczy znak określający echo pola tekstowego hasła (domyślnie = "")
Set myTextField = oDlg.CreateTextField("TextField1", Array(20, 20, 120, 50), MultiLine := True)
   
     myTextField = dlg.CreateTextField('TextField1', (20, 20, 120, 50), MultiLine = True)
   Tworzy nowy formant typu TimeField w bieżącym oknie dialogowym.
svc.CreateTimeField(ControlName: str, Place: any, Border: str = "3D", MinTime: num = 0, MaxTime: num = 24): svc
Border: "3D" (domyślnie), "FLAT" albo "NONE"
MinTime: najmniejszy czas, jaki można wprowadzić w formancie. Wartość domyślna = 0
MaxTime: największy czas, jaki można wprowadzić w formancie. Domyślnie = 24h
     Set myTimeField = oDlg.CreateTimeField("TimeField1", Array(20, 20, 60, 15))
   
     myTimeField = dlog.CreateTimeField('TimeField1', (20, 20, 60, 15))
   Tworzy nowy formant typu TreeControl w bieżącym oknie dialogowym.
svc.CreateTreeControl(ControlName: str, Place: any, Border = "3D"): svc
Border: "3D" (domyślnie), "FLAT" albo "NONE"
     Set myTreeControl = oDlg.CreateTreeControl("TreeControl1", Array(20, 20, 60, 15))
   
     myTreeControl = dlg.CreateTreeControl('TreeControl1', (20, 20, 60, 15))
   Kończy wyświetlanie modalnego okna dialogowego i zwraca argument jako wartość zwracaną dla bieżącej uruchomionej akcji Execute().
EndExecute() jest zwykle zawarta w przetwarzaniu makra wyzwalanego przez okno dialogowe lub zdarzenie formantu.
svc.EndExecute(returnvalue: int)
returnvalue: wartość przekazana do działającej metody 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)
   Powyższe wzmianki com.sun.star.lang.EventObject są opcjonalne. Takie adnotacje pomagają zidentyfikować interfejs programowania aplikacji (API) LibreOffice.
Wyświetl okno dialogowe i, jeśli jest modalne, poczekaj na jego zamknięcie przez użytkownika. Zwracana wartość to:
0 : naciśnięto przycisk Anuluj
1 : naciśnięto przycisk OK
W przeciwnym razie okno dialogowe zostało zatrzymane za pomocą instrukcji EndExecute() wydanej przez okno dialogowe lub zdarzenie formantu
Dla niemodalnych okien dialogowych metoda zawsze zwraca 0, a wykonywanie makra jest kontynuowane.
svc.Execute(modal: bool = True): int
modal: False w przypadku okna dialogowego niemodalnego. Wartość domyślna = True.
W tym przykładzie Basic okno dialogowe myDialog jest przechowywane w bibliotece Standard bieżącego dokumentu.
      Dim oDlg As Object, lReturn As Long
      Set oDlg = CreateScriptService("SFDialogs.Dialog", , , "myDialog")
      lReturn = oDlg.Execute(Modal := False)
      Select Case lReturn
          ' ...
      End Select
   Ten kod Pythona wyświetla modalne okno dialogowe DlgConvert ze współdzielonej biblioteki Basic Euro.
     dlg = CreateScriptService("SFDialogs.Dialog", 'GlobalScope', 'Euro', "DlgConvert")
     rc = dlg.Execute()
     if rc == dlg.CANCELBUTTON:
         # ...
   Zastępuje wszystkie stałe ciągi tekstowe w oknie dialogowym ich przetłumaczonymi wersjami opartymi na instancji usługi L10N. Ta metoda tłumaczy następujące ciągi:
Metoda zwraca wartość True, jeśli operacja się powiedzie.
Aby utworzyć listę tłumaczonych ciągów znaków w oknie dialogowym, użyj metody AddTextsFromDialog z usługi L10N.
svc.GetTextsFromL10N(l10n: svc): bool
l10n: instancja usługi L10N, z której zostaną pobrane przetłumaczone ciągi znaków.
Poniższy przykład ładuje przetłumaczone ciągi i stosuje je do okna dialogowego „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()
   Przeczytaj stronę pomocy usługi L10N, aby dowiedzieć się więcej o obsłudze plików PO i POT.
Ustaw indeks tabulacji serii formantów. Kolejność formantów podana jest jako tablica nazw formantów od pierwszego do ostatniego.
Formanty z indeksem >= 1 nie są dostępne za pomocą klawisza TAB, jeżeli:
- zostały pominięte na podanej liście
 - ich typ to FixLine, GroupBox lub ProgressBar
- są wyłączone
svc.TabsList(TabsList: num, Start: num = 1, Increment: num = 1): bool
TabsList: tablica prawidłowych nazw formantów w kolejności tabulacji
Start: indeks tabulacji, który ma zostać przypisany do pierwszego formantu na liście. Wartość domyślna = 1
Increment: różnica między 2 kolejnymi indeksami tabulacji. Wartość domyślna = 1
Zwraca True, gdy się powiedzie.
     oDlg.OrderTabs(Array("myListBox", "myTextField", "myNumericField"), Start := 10)
   
     dlg.OrderTabs(('myListBox', 'myTextField', 'myNumericField'), Start = 10)
   Przesuwa lewy górny róg okna dialogowego do nowych współrzędnych i/lub modyfikuje jego wymiary. Wszystkie odległości wyrażone są w jednostkach AppFont. Bez argumentów metoda resetuje wymiary początkowe. Zwróć True, jeśli zmiana rozmiaru się powiodła.
svc.Resize(opt Left: num, opt Top: num, opt Width: num, opt Height: num): bool
Left: pozioma odległość od lewego górnego rogu
Top: odległość w pionie od lewego górnego rogu
Width: szerokość prostokąta zawierającego okno dialogowe
Height: wysokość prostokąta zawierającego okno dialogowe
Brakujące argumenty pozostają niezmienione
     oDlg.Resize(1000, 2000, Height := 6000) ' Szerokość nie ulega zmianie
   
     dlg.Resize(1000, 2000, Height = 6000)  # Szerokość nie ulega zmianie
   Określa, które formanty okna dialogowego są używane do przełączania stron. Ułatwia to zarządzanie właściwością Page okna dialogowego i powiązanymi formantami.
Okna dialogowe mogą mieć wiele stron, a aktualnie widoczna strona jest definiowana przez właściwość okna dialogowego Page. Jeśli właściwość Page pozostanie niezmieniona, domyślna widoczna strona będzie równa 0 (zero), co oznacza, że nie jest zdefiniowana żadna konkretna strona i wyświetlane są wszystkie widoczne formanty niezależnie od wartości ustawionej w ich własnej właściwości Page.
Jeśli właściwość Page okna dialogowego zostanie zmieniona, na przykład na 1, 2, 3 itd., wyświetlane będą tylko te formanty, których właściwość Page odpowiada bieżącej stronie okna dialogowego.
Za pomocą metody SetPageManager można określić cztery typy elementów zarządzania stroną:
Pole listy lub pole kombi: w tym przypadku każdy wpis w polu listy lub polu kombi odpowiada stronie. Pierwsza pozycja odnosi się do strony 1, druga pozycja odnosi się do strony 2 i tak dalej.
Grupa przycisków opcji: definiuje grupę przycisków opcji, które kontrolują, która strona jest widoczna.
Sekwencja przycisków: definiuje zestaw przycisków, z których każdy odpowiada stronie okna dialogowego. Można tego użyć do emulacji interfejsu z kartami, umieszczając przyciski obok siebie w oknie dialogowym.
Przyciski Poprzednia/Następna: określa, które przyciski w oknie dialogowym będą używane do przejścia do strony poprzedniej lub następnej w oknie dialogowym.
Możliwe jest wykorzystanie więcej niż jednego mechanizmu zarządzania stroną jednocześnie.
Metodę tę należy wywołać tylko raz przed wywołaniem metody Execute. Kolejne wywołania są ignorowane.
Jeśli się powiedzie, ta metoda zwraca wartość True.
svc.SetPageManager(pilotcontrols: str = "", tabcontrols: str = "", wizardcontrols: str = "", opt lastpage: int): bool
pilotcontrols: rozdzielona przecinkami lista nazw formantów ListBox, ComboBox lub RadioButton używanych jako menedżery stron. W przypadku formantów RadioButton określ nazwę pierwszego formantu w grupie, która ma zostać użyta.
tabcontrols: rozdzielona przecinkami lista nazw przycisków, które będą używane jako menedżery stron. Kolejność, w jakiej są one określone w tym argumencie, odpowiada numerowi strony, z którą są powiązane.
wizardcontrols: lista oddzielona przecinkami zawierająca nazwy dwóch przycisków, które będą używane jako przyciski Poprzednia/Następna.
lastpage: numer ostatniej dostępnej strony. Zaleca się określenie tej wartości w przypadku korzystania z menedżera stron Poprzednia/Następna.
Rozważmy okno dialogowe składające się z trzech stron. Okno dialogowe zawiera formant ListBox o nazwie „aPageList”, który będzie używany do kontrolowania widocznej strony. Dodatkowo istnieją dwa przyciski o nazwach „btnPrevious” i „btnNext”, które będą używane jako przyciski Poprzednia/Następna w oknie dialogowym.
    oDlg.SetPageManager(PilotControls := "aPageList", _
                           WizardControls := "btnPrevious,btnNext", _
                           LastPage := 3)
    oDlg.Execute()
  
    dlg.SetPageManager(pilotcontrols="aPageList",
                       wizardcontrols="btnPrevious,btnNext",
                       lastpage=3)
    dlg.Execute()
  Zakończ usługę Dialog dla bieżącej instancji. Zwróć True, jeśli zakończenie się powiodło.
svc.Terminate(): bool
Poniżej przykładów języków Basic i Python otwierają się niemodalne okna dialogowe DlgConsole i dlgTrace. Są one odpowiednio przechowywane w bibliotekach współdzielonych ScriptForge i Access2Base. Przyciski zamykania okna dialogowego są wyłączone, a na końcu uruchomionego procesu wykonywane jest jawne zakończenie.
W tym przykładzie przycisk w DlgConsole zastępuje wstrzymane zamykanie okna:
     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()