Usługa SFDialogs.Dialog

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.

tip

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 Collabora Office. W niemodalnych oknach dialogowych przycisk zamykania okna jest nieaktywny.

Okno dialogowe znika z pamięci po jego jawnym zakończeniu.

tip

Usługa SFDialogs.Dialog jest ściśle powiązana z usługą SFDialogs.DialogControl.


Wywoływanie usług i korzystanie z nich

Przed użyciem usługi Dialog należy załadować lub zaimportować bibliotekę ScriptForge:

note

• Podstawowe makra wymagają załadowania biblioteki ScriptForge przy użyciu następującej instrukcji:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Skrypty Pythona wymagają importu z modułu scriptforge:
from scriptforge import CreateScriptService


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()
note

Użyj ciągu „GlobalScope” jako argumentu container, gdy okno dialogowe jest przechowywane w Moje makra i okna dialogowe lub w Makra i okna dialogowe aplikacji.


tip

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:

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.

Pobieranie instancji Dialog, która wyzwoliła zdarzenie dialogowe

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.

Obsługa wyjątków w procedurach obsługi zdarzeń

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
tip

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))

Właściwości

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
object

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
object

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 zdarzenia

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


warning

Przypisywanie zdarzeń poprzez IDE Basic i przypisywanie zdarzeń poprzez makra wzajemnie się wykluczają.


Lista metod w usłudze Dialog

Activate
Center
Controls
CloneControl
CreateButton
CreateCheckBox
CreateComboBox
CreateCurrencyField
CreateDateField
CreateFileControl
CreateFixedLine

CreateFixedText
CreateFormattedField
CreateGroupBox
CreateHyperlink
CreateImageControl
CreateListBox
CreateNumericField
CreatePatternField
CreateProgressBar
CreateRadioButton
CreateScrollBar

CreateTableControl
CreateTextField
CreateTimeField
CreateTreeControl
EndExecute
Execute
GetTextsFromL10N
Resize
OrderTabs
SetPageManager
Terminate


note

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.


Activate

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.

Składnia:

svc.Activate(): bool

Przykład:

Dim oDlg As Object
Set oDlg = CreateScriptService(,, "myDialog")
oDlg.Execute()
' ...
oDlg.Activate()

W przykładach Pythona i Collabora Office Basic założono, że okno dialogowe jest przechowywane w bibliotece Standard bieżącego dokumentu.

dlg = CreateScriptService(,,'myDialog')
dlg.Execute()
# ...
dlg.Activate()

Center

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.

Składnia:

svc.Center(opt Parent: obj): bool

Parametry:

Parent: opcjonalny obiekt, który może być: …

Przykład:

W języku Basic
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
W języku Python
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:
    # ...

CloneControl

Powiel istniejący formant dowolnego typu w rzeczywistym oknie dialogowym. Zduplikowany formant pozostaje niezmieniony i można go przenieść.

Składnia:

svc.CloneControl(SourceName: str, ControlName: str, Left: num, Top: num): svc

Parametry:

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.

Zwracana wartość:

Instancja usługi SFDialogs.DialogControl lub Nothing.

Przykład:

W języku Basic
Set myButton2 = oDlg.CloneControl("Button1", "Button2", 30, 30)
W języku Python
dlg = dlg.CloneControl('Button1', 'Button2', 30, 30)

Controls

Zwróć:

Składnia:

svc.Controls(): str[0..*]

svc.Controls(controlname: str): svc

Parametry:

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.

Przykład:

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')

CreateButton

Utwórz nowy formant typu Button w bieżącym oknie dialogowym.

Składnia:

svc.CreateButton(ControlName: str, Place: any, Toggle: bool = False, Push: str = ""): svc

Parametry:

ControlName: nazwa nowego formantu. Nie może jeszcze istnieć.

Place: albo …

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)

Zwracana wartość:

Instancja usługi SFDialogs.DialogControl lub Nothing.

Przykład:

W języku Basic
Set myButton = oDlg.CreateButton("Button1", Array(20, 20, 60, 15))
W języku Python
myButton = dlg.CreateButton('Button1', (20, 20, 60, 15))

