service SFDialogs.DialogControl

De service DialogControl beheert de bedieningselementen die horen bij een dialoogvenster dat is gedefinieerd met de Basic Dialog Editor. Elk exemplaar van de huidige service vertegenwoordigt een enkel besturingselement in een dialoogvenster.

De focus ligt op het verkrijgen en instellen van de waarden die worden weergegeven door de bedieningselementen van het dialoogvenster. Opmaak is toegankelijk via de eigenschappen XControlModel en XControlView.

Merk op dat de unieke inhoud van de eigenschap DialogControl.Value varieert afhankelijk van het type besturingselement.

Speciale aandacht wordt besteed aan besturingen van het type boombesturing. Het is gemakkelijk om een boom te bevolken, tak voor tak, of met een set takken tegelijk. Het vullen van een boombesturing kan statisch of dynamisch worden uitgevoerd.

tip

De service SFDialogs.DialogControl is nauw verwant aan de SFDialogs.Dialog-service.


Service aanroep

Voordat de service DialogControl gebruikt kan worden, moet de bibliotheek ScriptForge eerst worden geladen of geïmporteerd:

note

• Basic macro's kunnen de bibliotheek ScriptForge laden met de instructie:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Python scripts kunnen de module scriptforge importeren met:
from scriptforge import CreateScriptService


De service DialogControl wordt aangeroepen vanuit een bestaande instantie van de service Dialog via de methode Controls(). Het dialoogvenster moet worden gestart met de service 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 started at " & Now()
      myDialog.Execute()
      ' ... de werkelijke waarden van de besturing verwerken
      myDialog.Terminate()
   

     from time import localtime, strftime
     dlg = CreateScriptService('SFDialogs.Dialog', 'GlobalScope', lib_name, dlg_name)
     text = dlg.Controls('myTextBox')
     text.Value = "Dialog started at " + strftime("%a, %d %b %Y %H:%M:%S", localtime())
     dlg.Execute()
     # ... de werkelijke waarden van de besturing verwerken
     dlg.Terminate()
   

De DialogControl-instantie ophalen die een besturingsgebeurtenis heeft geactiveerd

Een instantie van de DialogControl-service kan worden opgehaald via de SFDialogs.DialogEvent-service, op voorwaarde dat de dialoog is gestart met de Dialog-service. In het onderstaande voorbeeld bevat oControl de instantie DialogControl die de control-gebeurtenis heeft geactiveerd.


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

Of Python gebruiken:


     def control_event_handler(event: uno):
         oControl = CreateScriptService('SFDialogs.DialogEvent', event)
         # ...
  

Merk op dat in de voorgaande voorbeelden het voorvoegsel "SFDialogs." kan worden weggelaten wanneer dit passend wordt geacht.

Uitzonderingen afhandelen in eventhandlers

Bij het maken van een gebeurtenishandler voor besturingsgebeurtenissen is het een goede gewoonte om fouten binnen de subroutine zelf af te handelen. Stel bijvoorbeeld dat de onderstaande gebeurtenishandler wordt aangeroepen wanneer op de knop wordt geklikt.


    Sub OnButtonClicked(ByRef oEvent As Object)
    On Local Error GoTo Catch
        Dim oControl As Object
        oControl = CreateScriptService("DialogEvent", oEvent)
        ' De gebeurtenis verwerken
        Exit Sub
    Catch:
        MsgBox SF_Exception.Description
        SF_Exception.Clear
    End Sub
  
tip

SF_Exception.Clear aanroepen als u niet wilt dat de fout zich voortplant, nadat de uitvoering van het dialoogvenster is beëindigd.


Gebruik in Python native try/except-blokken voor het afhandelen van uitzonderingen, zoals hieronder getoond:


    def on_button_clicked(event=None):
        try:
            oControl = CreateScriptService("DialogEvent", event)
            # De gebeurtenis verwerken
        except Exception as e:
            # Het object "bas" hieronder is een instantie van de Basic-service
            bas.MsgBox(str(e))
  

Besturingstypen

De service DialogControl is beschikbaar voor deze besturingstypen:

• Button
• CheckBox
• ComboBox
• CurrencyField
• DateField
• FileControl

• FixedLine
• FixedText
• FormattedField
• GroupBox
• Hyperlink
• ImageControl

• ListBox
• NumericField
• PatternField
• ProgressBar
• RadioButton
• ScrollBar

• TableControl
• TextField
• TimeField
• TreeControl


