Storitev SFDialogs.DialogControl

Storitev DialogControl upravlja s kontrolniki, ki pripadajo pogovornemu oknu, določenemu z Urejevalnikom pogovornih oken Basica. Vsaka instanca trenutne storitve predstavlja posamezen kontrolnik v pogovornem oknu.

Pozornost je nastavljena na pridobivanje in določanje vrednosti, prikazanih na kontrolnikih pogovornega okna. Oblikovanje je dostopno prek lastnosti XControlModel in XControlView.

Upoštevajte, da so enkratne vsebine lastnosti DialogControl.Value razlikujejo glede na vrsto kontrolnika.

Posebna pozornost velja za drevesne kontrolnike. Drevo je enostavno napolniti: vejo po vejo ali pa z množico vej naenkrat. Napolnjevanje drevesnega kontrolnika se lahko izvede statično ali dinamično.

tip

Storitev SFDialogs.DialogControl je sorodna s storitvijo SFDialogs.Dialog.


Priklic storitve

Pred uporabo storitve DialogControl je potrebno naložiti ali uvoziti knjižnico ScriptForge:

note

• Za makre Basic mora biti naložena knjižnica ScriptForge z naslednjim ukazom:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Za skripte Python mora biti opravljen uvoz iz modula scriptforge:
from scriptforge import CreateScriptService


Storitev DialogControl prikličemo iz obstoječe instance storitve Dialog prek njene metode Controls(). Pogovorno okno mora biti inicializirano s storitvijo SFDialogs.Dialog.

Dim myDialog As Object, myControl As Object
Set myDialog = CreateScriptService("SFDialogs.Dialog", "GlobalScope", myLibrary, DialogName)
Set myControl = myDialog.Controls("myTextBox")
myControl.Value = "Pogovorno okno zagnano: " & Now()
myDialog.Execute()
' ... obdelaj trenutne vrednosti kontrolnikov
myDialog.Terminate()
from time import localtime, strftime
dlg = CreateScriptService('SFDialogs.Dialog', 'GlobalScope', lib_name, dlg_name)
text = dlg.Controls('myTextBox')
text.Value = "Pogovorno okno zagnano: " + strftime("%a, %d %b %Y %H:%M:%S", localtime())
dlg.Execute()
# ... obdelaj trenutne vrednosti kontrolnikov
dlg.Terminate()

Pridobivanje instance storitve DialogControl, ki je sprožila nadzorni dogodek

Instanco DialogControl lahko pridobite tudi prek storitve SFDialogs.DialogEvent, če je pogovorno okno nastalo s storitvijo Dialog. V spodnjem primeru oControl vsebuje instanco storitve DialogControl, ki je sprožila nadzorni dogodek.

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

Ali z uporabo Pythona:

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

V prejšnjih primerih ste morda opazili, da lahko predpono "SFDialogs." izpustite, ko je to ustrezno.

Ravnanje z izjemami v krmilnikih dogodkov

Dobra praksa pri ustvarjanju krmilnika dogodkov za nadzor dogodkov je, da upravljate z napakami v samem podprogramu. Primer: predpostavimo, da je spodnji krmilnik dogodkov klican, ko je kliknjen gumb.

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

Kličite SF_Exception.Clear, če ne želite, da se napaka širi naprej, potem ko se je izvajanje pogovornega okna zaključilo.


V Pythonu uporabite domorodne bloke try/except za ravnanje z izjemami, kot je prikazano spodaj:

def on_button_clicked(event=None):
    try:
        oControl = CreateScriptService("DialogEvent", event)
        # Obravnava dogodka
    except Exception as e:
        # Spodnji predmet »bas« je instanca storitve Basic
        bas.MsgBox(str(e))

Vrste kontrolnikov

Storitev DialogControl je na voljo za naslednje vrste kontrolnikov:

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

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

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

• TableControl
• TextField
• TimeField
• TreeControl


Lastnosti

Ime

Samo za branje

Vrsta

Uporabno za

Opis

Border

Da

String

Button, …

