Tjenesten SFDialogs. Dialog

Tjenesten Dialog bidrager til administrationen af dialoger oprettet med Basic Dialogeditoren eller dialoger oprettet under afvikling. Hver instans af den aktuelle klasse repræsenterer en enkelt dialog vist for brugeren.

tip

Et dialogfelt kan vises i modal eller ikke-modal tilstand.


I modal tilstand vises feltet og udførelsen af makro-processen er udsat, indtil der trykkes på en af knapperne OK eller Annuller. I mellemtiden kan brugerhandlinger, udført på feltet, udløse bestemte handlinger.

I ikke-modal tilstand "Flyder" dialogfeltet på brugerskrivebordet og udførelsen af makroprocessen fortsætter normalt. En ikke-modal dialog lukker, når den afsluttes med metoden Terminate() eller når sessionen LibreOffice Slutter. Knappen Luk vindue er inaktiv i ikke-modale dialoger.

Et dialogfelt forsvinger fra hukommelsen efter dets udtrykkelige afslfutning.

tip

Tjenesten SFDialogs.Dialog er nært beslægtet med tjenesten SFDialogs.DialogControl.


Kald og brug af tjeneste

Før brug af tjenesten Dialog skal biblioteket ScriptForge være indlæst eller importeret:

note

• Basic-makroer kræver, at biblioteket ScriptForge indlæses med følgende udtryk:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Python-scripts kræver import af scriptforge-modulet:
from scriptforge import CreateScriptService


Tjenesten Dialog kaldes gennem metoden CreateScriptService. Den kræver yderligere tre positions-argumenter for at specificere dialogen, der skal aktiveres:

Container: "GlobalScope" til forudinstallerede biblioteker eller et vinduesnavn som defineret af tjenesten ScriptForge.UI. Standardværdien tom streng "" står for det aktuelle dokument.

Library: Biblioteksnavn med skelnen mellem Store og små bogstaver, der findes i containeren. Standardværdien er "Standard".

DialogName: En streng, hvor der skelnes mellem Store og små bogstaver, og som betegner dialogen.

Eksemplerne neden for i Basic og Python viser dialogen dlgConsole, som hører til det delte ScriptForge-bibliotek:


      Dim oDlg As Object, lButton As Long
      Dim Container As String, Library As String, DialogName As String
      Set oDlg = CreateScriptService("SFDialogs.Dialog", "GlobalScope", "ScriptForge", "dlgConsole")
      '... initialisering af kontrolelementer skrives her...
      lButton = oDlg.Execute()
      'Standard tilstand = Modal
      If lButton = oDlg.OKBUTTON Then
      '... Proceskontrollerer og gør, hvad der er nødvendigt her
      End If
      oDlg.Terminate()
  

Eller med Python:


    dlg = CreateScriptService('SFDialogs.Dialog', 'GlobalScope', 'ScriptForge', 'dlgConsole')
    # ... initialisering af kontroller skrives her...
    rc = dlg.Execute()
    # Standard-tilstand er Modal
    if rc == dlg.OKBUTTON:
        # ... Behandl kontroller og gør, hvad der er nødvendigt her
    dlg.Terminate()
  
note

Brug strengen "GlobalScope" som container-argument, når dialogen er gemt enten i Mine makroer og dialoger eller i Programmakroer og -dialoger.


tip

Dialog-tjenesten tilbyder metoder som dynamisk opretter nye kontrolelementer i en eksisterende dialog, forhåndsdefineret med Dialogeditoren. En dialog initialiseres med kontrolelementer i Dialogeditoren, og nye kontrolelementer kan tilføjes på afviklingstidspunktet før eller efter dialogens Execute()-kommando.


Tjenesten Dialog kan kaldes på samme måde – gennem CreateScriptService-metoden – når dialoger oprettes under afvikling. Det kræver yderligere to positionsargumenter efter navnet på ad-hoc-tjenesten "NewDialog":

DialogName: En streng som angiver dialogvinduet, med forskel på store og små bogstaver.

Place: Vinduesplacering af dialogen, enten:

Alle elementer er udtrykt i Map AppFont-måleenheder.


    Sub newDialog()
        Dim oDlg As Object
       oDlg = CreateScriptService("NewDialog", "myDialog1", Array(100,200, 40, 110))
       ' ...
    End Sub
  

Eller med Python:


    def newDialog():
       dlg = CreateScriptService('NewDialog', 'myDialog1', (100,200, 40, 110))
       # ... Proceskontroller og udfør hvad der ellers er brug for
  

Alle de egenskaber og metoder, som gælder for forhåndsdefinerede dialoger, er tilgængelige for sådanne nye dialoger. Specier serien af CreateXXX()-metoder til at tilføje nye kontrolelementer til dialogen.

At hente Dialog-instansen, som udløste en dialoghændelse

En instans af Dialog-tjenesten kan hentes via SFDialogs.DialogEvent-tjenesten, forudsat at dialogen blev initieret med Dialog-tjenesten. I eksemplet nedenfor indeholder oDlg den instans af Dialog, som udløste dialoghændelsen.


    Sub aDialogEventHander(ByRef poEvent As Object)
        Dim oDlg As Object
        Set oDlg = CreateScriptService("SFDialogs.DialogEvent", poEvent)
        ' ...
    End Sub
  

