LibreOffice 25.8 Hjælp
Tjenesten DialogControl håndterer de kontrolelementer, der hører til en dialog, som er defineret med Basics Dialogredigering. Hver instans af den aktuelle tjeneste repræsenterer et enkelt kontrolelement indenfor et dialogfelt.
Fokus sættes på at hente og sætte de værdier, der vises af dialogfeltets kontroller. Formatering er tilgængelig via egenskaberne XControlModel and XControlView.
Bemærk, at indholdet af den unikke egenskab DialogControl.Value (dialogkontrol.værdi) varierer efter kontroltypen.
Kontrolelementer ordnet i en træstruktur får særlig opmærksomhed. Det er let at fylde et træ med værdier, enten gren for gren eller med flere grene på én gang. Indsættelse af værdier i et "kontroltræ" kan gøres statisk eller dynamisk.
Tjenesten SFDialogs.DialogControl er tæt beslægtet med tjenesten SFDialogs.Dialog.
Før brug af tjenesten DialogControl skal biblioteket ScriptForge være indlæst eller importeret:
Tjenesten DialogControl kaldes fra et eksisterende eksemplar af tjenesten Dialog gennem dens metode Controls(). Dialogen skal initieres med tjenesten SFDialogs.Dialog.
      Dim myDialog As Object, myControl As Object
      Set myDialog = CreateScriptService("SFDialogs.Dialog", "GlobalScope", myLibrary, DialogName)
      Set myControl = myDialog.Controls("myTextBox")
      myControl.Value = "Dialog begyndt ved " & Now()
      myDialog.Execute()
      ' ... bearbejd kontrollens faktiske værdier
      myDialog.Terminate()
   
     from time import localtime, strftime
     dlg = CreateScriptService('SFDialogs.Dialog', 'GlobalScope', lib_name, dlg_name)
     text = dlg.Controls('myTextBox')
     text.Value = "Dialog begyndt ved " + strftime("%a, %d %b %Y %H:%M:%S", localtime())
     dlg.Execute()
     # ... bearbejder kontrollens aktuelle værdier
     dlg.Terminate()
   En instans af tjenesten DialogControl kan hentes via SFDialog.DialogEvent-tjenesten, forudsat at dialogen blev startet med Dialog-tjenesten. I eksemplet nedenfor indholder oControl den instans af DialogControl, som udløste kontrolhændelsen.
      Sub aControlEventHandler(ByRef poEvent As Object)
          Dim oControl As Object
          Set oControl = CreateScriptService("SFDialogs.DialogEvent", poEvent)
          ' ...
      End Sub
  Eller med Python:
     def control_event_handler(event: uno):
         oControl = CreateScriptService('SFDialogs.DialogEvent', event)
         # ...
  Bemærk at i de foregående eksempler kan præfikset "SFDialogs." udelades, når det passer bedst.
Når du opretter en hændelseshåndtering for kontrolhændelser er det god praksis at behandle fejl indenfor subrutinen selv. Gå for eksempel ud fra, at hændelseshåndteringen nedenfor bliver kaldt, når der klikkes på knappen.
    Sub OnButtonClicked(ByRef oEvent As Object)
    On Local Error GoTo Catch
        Dim oControl As Object
        oControl = 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 forplante sig efter at dialogen er afsluttet.
I Python, brug hjemmehørende try/except-blokke til hændelseshåndtering som vist nedenfor:
    def on_button_clicked(event=None):
        try:
            oControl = CreateScriptService("DialogEvent", event)
            # Behandl hændelsen
        except Exception as e:
            # Objektet "bas" nedenfor er en instans af Basic-tjenesten
            bas.MsgBox(str(e))
  Tjenesten DialogControl er tilgængelig for disse kontroltyper:
| • Button | • FixedLine | • ListBox | • TableControl | 
Kontroltypen TabPageContainer er ikke defineret i dialogeditoren.
| Navn | Skrivebeskyttet | Type | Gældende for | Beskrivelse | 
|---|---|---|---|---|
| Border | Ja | String | Button, … | Egenskaben Border (kant) refererer til kontrolelementets kanttype: "3D", "FLAT" eller "NONE". | 
| Cancel | Nej | Boolean | Button | Angiver, om en kommandoknap har eller ikke har en Annuller-knaps adfærd. | 
| Caption | Nej | String | Button, CheckBox, FixedLine, FixedText, GroupBox, Hyperlink, RadioButton | Angiver den tekst, der er tilknyttet kontrollen. | 
| ControlType | Ja | String | Alt | En af typerne, der er oplistet ovenfor. | 
| CurrentNode | Nej | UNO- | TreeControl | Den aktuelt højeste valgte forgrening i kontroltræet. Se mere detaljeret information om XmutableTreeNode (Xforanderlig forgrening) i dokumentationen til Application Programming Interface (API). | 
| Default | Nej | Boolean | Button | Angiver, om en kommandoknap er standard-(OK)-knappen. | 
| Enabled | Nej | Boolean | Alt | Angiver, om kontrollen er tilgængelig med markøren. | 
| Format | Nej | String | DateField, TimeField, FormattedField (skrivebeskyttet) | Angiver, at formatet bruges til at vise datoer og klokkeslæt. Det skal være en af disse strenge. Til datoer: "Standard (kort)", "Standard (kort YY)", "Standard (kort YYYY)", "Standard (lang)", "DD/MM/YY", "MM/DD/YY", "YY/MM/DD", "DD/MM/YYYY", "MM/DD/YYYY" , "YYYY/MM/DD", "YY-MM-DD", "YYYY-MM-DD". Til klokkeslæt: "24t kort", "24t lang", "12t kort", "12t lang". | 
| ListCount | Ja | Long | ComboBox, ListBox, TableControl | Angiver antallet af rækker i en rulleliste (ListBox), et kombinationsfelt (ComboBox) eller et tabelkontrolelement (TableControl). | 
| ListIndex | Nej | Long | ComboBox, ListBox, TableControl | Angiver, hvilket element, der vælges i en rulleliste (ListBox), et kombinationsfelt (ComboBox) eller et tabelkontrolelement (TableControl). | 
| Locked | Nej | Boolean | ComboBox, CurrencyField, DateField, FileControl, FormattedField, ListBox, NumericField, PatternField, TextField, TimeField | Angiver, om kontrollen er skrivebeskyttet. | 
| MultiSelect | Nej | Boolean | ListBox | Angiver, om en bruger kan foretages flere valg i en rulleliste. | 
| Name | Ja | String | Alt | Kontrollens navn. | 
| Page | Nej | Integer | Alt | En dialog kan have flere sider, der kan gennemgås trin for trin af brugeren. Dialogobjektets Side-egenskab definerer, hvilken af dialogens sider, der er aktiv. En kontrols Sideegenskab definerer den side i dialogen, hvor kontrollen er synlig. | 
| Parent | Ja | Tjenesten Dialog | Alt | Objektinstansen af forældreklassen SFDialogs.Dialog. | 
| Picture | Nej | String | Button, ImageControl | Angiver, at filnavnet, der indeholder et bitmap eller en anden type grafik, vises på den angivne kontrol. Filnavnet skal leve op til attributten FileNaming i tjenesten ScriptForge.FileSystem. | 
| RootNode | Ja | UNO- | TreeControl | Et objekt, der repræsenterer den nederste rodforgrening (sædvanligvis er kun en rodforgrening af den slags) Se detaljeret information om XmutableTreeNode (Xforanderlig forgrening) i dokumentation til Application Programming Interface (API). | 
| RowSource | Nej | Array of strings | ComboBox, ListBox | Angiver de data, der er indeholdt i et kombinationsfelt eller en rulleliste. | 
| TabIndex | Ja | Numeric | All | Egenskaben TabIndex (tabulatorindeks) specificerer et kontrolelements placering i tabulatorrækkefølgen i dialogen. | 
| Text | Ja | String | ComboBox, FileControl, FormattedField, PatternField, TextField | Giver adgang til den tekst, der vises af kontrollen. | 
| TipText | Nej | String | Alt | Angiver den tekst, der vises som et værktøjstip, når du holder markøren over kontrollen. | 
| TripleState | Nej | Boolean | CheckBox | Angiver, om kontrollens afkrydsningsfelt må vises nedtonet (gråt) eller ej. | 
| URL | Nej | String | Hyperlink | URL'en, som skal åbnes, når der klikkes på kontrolelementet. | 
| Value | Nej | Variant | ||
| Visible | Nej | Boolean | Alt | Angiver, om kontrollen er skjult eller synlig. | 
| XControlModel | Ja | UNO- | Alt | UNO-objektet repræsenterer kontrolmodellen. Se detaljeret information i XControlModel og UnoControlDialogModel i APIens (Application Programming Interface) dokumentation. | 
| XControlView | Ja | UNO- | Alt | UNO-objektet repræsenterer kontrolvisningen. Se detaljeret information i XControl og UnoControlDialog i APIens (Application Programming Interface) dokumentation. | 
| XTreeDataModel | Ja | UNO- | TreeControl | UNO-objektet, der repræsenterer datamodellen for træ-kontrolelementet. Se detaljeret information om XMutableTreeDataModel (Xforanderlig datamodel) i dokumentationen til Application Programming Interface (API). | 
| XGridColumnModel | Ja | UNO- | TableControl | UNO-objektet, som repræsenterer datamodellen for tabel-kontrolelementet. Detaljeret information kan findes under XGridColumnModel i dokumentationen for Application Programming Interface (API). | 
| XGridDataModel | Ja | UNO- | TableControl | UNO-objektet, der repræsenterer datamodellen for træ-kontrolelementet. Se detaljeret funktion om XGridDataModel i dokumentationen til Application Programming Interface (API). | 
| Kontroltype | Type | Beskrivelse | 
|---|---|---|
| Button | Boolean | Kun til til/fra-knapper | 
| CheckBox | Boolsk eller heltal | 0, False: ryddet  | 
| ComboBox | String | Den valgte værdi. Egenskaben ListIndex er et alternativt valg. | 
| CurrencyField | Numerisk | |
| DateField | Date | |
| FileControl | String | Et filnavn formeret efter egenskaben FileNaming i tjenesten ScriptForge.FileSystem | 
| FormattedField | Streng eller numerisk | |
| ListBox | Steng eller matrix af strenge | De valgte rækker som en skalar eller som en matrix, afhængigt af atributten MultiSelect | 
| NumericField | Numerisk | |
| PatternField | String | |
| ProgressBar | Numerisk | Skal være inden for de foruddefinerede grænser | 
| RadioButton | Boolean | Hver knap har sit eget navn. De er sammenkædede, hver deres Tabulatorpositioner er fortløbende. Hvis en alternativknap er sat til True, sættes de andre de beslægtede knapper automatisk til False | 
| ScrollBar | Numerisk | Skal være inden for de foruddefinerede grænser | 
| TabPageContainer | Numeric | En dialog kan have adskillige nummererede faner, som kan identificeres eller ændres med deres Value-egenskab. | 
| TableControl | Array | En-dimensionel matrix med den aktuelt valgte rækkes data. | 
| TextField | String | Den tekst, der ses i feltet | 
| TimeField | Date | 
Der er ingen egenskab Value (værdi) for dialog-kontrolelementerne GroupBox (gruppefelt), Hyperlink, ImageControl (billed-kontrolelement) og TreeControl (træ-kontrolelement).
| Navn (kæde til API-hændelse) | Beskrivelse ifølge etiketten i Basic IDE | 
|---|---|
| OnActionPerformed | Udfør handling | 
| OnAdjustmentValueChanged | Under justering | 
| OnFocusGained | Når fokus modtages | 
| OnFocusLost | Når fokus mistes | 
| OnItemStateChanged | Elementstatus ændret | 
| OnKeyPressed | Tast trykket | 
| OnKeyReleased | Tast sluppet | 
| OnMouseDragged | Mus flyttet mens tast trykkes | 
| OnMouseEntered | Mus indenfor | 
| OnMouseExited | Mus udenfor | 
| OnMouseMoved | |
| OnMousePressed | Museknap trykket | 
| OnMouseReleased | Museknap sluppet | 
| (Ikke i Basic-IDE) når udvidelsesknappen trykkes på en forgrening i et kontroltræ | |
| (Ikke i Basic-IDE) når en forgrening i et kontroltræ vælges | |
| (Ikke i Basic-IDE) når en fane i et TabPage-kontrolelement vælges | |
| OnTextChanged | Tekst ændret | 
| Liste over metoder i tjenesten DialogControl | ||
|---|---|---|
Opret og returner en ny forgrening på kontroltræet som et UNO-objekt, der er underordnet en ophavsforgrening. Se detaljeret information om XMutableTreeNode (Xforanderlig forgrening) i dokumentationen til Application Programming Interface (API).
Denne metode kan eventuelt kaldes, før visning af dialogfeltet til opbygning af begyndelses-træet. Den kan også kaldes fra en dialog- eller kontrol-hændelse - med hændelsen OnNodeExpanded (ved udvidet forgrening) - så træet kan udfyldes dynamisk.
svc.AddSubNode(parentnode: uno, displayvalue: str, opt datavalue: any): uno
overordnet_forgrening: Et UNO forgreningsobjekt, af typen com.sun.star.awt.tree.XMutableTreeNode.
visningsværdi: Teksten vises i træets kontrolfelt.
dataværdi: Enhver værdi, der er forbundet med den nye forgrening. datavalue (dataværdi) kan være en streng, et tal eller en dato. Udelad argumentet, når det ikke er anvendeligt.
LibreOffice Basic- og Python-eksempler opfanger det aktuelle dokuments dialog myDialog fra biblioteket Standard.
      Dim oDlg As Object, myTree As Object, myNode As Object, theRoot As Object
      Set oDlg = CreateScriptService("Dialog",,, "myDialog")
      Set myTree = oDlg.Controls("myTreeControl")
      Set theRoot = myTree.CreateRoot("Tree top")
      Set myNode = myTree.AddSubNode(theRoot, "A branch ...")
   
     dlg = CreateScriptService('SFDialogs.Dialog', None, None, 'myDialog')
     tree = dlg.Controls('myTreeControl')
     root = tree.CreateRoot('Tree top')
     node = tree.AddSubNode(root, 'A branch ...')
   Returner True (sand), når det lykkedes at indsætte en forgrening underordnet en ophavsforgrening i et kontroltræ. Hvis ophavs-forgreningen allerede havde afkoms-forgreninger, før denne metode blev kaldt, slettes afkoms-forgreningerne.
