Indhold

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

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

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

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

Et dialogfelt forsvinger fra hukommelsen efter dets udtrykkelige afslfutning.

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

## Kald og brug af tjeneste

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

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

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

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

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

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

Place: Vinduesplacering af dialogen, enten:

- et Basic-Array eller en Python tuple med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, Bredde, Højde]-objekt

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

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

Eller med Python:

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

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

## 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ændelseshåndteringer

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

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

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

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

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

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

On...-hændelsesegenskaber er URI-strenge, der refererer til et script, som udløses ved en hændelse. Læs dens specifikation in scripting framework URI specification.

Navn | Beskrivelse af Basic IDE
--- | ---
OnFocusGained | Når fokus modtages
OnFocusLost | Når fokus mistes
OnKeyPressed | Tast trykket
OnKeyReleased | Tast sluppet
OnMouseDragged | Mus flyttet mens tast trykkes
OnMouseEntered | Mus indenfor
OnMouseExited | Mus udenfor
OnMouseMoved | Mus flyttet
OnMousePressed | Museknap trykket
OnMouseReleased | Museknap sluttet

Tip: Alle On...-egenskaberne kan sættes med programmering.
Eksemplet Hvordan data vises i et træ-kontrolelement i LibreOffice Wiki demonstrerer dette.

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

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 CreateTabPageContainer | CreateTextField CreateTimeField CreateTreeControl EndExecute Execute GetTextsFromL10N ImportControl OrderTabs Resize SetPageManager Terminate

TabPageContainer-kontrolelementer er ikke tilgængelige i dialogeditoren.

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

## 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…

- et ScriptForge-dialogobjekt

- et ScriptForge-dokument (Calc, Base, ...)-objekt

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

### Returtype

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:

- listen over kontrolelementer, der er indeholdt i dialogen

- en instans af DialogControl-klassen baseret på dens navn

### 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 …

- et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt

Alle elementer er udtrykt i AppFont-måleenheder.

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

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

### Returtype

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 …

- et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt

Alle elementer er udtrykt i AppFont-måleenheder.

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

### Returtype

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 …

- et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt

Alle elementer er udtrykt i AppFont-måleenheder.

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)

### Returtype

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 …

- et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt

Alle elementer er udtrykt i AppFont-måleenheder.

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

### Returtype

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 …

- et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt

Alle elementer er udtrykt i AppFont-måleenheder.

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

### Returtype

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 …

- et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt

Alle elementer er udtrykt i AppFont-måleenheder.

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

### Returtype

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 …

- et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt

Alle elementer er udtrykt i AppFont-måleenheder.

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

### Returtype

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 …

- et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt

Alle elementer er udtrykt i AppFont-måleenheder.

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"

### Returtype

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 …

- et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt

Alle elementer er udtrykt i AppFont-måleenheder.

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

### Returtype

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 …

- et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt

Alle elementer er udtrykt i AppFont-måleenheder.

### Returtype

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:

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

### Parametre:

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

Place: enten …

- et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt

Alle elementer er udtrykt i AppFont-måleenheder.

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"

### Returtype

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 …

- et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt

Alle elementer er udtrykt i AppFont-måleenheder.

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

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

### Returtype

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 (rulleliste) 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 …

- et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt

Alle elementer er udtrykt i AppFont-måleenheder.

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

### Returtype

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 …

- et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt

Alle elementer er udtrykt i AppFont-måleenheder.

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

### Returtype

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 …

- et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt

Alle elementer er udtrykt i AppFont-måleenheder.

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

### Returtype

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 …

- et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt

Alle elementer er udtrykt i AppFont-måleenheder.

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

### Returtype

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 …

- et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt

Alle elementer er udtrykt i AppFont-måleenheder.

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

### Returtype

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 …

- et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt

Alle elementer er udtrykt i AppFont-måleenheder.

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

### Returtype

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 …

- et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt

Alle elementer er udtrykt i AppFont-måleenheder.

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

### Returtype

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

## CreateTabPageContainer

Opretter et nyt kontrolelement af typen TabPageContainer i den aktuelle dialog. Fanebladene bliver spredt over flere linjer i dialogen, når det er nødvendigt. Brug af multiple TabPageContainer understøttes ikke.

Oprettelse af TabPageContainer-kontrolelementer kommer altid sidst en oprettelse af en dialog.

### Syntaks:

svc.CreateTabPageContainer(ControlName: str, Place: any, TabHeaders: str[1..*], Border: str = "3D"): svc