CreateCheckBox

Utwórz nowy formant typu CheckBox w bieżącym oknie dialogowym.

Składnia:

svc.CreateCheckBox(ControlName: str, Place: any, Multiline: bool = False): svc

Parametry:

ControlName: nazwa nowego formantu. Nie może jeszcze istnieć.

Place: albo …

Wszystkie elementy są wyrażone w jednostkach Map AppFont.

MultiLine: gdy True (domyślnie = False), podpis może być wyświetlany w więcej niż jednym wierszu.

Zwracana wartość:

Instancja usługi SFDialogs.DialogControl lub Nothing.

Przykład:

W języku Basic
Set myCheckBox = oDlg.CreateCheckBox("CheckBox1", Array(20, 20, 60, 15), MultiLine := True)
W języku Python
myCheckBox = dlg.CreateCheckBox('CheckBox1', (20, 20, 60, 15), MultiLine = True)

CreateComboBox

Utwórz nowy formant typu ComboBox w bieżącym oknie dialogowym.

Składnia:

svc.CreateComboBox(ControlName: str, Place: any, Border: str = "3D", DropDown: bool = True, LineCount: num = 5): svc

Parametry:

ControlName: nazwa nowego formantu. Nie może jeszcze istnieć.

Place: albo …

Wszystkie elementy są wyrażone w jednostkach Map AppFont.

Border: "3D" (domyślnie) albo "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)

Zwracana wartość:

Instancja usługi SFDialogs.DialogControl lub Nothing.

Przykład:

W języku Basic
Set myComboBox = oDlg.CreateComboBox("ComboBox1", Array(20, 20, 60, 15), Dropdown := True)
W języku Python
myComboBox = dlg.CreateComboBox('ComboBox1', (20, 20, 60, 15), Dropdown = True)

CreateCurrencyField

Utwórz nowy formant typu CurrencyField w bieżącym oknie dialogowym.

Składnia:

svc.CreateCurrencyField(ControlName: str, Place: any, Border ="3D", SpinButton: bool = False, MinValue: num = -1000000, MaxValue: num = +1000000, Increment: num = 1, Accuracy: num = 2): svc

Parametry:

ControlName: nazwa nowego formantu. Nie może jeszcze istnieć.

Place: albo …

Wszystkie elementy są wyrażone w jednostkach Map AppFont.

Border: "3D" (domyślnie) albo "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

Zwracana wartość:

Instancja usługi SFDialogs.DialogControl lub Nothing.

Przykład:

W języku Basic
Set myCurrencyField = oDlg.CreateCurrencyField("CurrencyField1", Array(20, 20, 60, 15), SpinButton := True)
W języku Python
myCurrencyField = dlg.CreateCurrencyField('CurrencyField1', (20, 20, 60, 15), SpinButton = True)

CreateDateField

Utwórz nowy formant typu DateField w bieżącym oknie dialogowym.

Składnia:

svc.CreateDateField(ControlName: str, Place: any, Border: str = "3D", DropDown: bool = False, opt MinDate: datetime, opt MaxDate: datetime): svc

Parametry:

ControlName: nazwa nowego formantu. Nie może jeszcze istnieć.

Place: albo …

Wszystkie elementy są wyrażone w jednostkach Map AppFont.

Border: "3D" (domyślnie) albo "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 = 1900-01-01

MaxDate: największa data, jaką można wprowadzić w formancie. Wartość domyślna = 2200-12-31

Zwracana wartość:

Instancja usługi SFDialogs.DialogControl lub Nothing.

Przykład:

W języku Basic
Set myDateField = oDlg.CreateDateField("DateField1", Array(20, 20, 60, 15), Dropdown := True)
W języku Python
myDateField = dlg.CreateDateField('DateField1', (20, 20, 60, 15), Dropdown = True)

CreateFileControl

Utwórz nowy formant typu FileControl w bieżącym oknie dialogowym.

Składnia:

svc.CreateFileControl(ControlName: str, Place: any, Border: str = "3D"): svc