svc.AddSubTree(parentnode: uno, flattree: any, opt withdatavalue: bool): bool
overordnet_forgrening: Et UNO-forgreningsobjekt, af typen com.sun.star.awt.tree.XMutableTreeNode.
fladt_træ: en to-dimensionel matrix, sorteret efter kolonner, der indeholder visningsværdierne. En sådan matrix kan udsendes af metoden GetRows anvendt på tjenesten SFDatabases.Database. Når et matrixelement indeholder den tekst, der skal vises, er Empty (tom) eller Null (nul), oprettes der ingen ny underforgrening og resten af rækken udelades.
      Flat tree (fladt træ)    >>>>    Resulting subtree (resulterende deltræ)
      A1	B1	C1             |__   A1	
      A1	B1	C2                   |__   B1
      A1	B2	C3                         |__  C1
      A2	B3	C4                         |__  C2
      A2	B3	C5                   |__   B2
      A3	B4	C6                         |__  C3
                             |__   A2
                                   |__   B3
                                         |__  C4
                                         |__  C5
                             |__   A3
                                   |__   B4
                                         |__  C6
   med_dataværdi: Når standardværdien False (falsk) anvendes, indeholder hver kolonne i fladt_træ den tekst, der skal vises i kontroltræet. Når True (sand), er teksterne, der skal vises (displayvalue (visningsværdi)), i kolonnerne 0, 2, 4, ... , mens dataværdierne (datavalue) er i kolonnerne 1, 3, 5, ...
      Dim myTree As Object, theRoot As Object, oDb As Object, vData As Variant
      Set myTree = myDialog.Controls("myTreeControl")
      Set theRoot = myTree.CreateRoot("By product category")
      Set oDb = CreateScriptService("SFDatabases.Database", "/home/.../mydatabase.odb")
      vData = oDb.GetRows("SELECT [Category].[Name], [Category].[ID], [Product].[Name], [Product].[ID] " _
          & "FROM [Category], [Product] WHERE [Product].[CategoryID] = [Category].[ID] " _
          & "ORDER BY [Category].[Name], [Product].[Name]")
      myTree.AddSubTree(theRoot, vData, WithDataValue := True)
   
     SQL_STMT = "SELECT [Category].[Name], [Category].[ID], [Product].[Name], [Product].[ID] \
         FROM [Category], [Product] WHERE [Product].[CategoryID] = [Category].[ID] \
         ORDER BY [Category].[Name], [Product].[Name]"
     tree = dlg.Controls('myTreeControl')
     root = tree.CreateRoot('By Product category')
     db = CreateScriptService('SFDatabases.Database', '/home/.../mydatabase.odb')
     sub_tree = db.GetRows(SQL_STMT)
     tree.AddSubTree(root, sub_tree, withdatavalue=True)
   Returnerer en ny rodforgrening på kontroltræet som et UNO-forgreningsobjekt af typen com.sun.star.awt.tree.XMutableTreeNode (Xforanderlig forgrening). Den nye rodforgrening indsættes under allerede eksisterende rodforgreninger. Se detaljeret information om XMutableTreeNode (Xforanderlig forgrening) i dokumentationen til Application Programming Interface (API).