Eigenschappen

Naam

AlleenLezen

Type

Toepasbaar op

Beschrijving

Border

Ja

String

Button, …

De eigenschap Border verwijst naar de omgeving van het besturingselement: 3D, FLAT of NONE.

Cancel

Nee

Boolean

Button

Geeft aan of een opdrachtknop het gedrag van een knop Annuleren heeft of niet.

Caption

Nee

String

Button, CheckBox, FixedLine, FixedText, GroupBox, Hyperlink, RadioButton

Specificeert de tekst die bij het besturingselement hoort.

ControlType

Ja

String

Alle

Een van de hierboven genoemde soorten.

CurrentNode

Nee

UNO
-object

TreeControl

Het momenteel bovenste knooppunt dat is geselecteerd in de boomstructuur. Raadpleeg XmutableTreeNode in de Application Programming Interface (API)-documentatie voor gedetailleerde informatie.

Default

Nee

Boolean

Button

Geeft aan of een opdrachtknop de standaardknop (OK) is.

Enabled

Nee

Boolean

Alle

Geeft aan of het besturingselement toegankelijk is met de cursor.

Format

Nee

String

DateField, TimeField, FormattedField

(alleen-lezen)

Specificeert de opmaak dat wordt gebruikt om datums en tijden weer te geven. Het moet een van deze tekenreeksen zijn:

Voor datums: "Standard (short)", "Standard (short YY)", "Standard (short YYYY)", "Standard (long)", "DD/MM/YY", "MM/DD/YY", "YY/MM/DD", "DD/MM/YYYY", "MM/DD/YYYY" , "YYYY/MM/DD", "YY-MM-DD", "YYYY-MM-DD".

Voor tijden: "24h short", "24h long", "12h short", "12h long".

ListCount

Ja

Long

ComboBox, ListBox, TableControl

Specificeert het aantal rijen in een Keuzelijst, een Keuzelijst met invoerveld of een Tabelbesturing.

ListIndex

Nee

Long

ComboBox, ListBox, TableControl

Specificeert welk item is geselecteerd in een Keuzelijst, een Keuzelijst met invoerveld of een Tabelbesturing.

Locked

Nee

Boolean

ComboBox, CurrencyField, DateField, FileControl, FormattedField, ListBox, NumericField, PatternField, TextField, TimeField

Geeft aan of het besturingselement alleen-lezen is.

MultiSelect

Nee

Boolean

ListBox

Geeft aan of een gebruiker meerdere selecties kan maken in een keuzelijst.

Name

Ja

String

Alle

De naam van het besturingselement.

Page

Nee

Integer

Alle

Een dialoog kan meerdere bladen hebben die stap voor stap door de gebruiker kunnen worden doorlopen. De eigenschap Page van het Dialog-object definieert welke pagina van het dialoogvenster actief is.

De eigenschap Page van een besturingselement definieert de pagina van het dialoogvenster waarop het besturingselement zichtbaar is.

Parent

Ja

service Dialog

Alle

De bovenliggende SFDialogs.Dialog klasseobjectinstantie.

Picture

Nee

String

Button, ImageControl

Specificeert de bestandsnaam die een bitmap of ander type afbeelding bevat die moet worden weergegeven op het opgegeven besturingselement. De bestandsnaam moet voldoen aan het kenmerk FileNaming van de service ScriptForge.FileSystem.

RootNode

Ja

UNO
-object

TreeControl