Lastnost Border se nanaša na obrobo kontrolnika: 3D, FLAT ali NONE.

Cancel

Ne

Boolean

Button

Določa, ali ima ukazni gumb vlogo gumba Prekliči.

Caption

Ne

String

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

Določa besedilo, povezano s kontrolnikom.

ControlType

Da

String

Vse

Ena od zgoraj navedenih vrst.

CurrentNode

Ne

Predmet
UNO

TreeControl

Trenutno najvišje izbrano vozlišče v drevesnem kontrolniku. Podrobnosti si oglejte v dokumentaciji API-ja (Application Programming Interface) XmutableTreeNode.

Default

Ne

Boolean

Button

Določa, ali je gumb za uka privzeti gumb (V redu oz. OK).

Enabled

Ne

Boolean

Vse

Določa, ali je kontrolnik dosegljiv s kazalko.

Format

Ne

String

DateField, TimeField, FormattedField

(samo za branje)

Določa obliko za prikaz datumov in časov. Možni so le naslednji nizi:

Za datume: "Standard (short)" (standardni kratki), "Standard (short YY)" (standardni kratki LL), "Standard (short YYYY)" (standardni kratki LLLL), "Standard (long)" (standardni dolgi), "DD/MM/YY" (DD/MM/LL), "MM/DD/YY" (MM/DD/LL), "YY/MM/DD" (LL/MM/DD), "DD/MM/YYYY" (DD/MM/LLLL), "MM/DD/YYYY" (MM/DD/LLLL), "YYYY/MM/DD" (LLLL/MM/DD), "YY-MM-DD" (LL-MM-DD), "YYYY-MM-DD" (LLLL-MM-DD).

Za čase: "24h short" (kratek 24-urni), "24h long" (dolgi 24-urni), "12h short" (kratki 12-urni), "12h long" (dolgi 12-urni).

ListCount

Da

Long

ComboBox, ListBox, TableControl

Določa število vrstic v seznamskem polju (ListBox), kombiniranem polju (ComboBox) ali kontrolniku tabele (TableControl).

ListIndex

Ne

Long

ComboBox, ListBox, TableControl

Določa, kateri element je izbran v seznamskem polju, kombiniranem polju ali kontrolniku tabele).

Locked

Ne

Boolean

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

Določa, ali je kontrolnik samo za branje.

MultiSelect

Ne

Boolean

ListBox

Določa, ali lahko uporabnik v seznamskem polju izbere več možnosti.

Name

Da

String

Vse

Ime kontrolnika.

Page

Ne

Integer

Vse

Pogovorno okno ima lahko več strani, med katerimi uporabnik napreduje po korakih. Lastnost Page predmeta Dialog določa, katera stran pogovornega okna je aktivna.

Lastnost Page kontrolnika določa stran pogovornega okna, na kateri je kontrolnik viden.

Parent

Da

Storitev
Dialog

Vse

Nadrejena instanca predmeta razreda SFDialogs.Dialog.

Picture

Ne

String

Button, ImageControl

Določa ime datoteke, ki vsebuje bitno sliko ali drugo vrsto grafike, ki bo prikazana v navedenem kontrolniku. Ime datoteke mora biti skladno z atributom FileNaming storitve ScriptForge.FileSystem.

RootNode

Da

Predmet
UNO

TreeControl

Predmet, ki predstavlja najnižje korensko vozlišče (običajno obstaja le eno takšno korensko vozlišče). Podrobnosti si oglejte v dokumentaciji API-ja (Application Programming Interface) XmutableTreeNode.

RowSource

Ne

Array of strings

ComboBox, ListBox

Določa podatke, vsebovane v kombiniranem ali seznamskem polju.

TabIndex

Da

Numeric

All

Lastnost TabIndex določa mesto kontrolnika v tabulatorskem zaporedju v pogovornem oknu.

Text

Da

String

ComboBox, FileControl, FormattedField, PatternField, TextField

Omogoča dostop do besedila, ki ga prikaže kontrolnik.

TipText

Ne

String