### Parametre:

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

Place: enten …

- et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt

Alle elementer er udtrykt i AppFont-måleenheder.

TabHeaders: Et array af strenge, som definerer etiketter for de enkelte faneblade.

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

### Returtype

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

### Eksempel:

##### I Basic

         Set myTabPageContainer = oDlg.CreateTabPageContainer("someContainer", Array(20, 20, 60, 15), TabHeaders := Array("Modules", "Dialogs", "Libraries"))

##### I Python

         myTabPageContainer = dlg.CreateTabPageContainer('theTabs', TabHeaders=('Modules', 'Dialogs', 'Libraries'), place=(20, 20, 60, 15))

## 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 …

- et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt

Alle elementer er udtrykt i AppFont-måleenheder.

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

### Returtype

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 …

- et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt

Alle elementer er udtrykt i AppFont-måleenheder.

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

### Returtype

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 …

- et Basic-Array eller en Python-tuble med 4 elementer: (X, Y, bredde, højde)

- et com.sun.star.awt.Rectangle [X, Y, bredde, højde]-objekt

Alle elementer er udtrykt i AppFont-måleenheder.

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

### Returtype

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)

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:

- 0: et tryk på knappen Annullér

- 1 : et tryk på knappen OK

- Ellers stoppede dialogen med et EndExecute()-udtryk, udsendt af en dialog eller en kontrolhændelse

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

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

- Dialogens titel.

- Overskrift til følgende kontroltyper: Knap, Afkrydsningsfelt, Fast_linje, Fast_tekst, Gruppefelt og Alternativknap.

- Statiske strenge i rullelister og kombinationsfelter.

- Det værktøjstip eller den hjælpetekst, der vises, når musen svæver over kontrolfeltet.

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

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

## ImportControl

Importér og duplikér et eksisterende kontrolelement af en hvilken som helst type fra en dialog til den aktuelle dialog. Det duplikerede kontrolelement forbliver uændret. Det nye kontrolelement kan omdøbes og flyttes. Når hændelseshåndteringer findes, kan de også importeres.

### Syntaks:

svc.ImportControl(SourceDialog: svc, SourceName: str, opt ControlName: str, Page: num = 0, OffsetX: num = 0, OffsetY:num = 0, IncludeOnProperties: bool = False): svc

### Parametre:

SourceDialog: en klasse-instans af SFDialogs.Dialog.

SourceName: navnet på kontrolelementet, som skal importeres.

ControlName: navnet på det nye kontrolelement. Det må ikke findes allerede. Standardværdien er SourceName

Page: sidetallet for det nye kontrolelement. Standardværdi = 0

OffsetX, OffsetY: antallet af pixels, der skal lægges til koordinaterne for kilde-kontrolelementet i "Map AppFont"-enheder. Standard = 0, kan være negative.

IncludeOnProperties: inkludér On...-hændelsesegenskaberne. Standard = False.

### Returtype

En instans af tjenesten SFDialogs.DialogControl eller Nothing.

### Eksempel:

##### I Basic

         Set mCtrl = oDlg.ImportControl(srceDlg, "someCtrlName")

##### I Python

         dlg.ImportControl(srceDlg, 'aCtrlName', includeOnProperties=true)

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

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

### Returtype

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:

- Rulleliste eller kombinationsfelt: I dette tilfælde svarer hvert element i rullelisten eller kombinationsfeltet til en side. Det første element refererer til Side 1, det andet element til Side 2 og så videre.

- Gruppe af alternativknapper: Definerer en gruppe af alternativknapper, som vil kontrollere hvilken side, der er synlig.

- Sekvens af knapper: Definerer et sæt af knapper, som hver svarer til en dialogside. Dette kan bruges til at efterligne en faneblads-brugerflade ved at placere knapper ved siden af hinanden i dialogen.

- Forrige/Næste-knapper: Definerer hvilke knapper i dialogen, der vil blive brugt til at navigere til forrige/næste side i dialogen.

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

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

Hvis metoden lykkes, returnes True.

### 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 (rulleliste), ComboBox (kombinationsfelt) eller RadioButton (alternativknap), der skal bruges som sideadministratorer. For alternativknap-kontrolelementer, angiv navnet på det første kontrolelement den anvendte gruppe.

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

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

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

### Eksempel:

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

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

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.

Relaterede emner

Tjenesten SFDialogs.DialogControl

Tjenesten ScriptForge.UI (brugerflade)