Denne metode kan eventuelt kaldes før visning af dialogfeltet, hvor begyndelses-træet bygges. Den kunne også kaldes fra en dialog- eller kontrol-hændelse for at udfylde træet dynamisk.
svc.CreateRoot(displayvalue: str, opt datavalue: any): uno
visningsværdi: Teksten, der vises i træets kontrolfelt.
      Dim myTree As Object, myNode As Object
      Set myTree = myDialog.Controls("myTreeControl")
      Set myNode = myTree.CreateRoot("Tree starts here ...")
   
     tree = dlg.Controls('myTreeControl')
     node = tree.CreateRoot('Tree starts here ...')
   Gennemgår træet rekursivt, startende fra roden, og finder en forgrening, der opfylder nogle kriterier. Enten ved at have en visningsværdi, som matcher displayvalue-mønsteret (1 match er nok), eller ved at have en dataværdi, der er lig med datavalue. Sammenligningerne kan skelne mellem store og små bogstaver, eller ikke skelne. Den første matchende forekomst returneres som et forgrenings-UNO-objekt af typen com.sun.star.awt.tree.XMutableTreeNode. Se detaljeret information om XMutableTreeNode (Xforanderlig forgrening) i dokumentationen til Application Programming Interface (API).
Hvis den ikke findes, returnerer metoden Nothing (ingenting), som skal testes med den indbyggede funktion IsNull() (er nul()).
Den metode kan eventuelt kaldes før visning af dialogfeltet til bygning af begyndelsestræet. Den kan også kaldes fra en dialog- eller kontrol-hændelse.
svc.FindNode(displayvalue: str = '', opt datavalue: any, casesensitive = False): uno
Et af argumenterne visningsværdi eller dataværdi skal angives. Hvis begge er tilstede, er et match tilstrækkeligt til at vælge en forgrening.
visningsværdi: Det mønster, der skal matches. Se en liste over mulige jokere i metoden SF_String.IsLike() Når den er lig med en nul-længde streng (standard), søges der ikke efter denne visningsværdi.
casesensitive (forskel på store og små bogstaver): Standardværdien er False (falsk)
      Dim myTree As Object, myNode As Object
      Set myTree = myDialog.Controls("myTreeControl")
      Set myNode = myTree.FindNode("*Sophie*", CaseSensitive := True)
   
     tree = dlg.Controls('myTreeControl')
     node = FindNode('*Sophie*', casesensitive=True)
     if node is None:
         # ...
   Flytter det øverste venstre hjørne af et dialog-kontrolelement til nye koordinator og/eller ændrer dets dimensioner. Returnerer True hvis ændring af størrelse lykkedes.