Vse

Določa besedilo, ki bo prikazano kot namig, ko s kazalcem miške postojite nad kontrolnikom.

TripleState

Ne

Boolean

CheckBox

Določa, ali se kontrolnik potrditvenega polja lahko izriše matirano (osivelo).

URL

Ne

String

Hyperlink

URL, ki se odpre ob kliku kontrolnika.

Value

Ne

Variant

Glejte Vlastnost Value

Visible

Ne

Boolean

Vse

Določa, ali je kontrolnik skrit ali viden.

XControlModel

Da

Predmet
UNO

Vse

Predmet UNO, ki predstavlja model kontrolnika. Podrobnosti si oglejte v dokumentaciji API-ja za XControlModel in UnoControlDialogModel.

XControlView

Da

Predmet
UNO

Vse

Predmet UNO, ki predstavlja pogled kontrolnika. Podrobnosti si oglejte v dokumentaciji API-ja za XControl in UnoControlDialog.

XTreeDataModel

Da

Predmet
UNO

TreeControl

Predmet UNO, ki predstavlja podatkovni model drevesnega kontrolnika. Podrobnosti si oglejte v dokumentaciji API-ja za XMutableTreeDataModel.


Lastnost Value

Vrsta kontrolnika

Vrsta

Opis

Button

Boolean

Samo za preklopne gumbe

CheckBox

Logična vrednost ali celo število

0, False: ni preverjeno
1, True: preverjeno
2: osivelo, ni znano

ComboBox

String

Izbrana vrednost. Lastnost ListIndex je alternativna možnost.

CurrencyField

Številska

DateField

Date

FileControl

String

Ime datoteke, oblikovano v skladu z lastnostjo FileNaming storitve ScriptForge.FileSystem.

FormattedField

Niz ali številska

ListBox

Niz ali polje nizov

Izbrane vrstice kot skalar ali polje, odvisno od atributa MultiSelect

NumericField

Številska

PatternField

String

ProgressBar

Številska

Mora biti v okviru vnaprej določenih meja

RadioButton

Boolean

Vsak gumb ima svoje ime. Povezani so, če so njihovi položaji tabulatorjev zvezni. Če je izbirni gumb nastavljen na True, se drugi povezani izbirni gumbi samodejno nastavijo na False

ScrollBar

Številska

Mora biti v okviru vnaprej določenih meja

TableControl

Array

Enodimenzionalno polje s podatki trenutno izbrane vrstice.

TextField

String

Besedilo, ki se pojavi v polju

TimeField

Date


note

Kontrolniki pogovornih oken GroupBox, Hyperlink, ImageControl in TreeControl nimajo lastnosti Value.


Lastnosti dogodka

Lastnosti On… vrnejo niz URI s sklicem na skript, ki ga je dogodek sprožil. Lastnosti On… lahko nastavite programsko.
Preberite njegovo specifikacijo v specifikaciji URI ogrodja skriptanja (v angl.).

Ime

Samo za branje

Opis, kot je označen v Basic IDE

OnActionPerformed

Da

Izvrši dejanje

OnAdjustmentValueChanged

Da

Med prilagajanjem

OnFocusGained

Da

Ob pridobljeni pozornosti

OnFocusLost

Da

Ob izgubljeni pozornosti

OnItemStateChanged

Da

Stanje elementa spremenjeno

OnKeyPressed

Da

Tipka pritisnjena

OnKeyReleased

Da

Tipka sproščena

OnMouseDragged

Da

Miška premaknjena ob pritisnjeni tipki

OnMouseEntered

Da

Kazalec miške znotraj

OnMouseExited

Da

Kazalec miške zunaj

OnMouseMoved

Da

Miška premaknjena

OnMousePressed

Da

Gumb miške pritisnjen

OnMouseReleased

Da

Gumb miške sproščen

OnNodeExpanded

Ne

(Ni v Basic IDE) ko je pritisnjen gumb razpostiranja v drevesnem kontrolniku

OnNodeSelected

Ne