Eller med Python:


    def control_event_handler(event: uno):
        dlg = CreateScriptService("SFDialogs.DialogEvent", event)
        # ...
  

Bemærk at i det foregående eksempler kan præfikset "SFDialogs." udelades, når det passer bedst.

Håndtering af udtagelser i hændelsesbehandlere

Når du opretter en hændelseshåndtering til dialoghændelser, er det god praksis at håndtere fejl inde i selve subrutinen. Antag for eksempel at hændelseshåndteringen nedenfor bliver kaldt når museknappen trykkes i dialogvinduet.


    Sub OnMouseButtonPressed(ByRef oEvent As Object)
    On Local Error GoTo Catch
        Dim oDialog As Object
        oDialog = CreateScriptService("DialogEvent", oEvent)
        ' Behandl hændelsen
        Exit Sub
    Catch:
        MsgBox SF_Exception.Description
        SF_Exception.Clear
    End Sub
  
tip

Kald SF_Exception.Clear hvis du ikke ønsker at fejlen skal videreføres, efter at dialogprogrammet er afsluttet.


I Python, brug indbyggede try/except-blokke til hændelseshåndtering som vist nedenfor:


    def on_mouse_button_pressed(event=None):
        try:
            dlg = CreateScriptService("DialogEvent", event)
            # Behandl hændelsen
        except Exception as e:
            # Objektet "bas" er en instans af Basic-tjenesten
            bas.MsgBox(str(e))
  

Egenskaber

Navn

Skrivebeskyttet

Type

Beskrivelse

OKBUTTON

Ja

Integer

Værdi = 1. Der blev trykket på en OK-knap.

CANCELBUTTON

Ja

Integer

Værdi = 1. Der blev trykket på en OK-knap.

Caption

Nej

String

Angiv dialogens titel.

Height

Nej

Long

Angiv højden på dialogfeltet.

Modal

Ja

Boolean

Angiver, om dialogfeltet aktuelt er i udførelse i modal tilstand.

Name

Ja

String

Dialogens navn

Page

Nej

Integer

En dialog kan have flere sider, som brugeren kan gå igennem trin for trin. Dialogobjektets sideegenskab definerer, hvilken af dialogens sider, der er aktiv.

Visible

Nej

Boolean

Angiv, om dialogfeltet er synligt på skrivebordet. Som standard er det ikke synligt, før metoden Execute() køres og synligt derefter.

XDialogModel

Ja

UNO-
objekt

Det UNO-objekt, der repræsenter dialogenmodellen. Se detaljeret information i XControlModel og UnoControlDialogModel i APIens (Application Programming Interface) dokumentation.

XDialogView

Ja

UNO-
objekt

Det UNO-objekt, der repræsenter dialogvisningen. Se detaljeret information i XControl og UnoControlDialog i APIens (Application Programming Interface) dokumentation.

Width

Nej

Long

Angiv dialogfeltets bredde.


Hændelsesegenskaber

Egenskaberne On... returnerer en URI-streng med referencen til det script, som udløste hændelsen. On...-egenskaber kan sættes programmeringsmæssigt.
Læs specifikationen in scripting framework URI specification.

Navn

Læs/skriv

Beskrivelse af Basic IDE

OnFocusGained

Ja

Når fokus modtages

OnFocusLost

Ja

Når fokus mistes

OnKeyPressed

Ja

Tast trykket

OnKeyReleased

Ja

Tast sluppet

OnMouseDragged

Ja

Mus flyttet mens tast trykkes

OnMouseEntered

Ja

Mus indenfor

OnMouseExited

Ja

Mus udenfor

OnMouseMoved

Ja

Mus flyttet

OnMousePressed

Ja

Museknap trykket

OnMouseReleased

Ja

Museknap sluttet


warning

Tilordning af hændelse via Basic IDE og tilordning af hændelser via makroer udelukker hinanden.


Liste over metoder i tjenesten 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

Målene for et dialogvindue tildeles med Map AppFont-måleenheder. En dialog- eller kontrolelement-model bruger også AppFont-måleenheder, mens deres visninger bruger pixels.


Activate

Sæt fokus på den aktuelle instans af Dialog. Returner True, hvis fokuseringen lykkedes.

Den metode kaldes fra en dialog, en kontrolhændelse eller når der vises en dialog i ikke-modal tilstand.

Syntaks:

svc.Activate(): bool

Eksempel:


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

Både Python- og LibreOffice-Basic-eksempler antager, at dialogen er gemt i det aktuelle dokuments Standard-bibliotek.


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

Center

Centrerer den aktuelle instans af dialogen midt i det ordnede vindue. Uden argumenter centrerer metoden dialogen i midten af det aktuelle vindue.

Returnerer True (Sand), når den lykkes.

Syntaks:

svc.Center(opt Parent: obj): bool

Parametre:

Overordnet: Et valgfrit objekt kan være enten…

Eksempel:

I Basic

     Sub TriggerEvent(oEvent As Object)
         Dim oDialog1 As Object, oDialog2 As Object, lExec As Long
         Set oDialog1 = CreateScriptService("DialogEvent", oEvent) ' Dialogen, der udløste hændelsen
         Set oDialog2 = CreateScriptService("Dialog", ...) ' Åbn en anden dialog
         oDialog2.Center(oDialog1)
         lExec = oDialog2.Execute()
         Select Case lExec
             ...
     End Sub
  
I Python

     def triggerEvent(event: uno):
       dlg1 = CreateScriptService('DialogEvent.Dialog', event)  # Dialogen, der har udløst hændelsen
       dlg2 = CreateScriptService('Dialog', ...)  # Åbn en anden dialog
       dlg2.Center(dlg1)
       rc = dlg2.Execute()
       if rc is False:
         # ...
   

CloneControl

Lav en kopi af et eksisterende kontrolelement af en hvilken som helst type i selve dialogen. Det kopierede kontrolelement efterlade uændret og kan flyttes.

Syntaks:

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

Parametre:

SourceName: Navnet på det kontrolelement, som skal kopieres.

ControlName: Et gyldigt navn som en streng med forskel på store og små bogstaver. Navnet må ikke eksistere allerede.

Left, Top: Koordinaterne for det nye kontrolelement udtrykt i AppFont-måleenheder.

Returværdi:

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

Eksempel:

I Basic

      Set myButton2 = oDlg.CloneControl("Button1", "Button2", 30, 30)
   
I Python

     dlg = dlg.CloneControl('Button1', 'Button2', 30, 30)
   

Controls

Returner enten:

Syntaks:

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

svc.Controls(controlname: str): svc

Parametre:

KontrolNavn: Et gyldigt kontrolnavn som en streng, der skelner mellem Store og små bogstaver. Hvis den mangler, returneres listen over kontrolnavne som en nul-baseret matrix.

Eksempel:


      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

Opretter et nyt kontrolelement af typen Button (knap) i den aktuelle dialog.

Syntaks:

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

Parametre:

ControlName: Navnet på det nye kontrolelement. Navnet på ikke eksistere allerede.

Place: enten …

Alle elementer er udtrykt i AppFont-måleenheder.

Toggle: når True oprettes en til/fra-trykknap (Toggle button). Standard = False

Push: "OK", "CANCEL" eller "" (standard)

Returværdi:

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

Eksempel:

I Basic

     Set myButton = oDlg.CreateButton("Button1", Array(20, 20, 60, 15))
   
I Python

     myButton = dlg.CreateButton('Button1', (20, 20, 60, 15))
   

CreateCheckBox

Opretter et nyt kontrolelement af typen CheckBox (afkrydsningsfelt) i den aktuelle dialog.

Syntaks:

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

Parametre:

ControlName: Navnet på det nye kontrolelement. Navnet på ikke eksistere allerede.

Place: enten …

Alle elementer er udtrykt i AppFont-måleenheder.

MultiLine: Når True (standard = False), kan billedteksten blive vist på mere end en enkelt linje.

Returværdi:

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

Eksempel:

I Basic

     Set myCheckBox = oDlg.CreateCheckBox("CheckBox1", Array(20, 20, 60, 15), MultiLine := True)
   
I Python

     myCheckBox = dlg.CreateCheckBox('CheckBox1', (20, 20, 60, 15), MultiLine = True)
   

CreateComboBox

Opretter et nyt kontrolelement af typen ComboBox (kombinationsfelt) i den aktuelle dialog.

Syntaks:

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

Parametre:

ControlName: Navnet på det nye kontrolelement. Navnet på ikke eksistere allerede.

Place: enten …

Alle elementer er udtrykt i AppFont-måleenheder.

Border: "3D" (standard), "FLAT" eller "NONE"

DrowDown: Når Sand (standard) vises en rullegardin-knap.

LineCount: Angiver det maksimale antal linjer, som vises i rullegardin-menuen (standard = 5)

Returværdi:

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

Eksempel:

I Basic

     Set myComboBox = oDlg.CreateComboBox("ComboBox1", Array(20, 20, 60, 15), Dropdown := True)
   
I Python

     myComboBox = dlg.CreateComboBox('ComboBox1', (20, 20, 60, 15), Dropdown = True)
   

CreateCurrencyField

Opretter et nyt kontrolelement af typen CurrencyField (valutafelt) i den aktuelle dialog.

Syntaks:

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

Parametre:

ControlName: Navnet på det nye kontrolelement. Navnet på ikke eksistere allerede.

Place: enten …

Alle elementer er udtrykt i AppFont-måleenheder.

Border: "3D" (standard), "FLAT" eller "NONE"

SpinButton: Når True (standard = False), vises en skalafelt-knap

MinValue: Den laveste værdi, som kan skrives i kontrolelementet. Standard = -1000000

MaxValue: Den højeste værdi, som kan skrives i kontrolelementet. Standard = +1000000

Increment: Trinnet (forøgelse/formindskelse), når der trykkes på skalafelt-knappen. Standard = 1

Accuracy: Angiver den decimale præcision. Standard = 2 decimaler

Returværdi:

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

Eksempel:

I Basic

     Set myCurrencyField = oDlg.CreateCurrencyField("CurrencyField1", Array(20, 20, 60, 15), SpinButton := True)
   