svc.Resize(opt Left: int, opt Top: int, opt Width: int, opt Height: int): bool
Alle afstande er udtrykt i AppFont-måleenheder og måles fra det øverste venstre hjørne af den overordnede dialog. Uden argumenter ændrer metoden kontrolelementets størrelse til dets "foretrukne størrelse", en størrelse som tilpasses ud fra det aktuelle indhold. Udeladte argumenter ændres ikke.
Left: Den vandrette afstand fra det øverste venstre hjørne
Top: Den lodrette afstand fra det øverste venstre hjørne
Width: Den vandrette bredde af det rektangel, som indeholder kontrolelementet
Height: Den lodrette højde af det rektangel, som indeholder kontrolelementet
      Dim oControl As Object
      Set oDlg = CreateScriptService("SFDialogs.Dialog",,, "myDialog")
      Set oControl = oDlg.Controls("thisControl")
      oControl.Resize(100, 200, Height:=6000) ' Bredden ændres ikke
    
      dlg = CreateScriptService('Dialog', None, None, 'myDialog')
      ctrl = dlg.Controls('thisControl')
      ctrl.Resize(300, 200, 1500)  # Højden ændres ikke
    Sæt fokus på kontrollen. Returner True , hvis fokuseringen lykkedes.
Denne metode kaldes ofte fra en dialog eller en kontrolhændelse
svc.SetFocus(): bool
      Dim oControl As Object
      Set oDlg = CreateScriptService("SFDialogs.Dialog",,, "myDialog")
      Set oControl = oDlg.Controls("thisControl")
      oControl.SetFocus()
    
      dlg = CreateScriptService('Dialog', None, None, 'myDialog')
      ctrl = dlg.Controls('thisControl')
      ctrl.SetFocus()
    Fylder en TableControl (tabelkontrol) med de givne data. Alle forudeksisterende data ryddes, før de nye data videregives som argument.