(Ni v Basic IDE) ko je vozlišče v drevesnem kontrolniku izbrano

OnTextChanged

Da

Besedilo spremenjeno


warning

Dodeljevanje dogodkov prek Basic IDE in dodeljevanje dogodkov prek makrov je medsebojno izključujoče.


Metode

Seznam metod storitve DialogControl

AddSubNode
AddSubTree
CreateRoot

FindNode
Resize
SetFocus

SetTableData
WriteLine


AddSubNode

Ustvari in vrne novo vozlišče kontrolnika drevesa kot podrejenega predmeta UNO nadrejenemu vozlišču+. Podrobnosti si oglejte v dokumentaciji API-ja za XMutableTreeNode.

To metodo lahko pokličete pred prikazom pogovornega okna, da zgradite začetno drevo. Pokličete jo lahko tudi iz pogovornega okna ali dogodka kontrolnika z uporabo dogodka OnNodeExpanded, da dinamično dokončate drevo.

Skladnja:

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

Parametri:

parentnode: predmet vozlišč UNO vrste com.sun.star.awt.tree.XMutableTreeNode.

displayvalue: besedilo, ki se pojavi v polju kontrolnika drevesa.

datavalue: poljubna vrednost, povezana z novim vozliščem. datavalue je lahko niz, število ali datum. Argument lahko izpustite, če ni relevanten.

Primer:

Primera Collabora Office Basic in Python prevzameta pogovorno okno trenutnega dokumenta myDialog iz knjižnice Standard.

V Basicu
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 ...")
V Pythonu
dlg = CreateScriptService('SFDialogs.Dialog', None, None, 'myDialog')
tree = dlg.Controls('myTreeControl')
root = tree.CreateRoot('Tree top')
node = tree.AddSubNode(root, 'A branch ...')

AddSubTree

Vrne True, če je poddrevo, podrejeno nadrejenemu vozlišču, uspešno vstavljeno v drevesni kontrolnik. Če je imelo nadrejeno vozlišče že podrejena vozlišča pred klicem te metode, se podrejena vozlišča izbrišejo.

To metodo lahko pokličete pred prikazom pogovornega okna, da zgradite začetno drevo. Pokličete jo lahko tudi iz pogovornega okna ali dogodka kontrolnika z uporabo dogodka OnNodeExpanded, da dinamično dokončate drevo.

Skladnja:

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

Parametri:

parentnode: predmet vozlišč UNO vrste com.sun.star.awt.tree.XMutableTreeNode.

flattree: dvodimenzionalno polje, razvrščeno po stolpcih, ki vsebujejo prikazane vrednosti. Tako polje lahko izdela metoda GetRows, uporabljena na storitviSFDatabases.Database. Če je element polja, ki vsebuje besedilo za izpis, enak Empty ali Null, novo vozlišče ni ustvarjeno in preostanek vrstice je preskočen.

Plosko drevo    >>>>    Končno poddrevo
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: če je False, je uporabljena privzeta vrednost, vsak stolpec flattree vsebuje besedilo, ki bo prikazano v kontrolniku drevesa. Če je True, so besedila, ki bodo prikazana (displayvalue), v stolpcih 0, 2, 4, ..., podatkovne vrednosti (datavalue) pa v stolpcih 1, 3, 5, ...

Primer:

V Basicu
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)
V Pythonu
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

Vrne novo korensko vozlišče drevesnega kontrolnika kot UNO-predmet vozlišča vrste com.sun.star.awt.tree.XMutableTreeNode. Nov koren drevesa je vstavljen pod predobstoječe korene dreves. Podrobnosti si oglejte v dokumentaciji API-ja za XMutableTreeNode.

To metodo lahko pokličete pred prikazom pogovornega okna, da zgradite začetno drevo. Pokličete jo lahko tudi iz pogovornega okna ali dogodka kontrolnika, da dinamično dokončate drevo.

Skladnja:

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

Parametri:

displayvalue: besedilo, ki se pojavi v polju kontrolnika drevesa.