I Python

     myCurrencyField = dlg.CreateCurrencyField('CurrencyField1', (20, 20, 60, 15), SpinButton = True)
   

CreateDateField

Opretter et nyt kontrolelement af typen DateField (datofelt) i den aktuelle dialog.

Syntaks:

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

Parametre:

ControlName: Navnet på det nye kontrolelement. Navnet på ikke eksistere allerede.

Place: enten …

Alle elementer er udtrykt i AppFont-måleenheder.

Border: "3D" (standard), "FLAT" eller "NONE"

DropDown: Når True (standard = False) vises en rullegardin-knap

MinDate: Den tidligste dato, som kan skrives i kontrolelementet. Standard = 1900-01-01

MaxDate: Den seneste dato, som kan skrives i kontrolelementet. Standard = 2200-12-31

Returværdi:

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

Eksempel:

I Basic

     Set myDateField = oDlg.CreateDateField("DateField1", Array(20, 20, 60, 15), Dropdown := True)
   
I Python

     myDateField = dlg.CreateDateField('DateField1', (20, 20, 60, 15), Dropdown = True)
   

CreateFileControl

Opretter et nyt kontrolelement af typen FileControl (filvælger) i den aktuelle dialog.

Syntaks:

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

Parametre:

ControlName: Navnet på det nye kontrolelement. Navnet på ikke eksistere allerede.

Place: enten …

Alle elementer er udtrykt i AppFont-måleenheder.

Border: "3D" (standard), "FLAT" eller "NONE"

Returværdi:

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

Eksempel:

I Basic

     Set myFileControl = oDlg.CreateFileControl("FileControl1", Array(20, 20, 60, 15))
   
I Python

     myFileControl = dlg.CreateFileControl('FileControl1', (20, 20, 60, 15))
   

CreateFixedLine

Opretter et nyt kontrolelement af typen FixedLine (fast linje) i den aktuelle dialog.

Syntaks:

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

Parametre:

ControlName: Navnet på det nye kontrolelement. Navnet på ikke eksistere allerede.

Place: enten …

Alle elementer er udtrykt i AppFont-måleenheder.

Orientation: For vandret (horisontal) orientering brug "H" eller "Horizontal"; for lodret (vertikal) orientering brug "V" eller "Vertical".

Returværdi:

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

Eksempel:

I Basic

     Set myFixedLine = oDlg.CreateFixedLine("FixedLine1", Array(20, 20, 60, 15), Orientation := "vertical")
   
I Python

     myFixedLine = dlg.CreateFixedLine('FixedLine1', (20, 20, 60, 15), Orientation = 'vertical')
   

CreateFixedText

Opretter et nyt kontrolelement af typen FixedText (fast tekst) i den aktuelle dialog.

Syntaks:

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

Parametre:

ControlName: Navnet på det nye kontrolelement. Navnet på ikke eksistere allerede.

Place: enten …

Alle elementer er udtrykt i AppFont-måleenheder.

Border: "NONE" (standard), "FLAT" eller "3D"

Multiline: Når True (standard = False) kan billedteksten blive vist på flere linjer.

Align: Vandret justering, "LEFT" (standard), "CENTER" eller "RIGHT"

VerticalAlign: Lodret justering, "TOP" (standard), "MIDDLE" eller "BOTTOM"

Returværdi:

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

Eksempel:

I Basic

     Set myFixedText = oDlg.CreateFixedText("FixedText1", Array(20, 20, 60, 15), MultiLine := True)
   
I Python

     myFixedText = dlg.CreateFixedText('FixedText1', (20, 20, 60, 15), MultiLine = True)
   

CreateFormattedField

Opretter et nyt kontrolelement af typen FormattedField (formateret felt) i den aktuelle dialog.

Syntaks:

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

Parametre:

ControlName: Navnet på det nye kontrolelement. Navnet på ikke eksistere allerede.

Place: enten …

Alle elementer er udtrykt i AppFont-måleenheder.

Border: "3D" (standard), "FLAT" eller "NONE"

SpinButton: Når True (standard = False), vises en skalafelt-knap

MinValue: Den laveste værdi, som kan skrives i kontrolelementet. Standard = -1000000

MaxValue: Den højeste værdi, som kan skrives i kontrolelementet. Standard = +1000000

Returværdi:

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

Eksempel:

I Basic

     Set myFormattedField = oDlg.CreateFormattedField("FormattedField1", Array(20, 20, 60, 15), SpinButton := True)
   
I Python

     myFormattedField = dlg.CreateFormattedField('FormattedField1', (20, 20, 60, 15), SpinButton = True)
   

CreateGroupBox

Opretter et nyt kontrolelement af typen GroupBox (gruppefelt) i den aktuelle dialog.

Syntaks:

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

Parametre:

ControlName: Navnet på det nye kontrolelement. Navnet på ikke eksistere allerede.

Place: enten …

Alle elementer er udtrykt i AppFont-måleenheder.

Returværdi:

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

Eksempel:

I Basic

     Set myGroupBox = oDlg.CreateGroupBox("GroupBox1", Array(20, 20, 60, 15))
   
I Python

     myGroupBox = dlg.CreateGroupBox('GroupBox1', (20, 20, 60, 15))
   

CreateHyperlink