Een object dat het laagste wortelknooppunt vertegenwoordigt (meestal is er maar één zo'n wortelknooppunt). Raadpleeg XmutableTreeNode in de Application Programming Interface (API)-documentatie voor gedetailleerde informatie.

RowSource

Nee

Array of strings

ComboBox, ListBox

Specificeert de gegevens in een keuzelijst met invoervak of een keuzelijst.

TabIndex

Ja

Numeric

All

De eigenschap TabIndex specificeert de plaats van een besturingselement in de tabvolgorde in het dialoogvenster.

Text

Ja

String

ComboBox, FileControl, FormattedField, PatternField, TextField

Geeft toegang tot de tekst die door het besturingselement wordt weergegeven.

TipText

Nee

String

Alle

Hiermee geeft u de tekst op die als knopinfo wordt weergegeven wanneer u de muisaanwijzer boven het besturingselement houdt.

TripleState

Nee

Boolean

CheckBox

Geeft aan of het keuzevakje gedimd (grijs) kan worden weergegeven of niet.

URL

Nee

String

Hyperlink

De URL die moet worden geopend wanneer op het besturingselement wordt geklikt.

Value

Nee

Variant

Raadpleeg Waarde-eigenschappen

Visible

Nee

Boolean

Alle

Geeft aan of het besturingselement verborgen of zichtbaar is.

XControlModel

Ja

UNO
-object

Alle

Het UNO-object dat het besturingsmodel vertegenwoordigt. Raadpleeg XControlModel en UnoControlDialogModel in de Application Programming Interface (API)-documentatie voor gedetailleerde informatie.

XControlView

Ja

UNO
-object

Alle

Het UNO-object dat de controleweergave vertegenwoordigt. Raadpleeg XControl en UnoControlDialog in de Application Programming Interface (API)-documentatie voor gedetailleerde informatie.

XTreeDataModel

Ja

UNO
-object

TreeControl

Het UNO-object dat het boombesturingsgegevensmodel vertegenwoordigt. Raadpleeg XMutableTreeDataModel in de Application Programming Interface (API)-documentatie voor gedetailleerde informatie.


De Waarde-eigenschappen

Type besturingselement

Type

Beschrijving

Button

Boolean

Alleen voor aan/uit knoppen

CheckBox

Booleaans of geheel getal

0, False: niet aangevinkt
1, True: aangevinkt
2: uitgegrijsd, weet niet

ComboBox

String

De geselecteerde aardwachter. De karakteristieke ListIndex is een alternatieve optie.

CurrencyField

Numeriek

DateField

Date

FileControl

String

Een bestandsnaam die is opgemaakt in overeenstemming met de eigenschap FileNaming van de service ScriptForge.FileSystem

FormattedField

Tekenreeks of numeriek

ListBox

Tekenreeks of matrix van tekenreeksen

De geselecteerde rij(en) als scalair of als matrix, afhankelijk van de attribuut MultiSelect

NumericField

Numeriek

PatternField

String

ProgressBar

Numeriek

Moet binnen de vooraf gedefinieerde grenzen vallen

RadioButton

Boolean

Elke knop heeft zijn eigen naam. Ze zijn aan elkaar gekoppeld als hun TAB-posities aaneengesloten zijn. Als een keuzerondje is ingesteld op True, worden de andere gerelateerde knoppen automatisch ingesteld op False

ScrollBar

Numeriek

Moet binnen de vooraf gedefinieerde grenzen vallen

TableControl

Array

Eendimensionale matrix met de gegevens van de momenteel geselecteerde rij.

TextField

String

De tekst die in het veld verschijnt

TimeField

Date


note

Er is geen eigenschap Value voor de dialoogvensterbesturingselementen GroupBox, Hyperlink, ImageControl en TreeControl.


Eigenschappen gebeurtenis

On… eigenschappen retourneren een URI-tekenreeks met de verwijzing naar het script dat door de gebeurtenis wordt geactiveerd. On… eigenschappen kunnen programmatisch worden ingesteld.
Lees de specificatie ervan in het scriptingframework URI-specificatie.

Naam

AlleenLezen

Beschrijving zoals aangegeven in de Basic IDE

OnActionPerformed

Ja

Actie uitvoeren

OnAdjustmentValueChanged

Ja

Tijdens aanpassen

OnFocusGained

Ja

Bij het verkrijgen van focus

OnFocusLost

Ja

Bij het verliezen van focus

OnItemStateChanged

Ja

Itemstatus gewijzigd

OnKeyPressed

Ja

Toets ingedrukt

OnKeyReleased

Ja

Toets losgelaten

OnMouseDragged

Ja

Muis bewogen tijdens toetsaanslagen

OnMouseEntered

Ja

Muis binnen

OnMouseExited

Ja

Muis buiten

OnMouseMoved

Ja

Muis bewogen

OnMousePressed

Ja

Muisknop ingedrukt

OnMouseReleased

Ja

Muisknop losgelaten

OnNodeExpanded

Nee

(Niet in Basic IDE) wanneer de uitbreidingsknop wordt ingedrukt op een knooppunt in een boomstructuur

OnNodeSelected

Nee

(Niet in Basic IDE) wanneer een knooppunt in een boomstructuur is geselecteerd

OnTextChanged

Ja

Tekst aangepast


warning

Het toewijzen van gebeurtenissen via de Basic IDE en het toewijzen van gebeurtenissen via macro's sluiten elkaar uit.


Methoden

Lijst met methoden in de service DialogControl

AddSubNode
AddSubTree
CreateRoot

FindNode
Resize
SetFocus

SetTableData
WriteLine


AddSubNode

Maak en retourneer een nieuw knooppunt van de boomstructuur als een UNO-object dat ondergeschikt is aan een bovenliggend knooppunt. Raadpleeg XMutableTreeNode in de Application Programming Interface (API)-documentatie voor gedetailleerde informatie.

Deze methode kan worden aangeroepen voordat het dialoogvenster wordt weergegeven om de initiële boomstructuur te bouwen. Het kan ook worden aangeroepen vanuit een dialoog of controlegebeurtenis - met behulp van de gebeurtenis OnNodeExpanded - om de boom dynamisch te voltooien.

Syntaxis:

svc.AddSubNode(parentnode: uno, displayvalue: str, opt datavalue: any): uno

Parameters:

parentnode: Een knooppunt UNO-object, van het type com.sun.star.awt.tree.XMutableTreeNode.

displayvalue: De tekst die in de boomstructuur verschijnt.

datavalue: Elke waarde die is gekoppeld aan het nieuwe knooppunt. datavalue kan een tekenreeks, een getal of een datum zijn. Laat het argument weg als het niet van toepassing is.

Voorbeeld:

LibreOffice Basic- en Python-voorbeelden halen het dialoogvenster myDialog van het huidige document uit de bibliotheek Standard.

In BASIC

      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 ...")
   
In Python

     dlg = CreateScriptService('SFDialogs.Dialog', None, None, 'myDialog')
     tree = dlg.Controls('myTreeControl')
     root = tree.CreateRoot('Tree top')
     node = tree.AddSubNode(root, 'A branch ...')
   

AddSubTree

Retourneert True wanneer een subboom, ondergeschikt aan een bovenliggend knooppunt, met succes in een boomstructuur kon worden ingevoegd. Als het bovenliggende knooppunt al onderliggende knooppunten had voordat deze methode werd aangeroepen, worden de onderliggende knooppunten gewist.

Deze methode kan worden aangeroepen voordat het dialoogvenster wordt weergegeven om de initiële boomstructuur te bouwen. Het kan ook worden aangeroepen vanuit een dialoog of controlegebeurtenis - met behulp van de gebeurtenis OnNodeExpanded - om de boom dynamisch te voltooien.

Syntaxis:

svc.AddSubTree(parentnode: uno, flattree: any, opt withdatavalue: bool): bool

Parameters:

parentnode: Een knooppunt UNO-object, van het type com.sun.star.awt.tree.XMutableTreeNode.

flattree: een tweedimensionale matrix gesorteerd op de kolommen die de weergegeven waarden bevatten. Een dergelijke matrix kan worden uitgegeven door de methode GetRows die wordt toegepast op de service SFDatabases.Database. Als een matrix-item dat de tekst bevat die moet worden weergegeven, Empty of Null is, wordt er geen nieuwe subnode gemaakt en wordt de rest van de rij overgeslagen.


      Flat tree    >>>>    Resulterende subboom
      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
   

withdatavalue: Als de standaardwaarde False wordt gebruikt, bevat elke kolom van flattree de tekst die moet worden weergegeven in de boomstructuur. Wanneer True, staan de teksten die moeten worden weergegeven (displayvalue) in kolommen 0, 2, 4, ... terwijl de gegevenswaarden (datavalue) staan in kolommen 1, 3, 5, ...

Voorbeeld:

In BASIC

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

     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)
   