datavalue: poljubna vrednost, povezana z novim vozliščem. datavalue je lahko niz, število ali datum. Argument lahko izpustite, če ni relevanten.

Primer:

V Basicu
Dim myTree As Object, myNode As Object
Set myTree = myDialog.Controls("myTreeControl")
Set myNode = myTree.CreateRoot("Tree starts here ...")
V Pythonu
tree = dlg.Controls('myTreeControl')
node = tree.CreateRoot('Tree starts here ...')

FindNode

Preči drevo in rekurzivno, z začetkom v korenu, najde vozlišče, ki ustreza pogojem. Lahko se - 1 zadetek zadostuje - prikazana vrednost ujema z vzorcem displayvalue ali pa je njegova podatkovna vrednost enaka datavalue. Primerjava lahko razlikuje med velikimi in malimi črkami ali pa ne. Prvi zadetek je vrnjen kot predmet vozlišča UNO vrste com.sun.star.awt.tree.XMutableTreeNode. Podrobnosti si oglejte v dokumentaciji API-ja za XMutableTreeNode.

Če ne najde zadetka, metoda vrne Nothing, kar lahko preverite z vgrajeno funkcijo IsNull().

To metodo lahko pokličete pred prikazom pogovornega okna, da zgradite začetno drevo. Pokličete jo lahko tudi iz pogovornega okna ali dogodka kontrolnika.

Skladnja:

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

Parametri:

Določen mora biti eden izmed argumentov displayvalue in datavalue. Če sta prisotna oba, je dovolj en zadetek, da bo vozlišče izbrano.

displayvalue: vzorec, ki ga želimo najti. Glejte metodo SF_String.IsLike(), kjer najdete seznam možnih nadomestnih znakov. Če je enak nizu ničelne dolžine (privzeto), te prikazane vrednosti ne išče.

datavalue: poljubna vrednost, povezana z novim vozliščem. datavalue je lahko niz, število ali datum. Argument lahko izpustite, če ni relevanten.

casesensitive: privzeta vrednost je False.

Primer:

V Basicu
Dim myTree As Object, myNode As Object
Set myTree = myDialog.Controls("myTreeControl")
Set myNode = myTree.FindNode("*Sophie*", CaseSensitive := True)
V Pythonu
tree = dlg.Controls('myTreeControl')
node = FindNode('*Sophie*', casesensitive=True)
if node is None:
    # ...

Resize

Premakne levi vrhnji kot pogovornega okna na nove koordinate in/ali spremeni njegove mere. Vrne True, če je sprememba velikosti uspela.

Skladnja:

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

Parametri:

Vse instance so izražene v enotah Map AppFont in se merijo od levega zgornjega kota nadrejenega pogovornega okna. Brez argumentov metoda spremeni velikost kontrolnika na njegovo »želeno velikost«, ki se prilagodi glede na njegovo dejansko vsebino. Manjkajoči argumenti ostanejo nespremenjeni.

Left: vodoravna razdalja do levega zgornjega kota.

Top: navpična razdalja do levega zgornjega kota.

Width: širina pravokotnika, ki vsebuje kontrolnik.

Height: višina pravokotnika, ki vsebuje kontrolnik.

Primer:

V Basicu
Dim oControl As Object
Set oDlg = CreateScriptService("SFDialogs.Dialog",,, "myDialog")
Set oControl = oDlg.Controls("thisControl")
oControl.Resize(100, 200, Height := 6000) ' Širina je nespremenjena
V Pythonu
dlg = CreateScriptService('Dialog', None, None, 'myDialog')
ctrl = dlg.Controls('thisControl')
ctrl.Resize(300, 200, 1500) # Širina je nespremenjena

SetFocus

Določite pozornost na kontrolnik. Vrne True, če je bilo določanje pozornosti uspešno.

To metodo pogosto kličejo pogovorna okna ali dogodki kontrolnika.

Skladnja:

svc.SetFocus(): bool

Primer:

V Basicu
Dim oControl As Object
Set oDlg = CreateScriptService("SFDialogs.Dialog",,, "myDialog")
Set oControl = oDlg.Controls("thisControl")
oControl.SetFocus()
V Pythonu
dlg = CreateScriptService('Dialog', None, None, 'myDialog')
ctrl = dlg.Controls('thisControl')
ctrl.SetFocus()

SetTableData

Zapolni tabelo TableControl z danimi podatki. Vsi poprejšnji podatki se počistijo pred vstavljanjem novih podatkov, podanih kot argument.

Če je kontrolnik TableControl dodan v pogovorno okno, lahko uporabite razvojno okolje Basic IDE za določitev, ali naj bodo v tabeli prikazane glave stolpcev in vrstic. Če ima TableControl glave stolpcev in/ali vrstic, se prvi stolpec in/ali prva vrstica v podanem podatkovnem polju uporabi za oznake za glave tabele.

Ta metoda vrne True, če uspe.

Skladnja:

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

Parametri:

dataarray: podatki, ki naj bodo vneseni v tabelo, predstavljeni kot polje polj v Basicu ali kot n-terica n-teric v Pythonu. Podatki morajo vsebovati glave stolpcev in vrstic, če jih želite prikazati v kontrolniku TableControl.

widths: polje, ki vsebuje relativne širine vsakega stolpca posebej. Povedano drugače, widths = (1, 2) pomeni, da je drugi stolpec dvakrat širši od prvega. Če je število vrednosti v polju manjše od števila vseh stolpcev v tabeli, se zadnja vrednost v polju uporabi za določitev širine preostalih stolpcev.

alignments: določa poravnavo v vsakem stolpcu posebej kot niz, v katerem je lahko vsak znak »L« (levo), »C« (sredinsko), »R« (desno) ali » « (presledek, privzeto, kar predstavlja levo za nize in desno za številske vrednosti). Če je dolžina niza manjša od števila stolpcev v tabeli, se zadnji znak v nizu uporabi za določitev poravnave preostalih stolpcev.

RowHeaderWidth: širina stolpca glave vrstice, izražena v enotah Map AppFont. Privzeta vrednost je 10. Argument je prezrt, ko TableControl nima glave vrstice.

Primer:

V Basicu

Naslednji primer predvideva, da ima pogovorno okno myDialog kontrolnik tabele TableControl z imenom Grid1 in lastnostma »Pokaži glavo vrstice« in »Pokaži glavo stolpcev«, nastavljenima na »Da«.

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

Lastnost Value vrne izbrano vrstico v tabeli. Če ni izbrana nobena vrstica, vrne prazen predmet Array. Naslednji odlomek kode kaže, kako lahko preizkusite, če je v tabeli izbrana kakšna vrstica.

rowValues = oTable.Value
If UBound(rowValues) < 0 Then
    MsgBox "Nobena vrstica ni izbrana."
Else
    MsgBox "Izbrana je vrstica " & oTable.ListIndex & "."
End If
V Pythonu
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

Doda novo vrstico na konec večvrstičnega besedilnega polja. Znak nove vrstice bo vstavljen po potrebi. Metoda vrne True, če uspe.

Če dejanski kontrolnik ni vrste TextField ali ni večvrstičen, prikliče napako.

Skladnja:

svc.WriteLine(opt line: str): bool

Parametri:

Line: niz, ki ga želite vstaviti. Privzeto je prazna vrstica.

Primer:

V Basicu
Dim oDlg As Object, oControl As Object
Set oDlg = CreateScriptService("SFDialogs.Dialog",,, "myDialog")
Set oControl = oDlg.Controls("thisControl")
oControl.WriteLine("a new line")
V Pythonu
dlg = CreateScriptService('SFDialogs.Dialog', None, None, 'myDialog')
ctrl = dlg.Controls('thisControl')
ctr.WriteLine("a new line")
warning

Vsi podprogrami ali identifikatorji ScriptForge Basic s predpono podčrtaja (»_«) so rezervirani za interno uporabo. Uporabi v makrih Basic ali skriptih Python niso namenjeni.


Podprite nas!