Parametry:

ControlName: nazwa nowego formantu. Nie może jeszcze istnieć.

Place: albo …

Wszystkie elementy są wyrażone w jednostkach Map AppFont.

Border: "3D" (domyślnie) albo "FLAT", albo "NONE"

Zwracana wartość:

Instancja usługi SFDialogs.DialogControl lub Nothing.

Przykład:

W języku Basic
Set myFileControl = oDlg.CreateFileControl("FileControl1", Array(20, 20, 60, 15))
W języku Python
myFileControl = dlg.CreateFileControl('FileControl1', (20, 20, 60, 15))

CreateFixedLine

Utwórz nowy formant typu FixedLine w bieżącym oknie dialogowym.

Składnia:

svc.CreateFixedLine(ControlName: str, Place: any, Orientation: str): svc

Parametry:

ControlName: nazwa nowego formantu. Nie może jeszcze istnieć.

Place: albo …

Wszystkie elementy są wyrażone w jednostkach Map AppFont.

Orientation: "H[orizontal]" lub "V[ertical]".

Zwracana wartość:

Instancja usługi SFDialogs.DialogControl lub Nothing.

Przykład:

W języku Basic
Set myFixedLine = oDlg.CreateFixedLine("FixedLine1", Array(20, 20, 60, 15), Orientation := "vertical")
W języku Python
myFixedLine = dlg.CreateFixedLine('FixedLine1', (20, 20, 60, 15), Orientation = 'vertical')

CreateFixedText

Utwórz nowy formant typu FixedText w bieżącym oknie dialogowym.

Składnia:

svc.CreateFixedText(ControlName: str, Place: any, Border: str = "3D", MultiLine: bool = False, Align: str = "LEFT", VerticalAlign: str = "TOP"): svc

Parametry:

ControlName: nazwa nowego formantu. Nie może jeszcze istnieć.

Place: albo …

Wszystkie elementy są wyrażone w jednostkach Map AppFont.

Border: "NONE" (domyślnie) albo "FLAT", albo "3D"

Multiline: gdy True (domyślnie = False), podpis może być wyświetlany w więcej niż jednym wierszu

Align: wyrównanie w poziomie, "LEFT" (domyślnie) albo "CENTER", albo "RIGHT"

VerticalAlign: wyrównanie pionowe, "TOP" (deomyślnie) albo "MIDDLE", albo "BOTTOM"

Zwracana wartość:

Instancja usługi SFDialogs.DialogControl lub Nothing.

Przykład:

W języku Basic
Set myFixedText = oDlg.CreateFixedText("FixedText1", Array(20, 20, 60, 15), MultiLine := True)
W języku Python
myFixedText = dlg.CreateFixedText('FixedText1', (20, 20, 60, 15), MultiLine = True)

CreateFormattedField

Utwórz nowy formant typu FormattedField w bieżącym oknie dialogowym.

Składnia:

svc.CreateFormattedField(ControlName: str, Place: any, Border: str = "3D", SpinButton: bool = False, MinValue: num = -1000000, MaxValue: num = +1000000): svc

Parametry:

ControlName: nazwa nowego formantu. Nie może jeszcze istnieć.

Place: albo …

Wszystkie elementy są wyrażone w jednostkach Map AppFont.

Border: "3D" (domyślnie) albo "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

Zwracana wartość:

Instancja usługi SFDialogs.DialogControl lub Nothing.

Przykład:

W języku Basic
Set myFormattedField = oDlg.CreateFormattedField("FormattedField1", Array(20, 20, 60, 15), SpinButton := True)
W języku Python
myFormattedField = dlg.CreateFormattedField('FormattedField1', (20, 20, 60, 15), SpinButton = True)

CreateGroupBox

Utwórz nowy formant typu GroupBox w bieżącym oknie dialogowym.

Składnia:

svc.CreateGroupBox(ControlName: str, Place: any): svc

Parametry:

ControlName: nazwa nowego formantu. Nie może jeszcze istnieć.

Place: albo …