CreateRoot

Retourneert een nieuw hoofdknooppunt van het boombesturingselement, als een knooppunt UNO-object van het type com.sun.star.awt.tree.XMutableTreeNode. De nieuwe boomwortel wordt ingevoegd onder reeds bestaande wortelknooppunten. Raadpleeg XMutableTreeNode in de Application Programming Interface (API)-documentatie voor gedetailleerde informatie.

Deze methode kan worden aangeroepen voordat het dialoogvenster wordt weergegeven om de initiële boomstructuur te bouwen. Het kan ook worden aangeroepen vanuit een dialoogvenser of besturingsgebeurtenis om de boom dynamisch te voltooien.

Syntaxis:

svc.CreateRoot(displayvalue: str, opt datavalue: any): uno

Parameters:

displayvalue: De tekst die in de boomstructuur verschijnt.

datavalue: Elke waarde die is gekoppeld aan het nieuwe knooppunt. datavalue kan een tekenreeks, een getal of een datum zijn. Laat het argument weg als het niet van toepassing is.

Voorbeeld:

In BASIC

      Dim myTree As Object, myNode As Object
      Set myTree = myDialog.Controls("myTreeControl")
      Set myNode = myTree.CreateRoot("Tree starts here ...")
   
In Python

     tree = dlg.Controls('myTreeControl')
     node = tree.CreateRoot('Tree starts here ...')
   