Når TableControl (tabelkontrollen) tilføjes til dialogen, er det muligt at Basic IDE til at definere, om kolonne- og rækkeoverskrifter skal vises i tabellen. Hvis TableControl (tabelkontrollen) har kolonne- og rækkeoverskrifter, bruges den første kolonne og/eller række i det leverede datamatrix som etiketter til tabeloverskrifterne.
Denne metode returnerer True (sand), når den lykkes.
svc.SetTableData(dataarray: any[0..*, 0..*], widths: int[0..*], alignments: str, RowHeaderWidth = 10): bool
datamatrix: Data, der skal indtastes i tabellen, repræsenteret som en matrix af matrixer i Basic eller en tuple af tupler i Python. Data skal indeholde kolonne- og rækkeoverskrifter, hvis de skal vises af TableControl (tabelkontrollen).
widths: Array som indeholder de relative bredder af hver kolonne. Med andre ord betyder widths = (1, 2) at den anden kolonne er dobbelt så bred som den første. Hvis antallet af værdier i arrayet er mindre end antallet at kolonner i tabellen, så bruges den sidste værdi i arrayet til at definere bredden af de resterende kolonner.
justeringer: Definerer justeringerne i hver kolonne som en streng, hvor hvert tegn kan være "L" (Left - venstre), "C" (Center - centreret), "R" (Right - højre) eller " " (blanktegn, standard, dett vil side venstre for strenge og højre for numeriske værdier). Hvis strengens længde er kortere end antallet af kolonner i tabellen, bliver det sidste tegn i strengen brugt til at definere justeringen i de resterende kolonner.
RowHeaderWidth: Bredde af rækkeoverskrifts-kolonnen udtrykt i AppFont-måleenheder. Standard = 10. Argumentet ignoreres når TableControl (tabel-kontrolelementet) ikke har nogen rækkeoverskrift.
Det følgende eksempel antager, at dialogen myDialog har en TableControl (Tabelkontrol) kaldet Grid1 med egenskaberne "Vis rækkeoverskrift" og "Vis kolonneoverskrifter" sat til "Ja".
     Dim myDialog As Object, oTable As Object, tableData As Variant
     myDialog = CreateScriptService("Dialog", "GlobalScope", "Standard", "myDialog")
     oTable = myDialog.Controls("Grid1")
     tableData = Array("Column A", "Column B", "Column C")
     tableData = SF_Array.AppendRow(tableData, Array("Row 1", 1, 2))
     tableData = SF_Array.AppendRow(tableData, Array("Row 2", 3, 4))
     tableData = SF_Array.AppendRow(tableData, Array("Row 3", 5, 6))
     vAlignments = "LCC"
     vWidths = Array(2, 1, 1)
     oTable.SetTableData(tableData, vWidths, vAlignments)
     myDialog.Execute()
   Egenskaben Value (værdi) returnerer den valgte række i tabellen. Hvis der ikke er valgt nogen række, returneres en tom række i tabellen. Den følgende kodestump viser, hvordan der testes, hvis der ikke er valgt nogen række i tabellen.
     rowValues = oTable.Value
     If UBound(rowValues) < 0 Then
         MsgBox "Ingen række valgt."
     Else
         MsgBox "Række" & oTable.ListIndex & " er valgt."
     End If
   
     dlg = CreateScriptService("Dialog", "GlobalScope", "Standard", "myDialog")
     table_control = dlg.Controls("Grid1")
     table_data = (("Column A", "Column B", "Column C"),
                   ("Row 1", 1, 2),
                   ("Row 2", 3, 4),
                   ("Row 3", 5, 6))
     alignments = "LCC"
     widths = (100, 50, 50)
     table_control.SetTableData(table_data, widths, alignments)
     dlg.Execute()
   
     bas = CreateScriptService("Basic")
     row_values = table_control.Value
     if len(row_values) == 0:
         bas.MsgBox("No row selected.")
     else:
         bas.MsgBox(f"Row {table_control.ListIndex} is selected.")
   Tilføj en ny linje i slutningen af et tekstfelt med flere linjer. Der indsætte et linjeskift-tegn, når det er passende. Metoden returnerer True, når det er lykkedes den.
Der sættes et fejlflag, hvis den faktiske kontrol ikke er af typen TextField eller ikke har flere linjer.
svc.WriteLine(opt line: str): bool
Line (linje): Strengen, der skal indsættes. Standard er en tom linje.
      Dim oDlg As Object, oControl As Object
      Set oDlg = CreateScriptService("SFDialogs.Dialog",,, "myDialog")
      Set oControl = oDlg.Controls("thisControl")
      oControl.WriteLine("a new line")
   
     dlg = CreateScriptService('SFDialogs.Dialog', None, None, 'myDialog')
     ctrl = dlg.Controls('thisControl')
     ctr.WriteLine("a new line")