Wszystkie elementy są wyrażone w jednostkach Map AppFont.

Zwracana wartość:

Instancja usługi SFDialogs.DialogControl lub Nothing.

Przykład:

W języku Basic
Set myGroupBox = oDlg.CreateGroupBox("GroupBox1", Array(20, 20, 60, 15))
W języku Python
myGroupBox = dlg.CreateGroupBox('GroupBox1', (20, 20, 60, 15))

CreateHyperlink

Utwórz nowy formant typu Hiperlink w bieżącym oknie dialogowym.

Składnia:

Parametry:

ControlName: nazwa nowego formantu. Nie może jeszcze istnieć.

Place: albo …

Wszystkie elementy są wyrażone w jednostkach Map AppFont.

Border: "NONE" (domyślnie) albo "FLAT", albo "3D"

Multiline: gdy True (domyślnie = False), podpis może być wyświetlany w więcej niż jednym wierszu

Align: wyrównanie w poziomie, "LEFT" (domyślnie) albo "CENTER", albo "RIGHT"

VerticalAlign: wyrównanie pionowe, "TOP" (deomyślnie) albo "MIDDLE", albo "BOTTOM"

Zwracana wartość:

Instancja usługi SFDialogs.DialogControl lub Nothing.

Przykład:

W języku Basic
Set myHyperlink = oDlg.CreateHyperlink("Hyperlink1", Array(20, 20, 60, 15), MultiLine := True)
W języku Python
myHyperlink = dlg.CreateHyperlink('Hyperlink1', (20, 20, 60, 15), MultiLine = True)

CreateImageControl

Utwórz nowy formant typu ImageControl w bieżącym oknie dialogowym.

Składnia:

svc.CreateImageControl(ControlName: str, Place: any, Border: str = "3D", Scale: str = "FITTOSIZE"): svc

Parametry:

ControlName: nazwa nowego formantu. Nie może jeszcze istnieć.

Place: albo …

Wszystkie elementy są wyrażone w jednostkach Map AppFont.

Border: "3D" (domyślnie) albo "FLAT", albo "NONE"

Scale: jedna z kolejnych wartości: "FITTOSIZE" (domyślnie), "KEEPRATIO" albo "NO"

Zwracana wartość:

Instancja usługi SFDialogs.DialogControl lub Nothing.

Przykład:

W języku Basic
Set myImageControl = oDlg.CreateImageControl("ImageControl1", Array(20, 20, 60, 15))
W języku Python
myImageControl = dlg.CreateImageControl('ImageControl1", (20, 20, 60, 15))

CreateListBox

Utwórz nowy formant typu ListBox w bieżącym oknie dialogowym.

Składnia:

svc.CreateListBox(ControlName: str, Place: any, Border: str = "3D", DropDown: bool = True, LineCount: num = 5, MultiSelect: bool = False): svc

Parametry:

ControlName: nazwa nowego formantu. Nie może jeszcze istnieć.

Place: albo …

Wszystkie elementy są wyrażone w jednostkach Map AppFont.

Border: "3D" (domyślnie) albo "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

Zwracana wartość:

Instancja usługi SFDialogs.DialogControl lub Nothing.

Przykład:

W języku Basic
Set myListBox = oDlg.CreateListBox("ListBox1", Array(20, 20, 60, 15), Dropdown := True, MultiSelect := True)
W języku Python
myListBox = dlg.CreateListBox('ListBox1', (20, 20, 60, 15), Dropdown = True, MultiSelect = True)

CreateNumericField

Utwórz nowy formant typu NumericField w bieżącym oknie dialogowym.

Składnia:

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

Parametry:

ControlName: nazwa nowego formantu. Nie może jeszcze istnieć.

Place: albo …

Wszystkie elementy są wyrażone w jednostkach Map AppFont.

Border: "3D" (domyślnie) albo "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

Zwracana wartość:

Instancja usługi SFDialogs.DialogControl lub Nothing.

Przykład:

W języku Basic
Set myNumericField = oDlg.CreateNumericField("NumericField1", Array(20, 20, 60, 15), SpinButton := True)
W języku Python
myNumericField = dlg.CreateNumericField('NumericField1', (20, 20, 60, 15), SpinButton = True)

CreatePatternField

Utwórz nowy formant typu PatternField w bieżącym oknie dialogowym.

Składnia:

svc.CreatePatternField(ControlName: str, Place: any, Border: str = "3D", EditMask: str, opt LiteralMax: str): svc

Parametry:

ControlName: nazwa nowego formantu. Nie może jeszcze istnieć.

Place: albo …

Wszystkie elementy są wyrażone w jednostkach Map AppFont.

Border: "3D" (domyślnie) albo "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

Zwracana wartość:

Instancja usługi SFDialogs.DialogControl lub Nothing.

Przykład:

W języku Basic
Set myPatternField = oDlg.CreatePatternField("PatternField1", Array(20, 20, 60, 15), EditMask := "NNLNNLLLLL", LiteralMask := "__.__.2002")
W języku Python
myPatternField = dlg.CreatePatternField('PatternField1', (20, 20, 60, 15), EditMask = 'NNLNNLLLLL', LiteralMask = '__.__.2002')

CreateProgressBar

Utwórz nowy formant typu ProgressBar w bieżącym oknie dialogowym.

Składnia:

svc.CreateProgressBar(ControlName: str, opt Place: any, Border: str = "3D", MinValue: num = 0, MaxValue: num = 100): svc

Parametry:

ControlName: nazwa nowego formantu. Nie może jeszcze istnieć.

Place: albo …

Wszystkie elementy są wyrażone w jednostkach Map AppFont.

Border: "3D" (domyślnie) albo "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

Zwracana wartość:

Instancja usługi SFDialogs.DialogControl lub Nothing.

Przykład:

W języku Basic
Set myProgressBar = oDlg.CreateProgressBar("ProgressBar1", Array(20, 20, 60, 15), MaxValue := 1000)
W języku Python
myProgressBar = dlg.CreateProgressBar('ProgressBar1', (20, 20, 60, 15), MaxValue = 1000)

CreateRadioButton

Utwórz nowy formant typu RadioButton w bieżącym oknie dialogowym.

Składnia:

svc.CreateRadioButton(ControlName: str, Place: any, MultiLine: bool = False): svc

Parametry:

ControlName: nazwa nowego formantu. Nie może jeszcze istnieć.

Place: albo …

Wszystkie elementy są wyrażone w jednostkach Map AppFont.

Multiline: gdy True (domyślnie = False), podpis może być wyświetlany w więcej niż jednym wierszu

Zwracana wartość:

Instancja usługi SFDialogs.DialogControl lub Nothing.

Przykład:

W języku Basic
Set myRadioButton = oDlg.CreateRadioButton("RadioButton1", Array(20, 20, 60, 15), MultiLine := True)
W języku Python
myRadioButton = dlg.CreateRadioButton('RadioButton1', (20, 20, 60, 15), MultiLine = True)

CreateScrollBar

Utwórz nowy formant typu ScrollBar w bieżącym oknie dialogowym.

Składnia:

svc.CreateScrollBar(ControlName: str, Place, Orientation: str, Border: str = "3D", MinValue: num = 0, MaxValue: num = 100): svc

Parametry:

ControlName: nazwa nowego formantu. Nie może jeszcze istnieć.

Place: albo …

Wszystkie elementy są wyrażone w jednostkach Map AppFont.

Orientation: H[orizontal] lub V[ertical]

Border: "3D" (domyślnie) albo "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

Zwracana wartość:

Instancja usługi SFDialogs.DialogControl lub Nothing.

Przykład:

W języku Basic
Set myScrollBar = oDlg.CreateScrollBar("ScrollBar1", Array(20, 20, 60, 15), MaxValue := 1000)
W języku Python
myScrollBar = dialog.CreateScrollBar('ScrollBar1', (20, 20, 60, 15), MaxValue = 1000)

CreateTableControl

Utwórz nowy formant typu TableControl w bieżącym oknie dialogowym.

Składnia:

svc.CreateTableControl(ControlName: str, Place: any, Border: str = "3D", RowHeaders: bool = True, ColumnHeaders: bool = True, ScrollBars: str = "N", GridLines: bool = False): svc

Parametry:

ControlName: nazwa nowego formantu. Nie może jeszcze istnieć.

Place: albo …

Wszystkie elementy są wyrażone w jednostkach Map AppFont.

Border: "3D" (domyślnie) albo "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: H[orizontal] lub V[ertical], lub B[oth], lub N[one] (domyślnie). 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

Zwracana wartość:

Instancja usługi SFDialogs.DialogControl lub Nothing.

Przykład:

W języku Basic
Set myTableControl = oDlg.CreateTableControl("TableControl1", Array(20, 20, 60, 15), ScrollBars := "B")
W języku Python
myTableControl = dlg.CreateTableControl('TableControl1', (20, 20, 60, 15), ScrollBars = 'B')

CreateTextField

Utwórz nowy formant typu TextField w bieżącym oknie dialogowym.

Składnia:

svc.CreateTextField(ControlName: str, Place: any, Border: str = "3D", MultiLine: bool = False, MaximumLength: num = 0, PasswordCharacter: str = ""): svc

Parametry:

ControlName: nazwa nowego formantu. Nie może jeszcze istnieć.

Place: albo …

Wszystkie elementy są wyrażone w jednostkach Map AppFont.

Border: "3D" (domyślnie) albo "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 = "")

Zwracana wartość:

Instancja usługi SFDialogs.DialogControl lub Nothing.

Przykład:

W języku Basic
Set myTextField = oDlg.CreateTextField("TextField1", Array(20, 20, 120, 50), MultiLine := True)
W języku Python
myTextField = dlg.CreateTextField('TextField1', (20, 20, 120, 50), MultiLine = True)

CreateTimeField

Utwórz nowy formant typu TimeField w bieżącym oknie dialogowym.

Składnia:

svc.CreateTimeField(ControlName: str, Place: any, Border: str = "3D", MinTime: num = 0, MaxTime: num = 24): svc

Parametry:

ControlName: nazwa nowego formantu. Nie może jeszcze istnieć.

Place: albo …

Wszystkie elementy są wyrażone w jednostkach Map AppFont.

Border: "3D" (domyślnie) albo "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

Zwracana wartość:

Instancja usługi SFDialogs.DialogControl lub Nothing.

Przykład:

W języku Basic
Set myTimeField = oDlg.CreateTimeField("TimeField1", Array(20, 20, 60, 15))
W języku Python
myTimeField = dlog.CreateTimeField('TimeField1', (20, 20, 60, 15))

CreateTreeControl

Utwórz nowy formant typu TreeControl w bieżącym oknie dialogowym.

Składnia:

svc.CreateTreeControl(ControlName: str, Place: any, Border = "3D"): svc

Parametry:

ControlName: nazwa nowego formantu. Nie może jeszcze istnieć.

Place: albo …

Wszystkie elementy są wyrażone w jednostkach Map AppFont.

Border: "3D" (domyślnie) albo "FLAT", albo "NONE"

Zwracana wartość:

Instancja usługi SFDialogs.DialogControl lub Nothing.

Przykład:

W języku Basic
Set myTreeControl = oDlg.CreateTreeControl("TreeControl1", Array(20, 20, 60, 15))
W języku Python
myTreeControl = dlg.CreateTreeControl('TreeControl1', (20, 20, 60, 15))

EndExecute

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.

Składnia:

svc.EndExecute(returnvalue: int)

Parametry:

returnvalue: wartość przekazana do działającej metody Execute().

Przykład:

W języku Basic
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
W języku Python
from com.sun.star.lang import EventObject
def on_event(event: EventObject):
    dlg = CreateScriptService("SFDialogs.DialogEvent", event)
    dlg.EndExecute(25)
tip

Powyższe wzmianki com.sun.star.lang.EventObject są opcjonalne. Takie adnotacje pomagają zidentyfikować interfejs programowania aplikacji (API) Collabora Office.


Execute

Wyświetl okno dialogowe i, jeśli jest modalne, poczekaj na jego zamknięcie przez użytkownika. Zwracana wartość to:

Dla niemodalnych okien dialogowych metoda zawsze zwraca 0, a wykonywanie makra jest kontynuowane.

Składnia:

svc.Execute(modal: bool = True): int

Parametry:

modal: False w przypadku okna dialogowego niemodalnego. Wartość domyślna = True.

Przykład:

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:
    # ...

GetTextsFromL10N

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.

Składnia:

svc.GetTextsFromL10N(l10n: svc): bool

Parametry:

l10n: instancja usługi L10N, z której zostaną pobrane przetłumaczone ciągi znaków.

Przykład:

Poniższy przykład ładuje przetłumaczone ciągi i stosuje je do okna dialogowego „MyDialog”.

W języku Basic
oDlg = CreateScriptService("Dialog", "GlobalScope", "Standard", "MyDialog")
myPO = CreateScriptService("L10N", "/home/user/po_files/")
oDlg.GetTextsFromL10N(myPO)
oDlg.Execute()
W języku Python
dlg = CreateScriptService("Dialog", "GlobalScope", "Standard", "MyDialog")
myPO = CreateScriptService("L10N", "/home/user/po_files/")
dlg.GetTextsFromL10N(myPO)
dlg.Execute()
tip

Przeczytaj stronę pomocy usługi L10N, aby dowiedzieć się więcej o obsłudze plików PO i POT.


OrderTabs

Ustaw indeks tabulacji serii formantów. Kolejność formantów podana jest jako tablica nazw formantów od pierwszego do ostatniego.

warning

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


Składnia:

svc.TabsList(TabsList: num, Start: num = 1, Increment: num = 1): bool

Parametry:

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

Zwracana wartość:

True, gdy się powiedzie.

Przykład:

W języku Basic
oDlg.OrderTabs(Array("myListBox", "myTextField", "myNumericField"), Start := 10)
W języku Python
dlg.OrderTabs(('myListBox', 'myTextField', 'myNumericField'), Start = 10)

Resize

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.

Składnia:

svc.Resize(opt Left: num, opt Top: num, opt Width: num, opt Height: num): bool

Parametry:

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

Przykład:

W języku Basic
oDlg.Resize(1000, 2000, Height := 6000) ' Szerokość nie ulega zmianie
W języku Python
dlg.Resize(1000, 2000, Height = 6000)  # Szerokość nie ulega zmianie

SetPageManager

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ą:

tip

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.

Składnia:

svc.SetPageManager(pilotcontrols: str = "", tabcontrols: str = "", wizardcontrols: str = "", opt lastpage: int): bool

Parametry:

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.

Przykład:

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.

W języku Basic
oDlg.SetPageManager(PilotControls := "aPageList", _
                       WizardControls := "btnPrevious,btnNext", _
                       LastPage := 3)
oDlg.Execute()
W języku Python
dlg.SetPageManager(pilotcontrols="aPageList",
                   wizardcontrols="btnPrevious,btnNext",
                   lastpage=3)
dlg.Execute()

Terminate

Zakończ usługę Dialog dla bieżącej instancji. Zwróć True, jeśli zakończenie się powiodło.

Składnia:

svc.Terminate(): bool

Przykład:

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:

W języku Basic
oDlg = CreateScriptService("SFDialogs.Dialog","GlobalScope","ScriptForge","DlgConsole")
oDlg.Execute(modal:=False)
Wait 5000
oDlg.Terminate()
W języku Python
from time import sleep
dlg = CreateScriptService('SFDialogs.Dialog',"GlobalScope",'Access2Base',"dlgTrace")
dlg.Execute(modal=False)
sleep 5
dlg.Terminate()
warning

Wszystkie podstawowe procedury lub identyfikatory ScriptForge poprzedzone znakiem podkreślenia „_” są zarezerwowane do użytku wewnętrznego. Nie należy ich używać w makrach Basic ani skryptach Pythona.


Prosimy o wsparcie!