Opretter et nyt kontrolelement af typen Hyperlink i den aktuelle dialog.

Syntaks:

Parametre:

ControlName: Navnet på det nye kontrolelement. Navnet på ikke eksistere allerede.

Place: enten …

Alle elementer er udtrykt i AppFont-måleenheder.

Border: "NONE" (standard), "FLAT" eller "3D"

Multiline: Når True (standard = False) kan billedteksten blive vist på flere linjer.

Align: Vandret justering, "LEFT" (standard), "CENTER" eller "RIGHT"

VerticalAlign: Lodret justering, "TOP" (standard), "MIDDLE" eller "BOTTOM"

Returværdi:

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

Eksempel:

I Basic

     Set myHyperlink = oDlg.CreateHyperlink("Hyperlink1", Array(20, 20, 60, 15), MultiLine := True)
   
I Python

     myHyperlink = dlg.CreateHyperlink('Hyperlink1', (20, 20, 60, 15), MultiLine = True)
   

CreateImageControl

Opretter et nyt kontrolelement af typen ImageControl (billed-kontrolelement) i den aktuelle dialog.

Syntaks:

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

Parametre:

ControlName: Navnet på det nye kontrolelement. Navnet på ikke eksistere allerede.

Place: enten …

Alle elementer er udtrykt i AppFont-måleenheder.

Border: "3D" (standard), "FLAT" eller "NONE"

Scale: En af værdierne "FITTOSIZE" (standard), "KEEPRATIO" eller "NO"

Returværdi:

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

Eksempel:

I Basic

     Set myImageControl = oDlg.CreateImageControl("ImageControl1", Array(20, 20, 60, 15))
   