FindNode

Doorloopt de boom en vindt recursief, beginnend bij de wortel, een knoop die aan een aantal criteria voldoet. Ofwel - 1 overeenkomst is genoeg - waarbij de weergavewaarde overeenkomt met het patroon displayvalue of de gegevenswaarde gelijk is aan datavalue. De vergelijkingen kunnen al dan niet hoofdlettergevoelig zijn. Het eerste overeenkomende exemplaar wordt geretourneerd als een knooppunt UNO-object van het type com.sun.star.awt.tree.XMutableTreeNode. Raadpleeg XMutableTreeNode in de Application Programming Interface (API)-documentatie voor gedetailleerde informatie.

Indien niet gevonden, retourneert de methode Nothing, om te testen met de ingebouwde functie IsNull().

Deze methode kan worden aangeroepen voordat het dialoogvenster wordt weergegeven om de initiële boomstructuur te bouwen. Het kan ook worden aangeroepen vanuit een dialoog of besturingsgebeurtenis.

Syntaxis:

svc.FindNode(displayvalue: str = '', opt datavalue: any, casesensitive = False): uno

Parameters:

Eén argument uit displayvalue of datavalue moet worden opgegeven. Als beide aanwezig zijn, is één overeenkomst voldoende om het knooppunt te selecteren.

displayvalue: het patroon waaraan moet worden gekoppeld. Raadpleeg de SF_String.IsLike() methode voor de lijst met mogelijke jokertekens. Als deze gelijk is aan de tekenreeks met lengte nul (standaard), wordt er niet naar deze weergavewaarde gezocht.

datavalue: Elke waarde die is gekoppeld aan het nieuwe knooppunt. datavalue kan een tekenreeks, een getal of een datum zijn. Laat het argument weg als het niet van toepassing is.

Hoofdlettergevoelig : Standaardwaarde is False

Voorbeeld:

In BASIC

      Dim myTree As Object, myNode As Object
      Set myTree = myDialog.Controls("myTreeControl")
      Set myNode = myTree.FindNode("*Sophie*", CaseSensitive := True)
   
In Python

     tree = dlg.Controls('myTreeControl')
     node = FindNode('*Sophie*', casesensitive=True)
     if node is None:
         # ...
   

Resize

Verplaats de linkerbovenhoek van een dialoogvensterbesturingselement naar nieuwe coördinaten en/of wijzig de afmetingen ervan. Retourneert True als het wijzigen van de grootte is gelukt.

Syntaxis:

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

Parameters:

Alle afstanden worden uitgedrukt in Map AppFont unit en worden gemeten vanaf de linkerbovenhoek van het bovenliggende dialoogvenster. Zonder argumenten past de methode het besturingselement aan naar de "voorkeursgrootte", een grootte die wordt aangepast afhankelijk van de feitelijke inhoud ervan. Ontbrekende argumenten blijven ongewijzigd.

Left: De horizontale afstand vanaf de linkerbovenhoek

Top: De verticale afstand vanaf de linkerbovenhoek

Width: de horizontale breedte van de rechthoek met het besturingselement

Height: de verticale hoogte van de rechthoek met het besturingselement

Voorbeeld:

In BASIC

      Dim oControl As Object
      Set oDlg = CreateScriptService("SFDialogs.Dialog",,, "myDialog")
      Set oControl = oDlg.Controls("thisControl")
      oControl.Resize(100, 200, Height:=6000) ' Breedte is ongewijzigd
    
In Python

      dlg = CreateScriptService('Dialog', None, None, 'myDialog')
      ctrl = dlg.Controls('thisControl')
      ctrl.Resize(300, 200, 1500)  # Hoogte is ongewijzigd
    

SetFocus

Stel de focus op de besturing. Retourneer True als het scherpstellen gelukt is.

Deze methode wordt vaak aangeroepen vanuit een dialoog of controlegebeurtenis.

Syntaxis:

svc.SetFocus(): bool

Voorbeeld:

In BASIC

      Dim oControl As Object
      Set oDlg = CreateScriptService("SFDialogs.Dialog",,, "myDialog")
      Set oControl = oDlg.Controls("thisControl")
      oControl.SetFocus()
    
In Python

      dlg = CreateScriptService('Dialog', None, None, 'myDialog')
      ctrl = dlg.Controls('thisControl')
      ctrl.SetFocus()
    

SetTableData

Vult een TableControl met de gegeven gegevens. Alle reeds bestaande gegevens worden gewist voordat de nieuwe gegevens worden ingevoerd die als argument zijn doorgegeven.

Wanneer de TableControl aan het dialoogvenster is toegevoegd, is het mogelijk om de Basic IDE te gebruiken om te definiëren of kolom- en rijkoppen in de tabel worden weergegeven. Als de TableControl kolom- en/of rijkoppen heeft, worden de eerste kolom en/of rij in de verstrekte gegevensmatrix gebruikt als labels voor de tabelkoppen.

Deze methode retourneert True wanneer succesvol.

Syntaxis:

svc.SetTableData(dataarray: any[0..*, 0..*], widths: int[0..*], alignments: str, RowHeaderWidth = 10): bool

Parameters:

dataarray: Gegevens die in de tabel moeten worden ingevoerd, worden weergegeven als een matrix van marixen in Basic of een tupel van tupels in Python. De gegevens moeten kolom- en rijkoppen bevatten als ze moeten worden weergegeven door de TableControl.

widths: Matrix met de relatieve breedte van elke kolom. Met andere woorden: widths = (1, 2) betekent dat de tweede kolom twee keer zo breed is als de eerste. Als het aantal waarden in de matrix kleiner is dan het aantal kolommen in de tabel, wordt de laatste waarde in de matrix gebruikt om de breedte van de overige kolommen te definiëren.

alignments: Definieert de uitlijning in elke kolom als een tekenreeks waarin elk teken "L" (Links), "C" (Midden), "R" (Rechts) of " " kan zijn (witruimte, standaard, wat betekent dat links voor tekenreeksen en rechts voor numerieke waarden). Als de lengte van de tekenreeks korter is dan het aantal kolommen in de tabel, wordt het laatste teken in de tekenreeks gebruikt om de uitlijning van de resterende kolommen te definiëren.

RowHeaderWidth: breedte van de rijkopkolom, uitgedrukt in Map AppFont units. Standaard = 10. Het argument wordt genegeerd als TableControl geen rijkop heeft.

Voorbeeld:

In BASIC

In het volgende voorbeeld wordt ervan uitgegaan dat het dialoogvenster myDialog een TableControl heeft met de naam Grid1 met de eigenschappen "Rijkop weergeven" en "Kolomkop weergeven" ingesteld op "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()
   

De eigenschap Value retourneert de geselecteerde rij in de tabel. Als er geen rij is geselecteerd, wordt een leeg Matrix-object geretourneerd. Het volgende codefragment laat zien hoe u kunt testen of een rij in de tabel is geselecteerd.


     rowValues = oTable.Value
     If UBound(rowValues) < 0 Then
         MsgBox "Geen rij geselecteerd."
     Else
         MsgBox "Rij " & oTable.ListIndex & " is geselecteerd."
     End If
   
In Python

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

WriteLine

Voeg een nieuwe regel toe aan het einde van een tekstveld met meerdere regels. Waar nodig wordt een teken voor een nieuwe regel ingevoegd. De methode retourneert True wanneer succesvol.

Er treedt een fout op als het feitelijke besturingselement niet van het type TextField is of niet uit meerdere regels bestaat.

Syntaxis:

svc.WriteLine(opt line: str): bool

Parameters:

Line: De tekenreeks die moet worden ingevoegd. Standaard is een lege regel.

Voorbeeld:

In BASIC

      Dim oDlg As Object, oControl As Object
      Set oDlg = CreateScriptService("SFDialogs.Dialog",,, "myDialog")
      Set oControl = oDlg.Controls("thisControl")
      oControl.WriteLine("a new line")
   
In Python

     dlg = CreateScriptService('SFDialogs.Dialog', None, None, 'myDialog')
     ctrl = dlg.Controls('thisControl')
     ctr.WriteLine("a new line")
   
warning

Alle ScriptForge Basic-routines of variabelen die beginnen met een underscore "_" zijn voor intern gebruik. Gebruik deze niet in een Basic of Python-macro.


Help ons, alstublieft!