I Python

       myImageControl = dlg.CreateImageControl('ImageControl1", (20, 20, 60, 15))
   

CreateListBox

Opretter et nyt kontrolelement af typen ListBox (listefelt) i den aktuelle dialog.

Syntaks:

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

Parametre:

ControlName: Navnet på det nye kontrolelement. Navnet på ikke eksistere allerede.

Place: enten …

Alle elementer er udtrykt i AppFont-måleenheder.

Border: "3D" (standard), "FLAT" eller "NONE"

DrowDown: Når Sand (standard) vises en rullegardin-knap.

LineCount: Angiver det maksimale antal linjer, som vises i rullegardin-menuen (standard = 5)

MultiSelect: Når True kan markeres mere end 1 element ad gangen. Standard = False

Returværdi:

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

Eksempel:

I Basic

     Set myListBox = oDlg.CreateListBox("ListBox1", Array(20, 20, 60, 15), Dropdown := True, MultiSelect := True)
   
I Python

     myListBox = dlg.CreateListBox('ListBox1', (20, 20, 60, 15), Dropdown = True, MultiSelect = True)
   

CreateNumericField

Opretter et nyt kontrolelement af typen NumericFielc (talfelt) i den aktuelle dialog.

Syntaks:

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

Parametre:

ControlName: Navnet på det nye kontrolelement. Navnet på ikke eksistere allerede.

Place: enten …

Alle elementer er udtrykt i AppFont-måleenheder.

Border: "3D" (standard), "FLAT" eller "NONE"

SpinButton: Når True (standard = False), vises en skalafelt-knap

MinValue: Den laveste værdi, som kan skrives i kontrolelementet. Standard = -1000000

MaxValue: Den højeste værdi, som kan skrives i kontrolelementet. Standard = +1000000

Increment: Trinnet (forøgelse/formindskelse), når der trykkes på skalafelt-knappen. Standard = 1

Accuracy: Angiver den decimale præcision. Standard = 2 decimaler

Returværdi:

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

Eksempel:

I Basic

     Set myNumericField = oDlg.CreateNumericField("NumericField1", Array(20, 20, 60, 15), SpinButton := True)
   
I Python

     myNumericField = dlg.CreateNumericField('NumericField1', (20, 20, 60, 15), SpinButton = True)
   

CreatePatternField

Opretter et nyt kontrolelement af typen PatternField (mønsterfelt) i den aktuelle dialog.

Syntaks:

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

Parametre:

ControlName: Navnet på det nye kontrolelement. Navnet på ikke eksistere allerede.

Place: enten …

Alle elementer er udtrykt i AppFont-måleenheder.

Border: "3D" (standard), "FLAT" eller "NONE"

EditMask: En tegnkode, som bestemmer hvad brugeren kan skrive ind.
Se Pattern_Field i wikien for mere information.

LiteralMask: Indeholder startværdierne som vises i mønsterfeltet

Returværdi:

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

Eksempel:

I Basic

     Set myPatternField = oDlg.CreatePatternField("PatternField1", Array(20, 20, 60, 15), EditMask := "NNLNNLLLLL", LiteralMask := "__.__.2002")
   
I Python

     myPatternField = dlg.CreatePatternField('PatternField1', (20, 20, 60, 15), EditMask = 'NNLNNLLLLL', LiteralMask = '__.__.2002')
   

CreateProgressBar

Opretter et nyt kontrolelement af typen ProgressBar (fremgangsvisning) i den aktuelle dialog.

Syntaks:

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

Parametre:

ControlName: Navnet på det nye kontrolelement. Navnet på ikke eksistere allerede.

Place: enten …

Alle elementer er udtrykt i AppFont-måleenheder.

Border: "3D" (standard), "FLAT" eller "NONE"

MinValue Den mindste værdi, som kan skrives ind i kontrolelementet. Standard = 0

MaxValue: Den største værdi, som kan skrives ind i kontrolelementet. Standard = 100

Returværdi:

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

Eksempel:

I Basic

     Set myProgressBar = oDlg.CreateProgressBar("ProgressBar1", Array(20, 20, 60, 15), MaxValue := 1000)
   
I Python

     myProgressBar = dlg.CreateProgressBar('ProgressBar1', (20, 20, 60, 15), MaxValue = 1000)
   

CreateRadioButton

Opretter et nyt kontrolelement af typen RadioButton (alternativknap) i den aktuelle dialog.

Syntaks:

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

Parametre:

ControlName: Navnet på det nye kontrolelement. Navnet på ikke eksistere allerede.

Place: enten …

Alle elementer er udtrykt i AppFont-måleenheder.

Multiline: Når True (standard = False) kan billedteksten blive vist på flere linjer.

Returværdi:

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

Eksempel:

I Basic

     Set myRadioButton = oDlg.CreateRadioButton("RadioButton1", Array(20, 20, 60, 15), MultiLine := True)
   
I Python

     myRadioButton = dlg.CreateRadioButton('RadioButton1', (20, 20, 60, 15), MultiLine = True)
   

CreateScrollBar

Opretter et nyt kontrolelement af typen ScrollBar (rullebjælke) i den aktuelle dialog.

Syntaks:

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

Parametre:

ControlName: Navnet på det nye kontrolelement. Navnet på ikke eksistere allerede.

Place: enten …

Alle elementer er udtrykt i AppFont-måleenheder.

Orientation: For vandret (horisontal) orientering brug "H" eller "Horizontal"; for lodret (vertikal) orientering brug "V" eller "Vertical".

Border: "3D" (standard), "FLAT" eller "NONE"

MinValue Den mindste værdi, som kan skrives ind i kontrolelementet. Standard = 0

MaxValue: Den største værdi, som kan skrives ind i kontrolelementet. Standard = 100

Returværdi:

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

Eksempel:

I Basic

     Set myScrollBar = oDlg.CreateScrollBar("ScrollBar1", Array(20, 20, 60, 15), MaxValue := 1000)
   
I Python

     myScrollBar = dialog.CreateScrollBar('ScrollBar1', (20, 20, 60, 15), MaxValue = 1000)
   

CreateTableControl

Opretter et nyt kontrolelement af typen TableControl (tabel) i den aktuelle dialog.

Syntaks:

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

Parametre:

ControlName: Navnet på det nye kontrolelement. Navnet på ikke eksistere allerede.

Place: enten …

Alle elementer er udtrykt i AppFont-måleenheder.

Border: "3D" (standard), "FLAT" eller "NONE"

RowHeaders: Når True (standard), vises rækkeoverskrifterne

ColumnHeaders: Når True (standard), vises kolonneoverskrifterne

ScrollBars: Mulige værdier er "H" eller "Horizontal" (vandrette rullebjælker), "V" eller "Vertical" (lodrette rullebjælker), "B" eller "Both" (begge rullebjælker), "N" eller "None" (standard) for ingen rullebjælker. Rullebjælker vises dynamisk, når der er behov for dem.

GridLines: Når True (standard = False) tegnes vandrette og lodrette linjer mellem gittercellerne

Returværdi:

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

Eksempel:

I Basic

     Set myTableControl = oDlg.CreateTableControl("TableControl1", Array(20, 20, 60, 15), ScrollBars := "B")
   
I Python

     myTableControl = dlg.CreateTableControl('TableControl1', (20, 20, 60, 15), ScrollBars = 'B')
   

CreateTextField

Opretter et nyt kontrolelement af typen TextField (tekstfelt) i den aktuelle dialog.

Syntaks:

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

Parametre:

ControlName: Navnet på det nye kontrolelement. Navnet på ikke eksistere allerede.

Place: enten …

Alle elementer er udtrykt i AppFont-måleenheder.

Border: "3D" (standard), "FLAT" eller "NONE"

Multiline: Når True (standard = False) kan billedteksten blive vist på flere linjer.

MaximumLength: Maksimalt antal tegn (standard = 0 betyder ubegrænset)

PasswordCharacter: Et enkelt tegn, som angiver ekkoet for et adgangskodefelt (standard = "")

Returværdi:

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

Eksempel:

I Basic
Set myTextField = oDlg.CreateTextField("TextField1", Array(20, 20, 120, 50), MultiLine := True)
   
I Python

     myTextField = dlg.CreateTextField('TextField1', (20, 20, 120, 50), MultiLine = True)
   

CreateTimeField

Opretter et nyt kontrolelement af typen TimeField (klokkeslætsfelt) i den aktuelle dialog.

Syntaks:

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

Parametre:

ControlName: Navnet på det nye kontrolelement. Navnet på ikke eksistere allerede.

Place: enten …

Alle elementer er udtrykt i AppFont-måleenheder.

Border: "3D" (standard), "FLAT" eller "NONE"

MinTime: Den mindste tidsværdi (klokkeslæt), som kan indtastes i kontrolelementet. Standard = 0

MaxTime: Den største tidsværdi (klokkeslæt), som kan indtastes i kontrolelementet. Standard = 24h

Returværdi:

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

Eksempel:

I Basic

     Set myTimeField = oDlg.CreateTimeField("TimeField1", Array(20, 20, 60, 15))
   
I Python

     myTimeField = dlog.CreateTimeField('TimeField1', (20, 20, 60, 15))
   

CreateTreeControl

Opretter et nyt kontrolelement af typen TreeControl (træ-kontrolelement) i den aktuelle dialog.

Syntaks:

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

Parametre:

ControlName: Navnet på det nye kontrolelement. Navnet på ikke eksistere allerede.

Place: enten …

Alle elementer er udtrykt i AppFont-måleenheder.

Border: "3D" (standard), "FLAT" eller "NONE"

Returværdi:

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

Eksempel:

I Basic

     Set myTreeControl = oDlg.CreateTreeControl("TreeControl1", Array(20, 20, 60, 15))
   
I Python

     myTreeControl = dlg.CreateTreeControl('TreeControl1', (20, 20, 60, 15))
   

EndExecute

Afslutter visningen af en modal dialog og giver argumentet tilbage som den aktuelle Execute() løbende handlings returværdi.

EndExecute() opbevares sædvanligvis i behandlingen af en makro, der udløstes af en dialog eller en kontrolhændelse.

Syntaks:

svc.EndExecute(returnvalue: int)

Parametre:

returværdi: Den værdi, der videregives til den kørende Execute()-metode.

Eksempel:

I 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
   
I Python

     from com.sun.star.lang import EventObject
     def on_event(event: EventObject):
         dlg = CreateScriptService("SFDialogs.DialogEvent", event)
         dlg.EndExecute(25)
   
tip

Ovennævnte omtaler af com.sun.star.lang.EventObject er valgfrie. Disse anmærkninger hjælper med at identificere LibreOffice Application Programming Interface (API).


Execute

Viser dialogfeltet og venter, når modal, på den afslutning af brugeren. Den returnerede værdi er enten:

Ved ikke-modale dialogfelter returnerer metoden altid 0 og udførelsen af makroen fortsætter.

Syntaks:

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

Parametre:

modal: False (falsk) ved en ikke-modal dialog. Standard = True (sand).

Eksempel:

I dette Basic-eksempel er dialogen myDialog gemt i det aktuelle dokuments Standard-bibliotek.


      Dim oDlg As Object, lReturn As Long
      Set oDlg = CreateScriptService("SFDialogs.Dialog", , , "myDialog")
      lReturn = oDlg.Execute(Modal := False)
      Select Case lReturn
          ' ...
      End Select
   

Denne Python-kode viser den modale dialog DlgConvert i det delte Basic-bibliotek DlgConvert.


     dlg = CreateScriptService("SFDialogs.Dialog", 'GlobalScope', 'Euro', "DlgConvert")
     rc = dlg.Execute()
     if rc == dlg.CANCELBUTTON:
         # ...
   

GetTextsFromL10N

Erstatter alle faste tekststrenge i en dialog med deres oversatte versioner baseret på en instans af tjenesten L10N . Denne metode oversætter følgende strenge:

Metoden returnerer True (sand), hvis den lykkes.

For at oprette en liste over strenge, der kan oversættes i en dialog, bruger du metoden AddTextsFromDialog fra tjenesten L10N.

Syntaks:

svc.GetTextsFromL10N(l10n: svc): bool

Parametre:

l10n: En instans af tjenesten L10N, som de oversatte strenge hentes fra.

Eksempel:

Det følgende eksempel indlæser oversatte strenge og anvender dem på dialogen "Min dialog".

I Basic

     oDlg = CreateScriptService("Dialog", "GlobalScope", "Standard", "MyDialog")
     myPO = CreateScriptService("L10N", "/home/user/po_files/")
     oDlg.GetTextsFromL10N(myPO)
     oDlg.Execute()
   
I Python

     dlg = CreateScriptService("Dialog", "GlobalScope", "Standard", "MyDialog")
     myPO = CreateScriptService("L10N", "/home/user/po_files/")
     dlg.GetTextsFromL10N(myPO)
     dlg.Execute()
   
tip

Læs hjælpesiden tjenesten L10N for at få mere at vide om, hvordan PO- og POT-filer håndteres.


OrderTabs

Sæt tabuleringsindekset for en række af kontrolelementer. Sekvensen af kontrolelementer er givet som et array af navne på kontrolelementer, fra den første til den sidste.

warning

Kontrolelementer med et indeks >= 1 er ikke tilgængelige med TAB-tasten hvis:
- de er udeladt fra den givne liste
- deres type er FixedLine, GroupBox eller ProgressBar
- de er deaktiveret


Syntaks:

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

Parametre:

TabsList: Et array af gyldige kontrolelement-navne i tabuleringsrækkefølge

Start: Det tabulatorindeks, som skal tildeles det første kontrolelement i listen. Standard = 1

Increment: Forskellen mellem to tabulatorindekser, som kommer efter hinanden. Standard = 1

Returværdi:

Returnerer True når det lykkes.

Eksempel:

I Basic

     oDlg.OrderTabs(Array("myListBox", "myTextField", "myNumericField"), Start := 10)
   
I Python

     dlg.OrderTabs(('myListBox', 'myTextField', 'myNumericField'), Start = 10)
   

Resize

Flytter det øverste venstre hjørne af dialogen til nye koordinator og/eller ændrer dialogens dimensioner. Alle afstrande er udtrykt i AppFont-måleenheder. Uden argumenter nulstiller metoden til de oprindelige dimensioner. Returnerer True hvis størrelsesændring lykkedes.

Syntaks:

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

Parametre:

Left: Den vandrette afstand fra det øverste venstre hjørne

Top: Den lodrette afstand fra det øverste venstre hjørne

Width: Bredden på det rektangel, der indeholder dialogen

Height: Højden på det rektangel, der indeholder dialogen

Udeladte argumenter forbliver uændrede

Eksempel:

I Basic

     oDlg.Resize(1000, 2000, Height := 6000) ' Bredden (Width) ændres ikke
   
I Python

     dlg.Resize(1000, 2000, Height = 6000)  # Bredden (Width) ændres ikke
   

SetPageManager

Definerer hvilket kontrolelementer i en dialog, der er ansvarlige for at skifte side, noget som gør det lettere at administrere egenskaben Page (side) for en dialog og dens kontrolelementer.

Visninger kan have flere sider, og den aktuelt synlige side er defineret af dialogegenskaben Page. Hvis Page-egenskaben ikke ændres, er den synlige side som standard lig med 0 (nul), hvilket betyder at ingen bestemt side er defineret og alle synlige kontrolelementer vises, uanset hvilket værdier der er sat for kontrolelementernes egen Page-egenskab.

Når Page-egenskaben for en dialog ændres til en anden værdi, som 1, 2, 3 osv., så vises kun de kontrolelementer hvis Page-egenskab svarer til den aktuelle dialogside.

Ved at bruge metoden SetPageManager er det muligt at definere fire typer af elementer som sideadministratorer:

tip

Det er muligt at bruge mere end én sideadministrator-mekanisme samtidig.


Denne metode er beregnet til at blive kaldt én gang før Execute-metoden kaldes. Efterfølgende kald ignoreres.

Hvis metoden lykkes, returnes True.

Syntaks:

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

Parametre:

pilotcontrols: En komma-separeret liste af navne på kontrolelementer af typerne ListBox (listefelt), ComboBox (kombinationsfelt) eller RadioButton (alternativknap), der skal bruges som sideadministratorer. For alternativknap-kontrolelementer, angiv navnet på det første kontrolelement den anvendte gruppe.

tabcontrols: En komma-separeret liste af navne på knapper, der skal bruges som sideadministratorer. Den rækkefølge, de har i dette argument, svarer til de sidetal, de bliver tilknyttede.

wizardcontrols: En komma-separeret listen med navne på de to knapper, der skal bruges som Forrige/Næste-knapper.

lastpage: Nummeret på den sidste tilgængelige side. Det anbefales at angive denne værdi, når du bruger knapper til Forrige/Næste.

Eksempel:

Tænk på en dialog med tre sider. Dialogen har et ListBox-kontrolelement (listefelt) med navnet "aPageList", som vil blive brug til at kontrollere den synlige side. Derudover er der to knapper kaldet "btnPrevious" og "btnNext", som vil blive brugt som Forrige/Næste-knapper i dialogen.

I Basic

    oDlg.SetPageManager(PilotControls := "aPageList", _
                           WizardControls := "btnPrevious,btnNext", _
                           LastPage := 3)
    oDlg.Execute()
  
I Python

    dlg.SetPageManager(pilotcontrols="aPageList",
                       wizardcontrols="btnPrevious,btnNext",
                       lastpage=3)
    dlg.Execute()
  

Terminate

Afslut tjenesten Dialog for den aktuelle instans. Returner True (sand), hvis afslutningen lykkedes.

Syntaks:

svc.Terminate(): bool

Eksempel:

Basic- og Python-eksemplerne herunder åbner de ikke modale dialoger DlgConsole og dlgTrace. De gemmes henholdsvis i de delte biblioteker ScriptForge og Access2Base. Luk dialog-knapperne er deaktiveret og der udføres udtrykkelig afslutning i slutningen af en kørselsproces.

I dette eksempel erstatter en knap i DlgConsole hæmmet lukning af vinduet:

I Basic

     oDlg = CreateScriptService("SFDialogs.Dialog","GlobalScope","ScriptForge","DlgConsole")
     oDlg.Execute(modal:=False)
     Wait 5000
     oDlg.Terminate()
   
I Python

     from time import sleep
     dlg = CreateScriptService('SFDialogs.Dialog',"GlobalScope",'Access2Base',"dlgTrace")
     dlg.Execute(modal=False)
     sleep 5
     dlg.Terminate()
   
warning

Alle ScriptForge Basic-rutiner eller identifikatorer, der indledes med et understregstegn "_" er reserveret til internt brug. Det er ikke meningen, at de skal bruges i Basic-makroer eller Python-scripts.


Støt os venligst!