Słužba SFDialogs.DialogControl

Słužba DialogControl wodźenske elementy rjaduje, kotrež k dialogej słušeja, kotryž so z dialogowym editorom Basic definuje. Kóžda instanca aktualneje słužby jednotliwy wodźenski element w dialogowym polu reprezentuje.

Fokus na wotwołowanje a nastajenje hódnotow leži, kotrež so přez wodźenske elementy dialogoweho pola pokazuja. Formatěrowanje je přistupne přez kajkosći XControlModel a XControlView.

Dźiwajće na to, zo wobsah jónkróćneje kajkosće DialogControl.Value po wobsahowym typje wariěruje.

Wosebita kedźbnosć so na wodźenske elementy typa štom złožuje. Je lochko, štom pjelnić, pak hałuzu po hałuzy pak ze sadźbu hałuzow naraz. Pjelnjenje štomoweho wodźenskeho elementa da so statisce abo dynamisce wuwjesć.

tip

Słužba SFDialogs.DialogControl je jara podobna na słužbu SFDialogs.Dialog.


Słužbowe wuwołanje

Před wužiwanjom słužby DialogControl dyrbi so biblioteka ScriptForge začitać abo importować:

note

• Makra Basic sej wužaduja, zo so biblioteka ScriptForge z pomocu slědowaceho přikaza začituje:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Skripty Python sej import z modula scriptforge wužaduja:
from scriptforge import CreateScriptService


Słužba DialogControl so přez eksistowaceje słužboweje instancy Dialog z pomocu jeho metody Controls() wuwołuje. Dialog dyrbi so ze słužbu SFDialogs.Dialog iniciěrować.


      Dim myDialog As Object, myControl As Object
      Set myDialog = CreateScriptService("SFDialogs.Dialog", "GlobalScope", myLibrary, DialogName)
      Set myControl = myDialog.Controls("myTextBox")
      myControl.Value = "Dialog startowaše " & Now()
      myDialog.Execute()
      ' … aktualne hódnoty wodźenskich elementow předźěłać
      myDialog.Terminate()
   

     from time import localtime, strftime
     dlg = CreateScriptService('SFDialogs.Dialog', 'GlobalScope', lib_name, dlg_name)
     text = dlg.Controls('myTextBox')
     text.Value = "Dialog startowaše " + strftime("%a, %d %b %Y %H:%M:%S", localtime())
     dlg.Execute()
     # … aktualne hódnoty wodźenskich elementow předźěłać
     dlg.Terminate()
   

Wotwołanje instancy DialogControl, kotraž je podawk wodźenskeho elementa wuwabiła

Instanca słužby DialogControl da so přez słužbu SFDialogs.DialogEvent wotwołać, pod wuměnjenjom, zo dialog je so ze słužbu Dialog iniciěrował. W slědowacym přikładźe oControl instancu DialogControl wobsahuje, kotraž je podawk wodźenskeho elementa wuwabiła.


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

Abo z Python:


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

Dźiwajće na to, zo w předchadnych přikładach prefiks "SFDialogs." da so wuwostajić, hdyž zda so přihódne być.

Wobchadźenje z wuwzaćemi w podawkowych wobdźěłakach

Hdyž so podawkowy wobdźěłak za podawki wodźenskeho elementa wutworja, poruča so, zo so ze zmylkami w podprogramje samym wobchadźeja. Připušć na přikład, zo so podawkowy wobdźěłak woła, hdyž so tłóčatko klika.


    Sub OnButtonClicked(ByRef oEvent As Object)
    On Local Error GoTo Catch
        Dim oControl As Object
        oControl = CreateScriptService("DialogEvent", oEvent)
        ' Podawk předźěłać
        Exit Sub
    Catch:
        MsgBox SF_Exception.Description
        SF_Exception.Clear
    End Sub
  
tip

Wołajće SF_Exception.Clear, jeli nochceće, zo so zmylk po skónčenju wuwjedźenja dialoga dale dawa.


Wužiwajće w Python natiwne bloki try/except za wobchadźenje z wuwzaćemi, kaž so deleka pokazuje:


    def on_button_clicked(event=None):
        try:
            oControl = CreateScriptService("DialogEvent", event)
            # Podawk předźěłać
        except Exception as e:
            # Objekt "bas" deleka je instanca słužby Basic
            bas.MsgBox(str(e))
  

Typy wodźenskich elementow

Słužba DialogControl je za tute typy wodźenskich elementow k dispoziciji:

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

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

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

• TableControl
• TabPageContainer
• TextField
• TimeField
• TreeControl


note

Typ wodźenskeho elementa TabPageContainer njeje w dialogowym editorje definowany.


Kajkosće

Mjeno

Přećiwo pisanju škitany

Typ

Nałožujomny na

Wopisanje

Border

Haj

String

Button, …

Kajkosć Border so na wokolinu wodźenskeho elementa poćahuje: "3D", "FLAT" abo "NONE".

Cancel

Boolean

Button

Podawa, hač přikazowe tłóčatko ma zadźerženje tłóčatka Přetorhnyć abo nic.

Caption

String

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

Podawa tekst, kotryž je z wodźenskim elementom zwjazany.

ControlType

Haj

String

Wšě

Jedyn z horjeka podatych typow.

CurrentNode

Objekt
UNO

TreeControl

Tuchwilu najwyši suk, kotryž je w štomowym wodźenskim elemenće wubrany. Hlejće XmutableTreeNode w dokumentaciji programowanskeje tykački (API) za podrobne informacije.

Default

Boolean

Button

Podawa, hač přikazowe tłóčatko je standardne tłóčatko (W porjadku).

Enabled

Boolean

Wšě

Podawa, hač wodźenski element je z kursorom přistupny.

Format

String

DateField, TimeField, FormattedField

(přećiwo pisanju škitany)

Podawa format, kotryž so wužiwa, zo by datum a čas pokazał. Dyrbi jedyn ze slědowacych znamješkowych rjećazkow być:

Za datum: "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".

Za čas: "24h short", "24h long", "12h short", "12h long".

ListCount

Haj

Long

ComboBox, ListBox, TableControl

Podawa ličbu linkow w lisćinowym polu, kombinaciskim polu abo tabelowym wodźenskim elemenće.

ListIndex

Long

ComboBox, ListBox, TableControl

Podawa, kotry zapisk so w lisćinowym poli, kombinaciskim polu abo tabelowym wodźenskim elemenće wuběra.

Locked

Boolean

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

Podawa, hač wodźenski element je přećiwo pisanju škitany.

MultiSelect

Boolean

ListBox

Podawa, hač wužiwar móže wjacore wuběry w lisćinowym polu činić.

Name

Haj

String

Wšě

Mjeno wodźenskeho elementa.

Page

Integer

Wšě

Dialog móže wjacore strony měć, kotrež wužiwar móže krok po kroku přeběžeć. Kajkosć Page objekta Dialog definuje, kotra strona dialoga je aktiwna.

Kajkosć Page wodźenskeho elementa stronu dialoga definuje, na kotrymž wodźenski element je widźomny.

Parent

Haj

Słužba Dialog

Wšě

Objektowa instanca nadrjadowaneje klasy SFDialogs.Dialog.

Picture

String

Button, ImageControl

Podawa datajowe mjeno, kotryž bitmap abo druhi grafikowy typ wobsahuje, kotryž so ma na podatym wodźenskim elemenće pokazać. Datajowe mjeno dyrbi atributej FileNaming słužby ScriptForge.FileSystem wotpowědować.

RootNode

Haj

Objekt
UNO

TreeControl

Objekt, kotryž najniši korjenjowy suk reprezentuje (zwjetša je jenož jedyn korjenjowy suk). Hlejće XmutableTreeNode w dokumentaciji programowanskeje tykački (API) za podrobne informacije.

RowSource

Array of strings

ComboBox, ListBox

Podawa daty, kotrež su w kombinaciskim abo lisćinowym polu wobsahowane.

TabIndex

Haj

Numeric

All

Kajkosć TabIndex městno wodźenskeho elementa w tabulatorowym porjedźe w dialogu podawa.

Text

Haj

String

ComboBox, FileControl, FormattedField, PatternField, TextField

Zmóžnja přistup k tekstej, kotryž so přez wodźenski element pokazuje.

TipText

String

Wšě

Podawa tekst, kotryž so jako pomocny tekst jewi, hdyž pokazowak myški nad wodźenski element dźeržiće.

TripleState

Boolean

CheckBox

Podawa, jeli kontrolny kašćik móže so wosłabić (šěry) abo nic.

URL

String

Hyperlink

URL, kotryž so ma wočinić, hdyž so na wodźenski element klika.

Value

Variant

Hlejće Hódnotowu kajkosć

Visible

Boolean

Wšě

Podawa, hač wodźenski element je schowany abo widźomny.

XControlModel

Haj

Objekt
UNO

Wšě

Objekt UNO, kotryž model wodźenskeho elementa reprezentuje. Hlejće XControlModel a UnoControlDialogModel w dokumentaciji programowanskeje tykački (API) za podrobne informacije.

XControlView

Haj

Objekt
UNO

Wšě

Objekt UNO, kotryž napohlad wodźenskeho elementa reprezentuje. Hlejće XControl a UnoControlDialog w dokumentaciji programowanskeje tykački za podrobne informacije.

XTreeDataModel

Haj

Objekt
UNO

TreeControl

Obkejt UNO, kotryž datowy model štomoweho wodźenskeho elementa reprezentuje. Hlejće XMutableTreeDataModel w dokumentaciji programowanskeje tykački (API) za podrobne informacije.

XGridColumnModel

Haj

Objekt
UNO

TableControl

Objekt UNO, kotryž datowy model tabeloweho wodźenskeho elementa reprezentuje. Hlejće XGridColumnModel w dokumentaciji programowanskeje tykački (API) za podrobne informacije.

XGridDataModel

Haj

Objekt
UNO

TableControl

The UNO object representing the tree control data model. Refer to XGridDataModel in Application Programming Interface (API) documentation for detailed information.


Hódnotowa kajkosć

Typ wodźenskeho elementa

Typ

Wopisanje

Button

Boolean

Jenož za přepinanske tłóčatka

CheckBox

Boolean (logiska hódnota) abo Integer (cyła ličba)

0, False: njewothóčkowany
1, True: wothóčkowany
2: zešěrjeny, njewěm

ComboBox

String

Wubrana hódnota. Kajkosć ListIndex je alternatiwna móžnosć.

CurrencyField

Numeriski

DateField

Date

FileControl

String

Datajowe mjeno, kotrež je po kajkosći FileNaming słužby ScriptForge.FileSystem sformatěrowane

FormattedField

Znamješkowy rjećazk abo numeriski

ListBox

Znamješkowy rjećazk abo matriks znamješkowych rjećazkow

Wubrane linki jako skalar abo jako matriks wotwisujo wot atributa MultiSelect

NumericField

Numeriski

PatternField

String

ProgressBar

Numeriski

Dyrbi w předdefinowancych mjezach być

RadioButton

Boolean

Kóžde tłóčatko ma swójske mjeno. Su ze sobu zwjazane, jeli jich tabulatorowe pozicije su zwisuja. Jeli opciske tłóčatko je na True stajene, so druhe přisłušne tłóčatka awtomatisce na False stajeja

ScrollBar

Numeriski

Dyrbi w předdefinowancych mjezach być

TabPageContainer

Numeric

Dialog móže wjacore čisłowane rajtarki měć, kotrež su po swojej kajkosći Value identifikujomne abo změnjomne

TableControl

Array

Jednodimensionalna matriks z datami tuchwilu wubraneje linki.

TextField

String

Tekst, kotryž so w polu jewi.

TimeField

Date


note

Kajkosć Value za dialogowe wodźenske elementy GroupBox, Hyperlink, ImageControl a TreeControl njeje.


Podawkowe kajkosće

Podawkowe kajkosće On… su znamješkowe rjećazki URI, kotrež na skript wotkazuja, kiž je so přez podawak wuhibał. Čitajće specifikaciju w Scripting Framework URI Specification (jendźelsce).

Mjeno (wotkaz podawkoweje API)

Wopisanje jako w Basic IDE popisane

OnActionPerformed

Akciju wuwjesć

OnAdjustmentValueChanged

Při přiměrjenju

OnFocusGained

Při dóstawanju fokusa

OnFocusLost

Při zhubjenju fokusa

OnItemStateChanged

Status zapiska je so změnił

OnKeyPressed

Tasta stłóčena

OnKeyReleased

Tasta pušćena

OnMouseDragged

Pohib myški při stłóčenej tasće

OnMouseEntered

Myška nutřka

OnMouseExited

Myška wonka

OnMouseMoved

OnMousePressed

Tasta myški stłóčena

OnMouseReleased

Tasta myški pušćena

OnNodeExpanded

(Nic w Basic IDE), hdyž so rozšěrjenske tłóčatko je na suku w štomowym wodźenskim elemenće tłóči

OnNodeSelected

(Nic w Basic IDE), hdyž so suk w štomowym wodźenskim elemenće wuběra

OnTabSelected

(Nic w Basic IDE), hdyž so rajtark we wodźenskim elemenće TabPage wuběra

OnTextChanged

Tekst změnjeny


tip

Pokiw: Wšě kajkosće On… dadźa so přez program nastajić.
Přikład How to display data in a tree control (jendźelsce) w LibreOffice Wiki to znazornja.


warning

Připokazowanje podawkow přez Basic IDE a připokazowanje podawkow přez makra so mjez sobu wuzamkujetej.


Metody

Lisćina metodow w słužbje DialogControl

AddSubNode
AddSubTree
CreateRoot

FindNode
Resize
SetFocus

SetTableData
WriteLine


AddSubNode

Wutwori nowy suk štomoweho wodźenskeho elementa a wróći jón jako objekt UNO, kotryž je nadrjadowanemu sukej podrjadowany. Hlejće XMUtableTreeNode w dokumentaciji programowanskeje tykački za podrobne informacije.

Tuta metoda da so wuwołać, prjedy hač so dialogowe polo pokazuje, kotrež ma spočatny štom wutworić. Móže so tež z dialoga abo podawka wodźenskeho elementa wuwołać – z pomocu podawka OnNodeExpanded –, zo by so štom dynamisce wudospołnił.

Syntaksa:

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

Parametry:

parentnode: sukowy objekt UNO typa com.sun.star.awt.tree.XMutableTreeNode.

displayvalue: Tekst, kotryž so w polu štomoweho wodźenskeho elementa jewi.

datavalue: Hódnota, kotraž je z nowym sukom zwjazana. datavalue móže znamješkowy rjećazk, ličba abo datum być. Wuwostajće argument, jeli nałožujomny njeje.

Přikład:

Přikłady LibreOffice Basoc a Python dialog myDialog aktualneho dokumenta z biblioteki Standard přejimaja.

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

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

AddSubTree

Wróći True, hdyž so móžeše podštom, kotryž nadrjadowanemu sukej podrjadowany, wuspěšnje do štomoweho wodźenskeho elementa zasadźić. Jeli nadrjadowany suk hižo podrjadowane suki měješe, prjedy hač so tuta metoda wuwoła, so podrjadowane suki zhašeja.

Tuta metoda da so wuwołać, prjedy hač so dialogowe polo pokazuje, kotrež ma spočatny štom wutworić. Móže so tež z dialoga abo podawka wodźenskeho elementa wuwołać – z pomocu podawka OnNodeExpanded –, zo by so štom dynamisce wudospołnił.

Syntaksa:

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

Parametry:

parentnode: sukowy objekt UNO typa com.sun.star.awt.tree.XMutableTreeNode.

flattree: dwudimensionalna matriks, sortěrowana po špaltach, kotrež pokazowanske hódnoty wobsahuja. Tajka matriks da so přez metodu GetRows wudać, kotraž so na słužbu SFDatabases.Database nałožuje. Hdy matriksowy zapisk, kotryž tekst wobsahuje, kotryž so ma pokazać, je Empty abo Null so nowy podsuk njewutwori a zbytk linki so přeskakuje.


      Flacher Baum >>>> Rezultowacy podštom
      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: Hdyž False, so standardna hódnota wužiwa, kóžda špalta flattree tekst wobsahuje, kotryž so ma w štomowym wodźenskim elemenće pokazać. Hdyž True, su teksty, kotrež so maja pokazać (displayvalue) w špaltach 0, 2, 4, …, mjeztym zo datowe hódnoty (datavalue su w špaltach 1, 3, 5, …

Přikład:

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

Wróći nowy korjenjowy suk štomoweho wodźenskeho elementa jako sukowy objekt UNO typa com.sun.star.awt.tree.XMutableTreeNode. Nowy štomowy korjeń so pod do toho eksistowacymi korjenjowymi sukami zasadźi. Hlejće XMUtableTreeNode w dokumentaciji programowanskeje tykački za podrobne informacije.

Tuta metoda da so wuwołać, prjedy hač so dialogowe polo pokazuje, kotrež ma spočatny štom wutworić. Móže so tež z dialoga abo podawka wodźenskeho elementa wuwołać, zo by so štom dynamisce wudospołnił.

Syntaksa:

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

Parametry:

displayvalue: Tekst, kotryž so w polu štomoweho wodźenskeho elementa jewi.

datavalue: Hódnota, kotraž je z nowym sukom zwjazana. datavalue móže znamješkowy rjećazk, ličba abo datum być. Wuwostajće argument, jeli nałožujomny njeje.

Přikład:

W Basic

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

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

FindNode

Přeběži štom a namaka rekursiwnje, započinajo z korjenjom, suk, kotryž někotrym kriterijam wotpowěduje. Pak – 1 wotpowědnik dosaha – wotpowěduje jeho pokazowanska hódnota mustrej displayvalue pak jeho datowa hódnota je runja datavalue. Přirunanja móža na wulkopisanje dźiwać abo nic. Prěni wotpowědnik so jako sukowy objekt UNO typa com.sun.star.awt.tree.XMutableTreeNode wróći. Hlejće XMUtableTreeNode w dokumentaciji programowanskeje tykački za podrobne informacije.

Hdyž so njenamaka, metoda Nothing wróća, zo by so ze zatwarjenej funkciju IsNUll() testowała.

Tuta metoda da so wuwołać, prjedy hač so dialogowe polo pokazuje, kotrež ma spočatny štom wutworić. Móže so tež z dialoga abo podawka wodźenskeho elementa wuwołać.

Syntaksa:

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

Parametry:

Jedyn argument z displayvalue abo datavalue dyrbi so podać. Jeli wobaj stej, jedyn wotpowědnik dosaha, zo by suk wubrał.

displayvalue? Muster, kotryž so ma přirunać. Hlejće metodu SF_String.IsLike() za lisćinu móžnych wildcard. Hdyž runja znamješkowy rjećazk z dołhosću nula (standard), so za tutej pokazowanskej hódnotu njepyta.

datavalue: Hódnota, kotraž je z nowym sukom zwjazana. datavalue móže znamješkowy rjećazk, ličba abo datum być. Wuwostajće argument, jeli nałožujomny njeje.

casesensitive: Standardna hódnota je False

Přikład:

W Basic

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

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

Resize

Přesuwa róžk horjeka nalěwo dialogoweho wodźenskeho elementa k nowym koordinatam a/abo měnja jeho wotměry. Wróći True, jeli změnjenje wulkosće běše wuspěšne.

Syntaksa:

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

Parametry:

Wšě wotstupy so w jednotkach Map AppFont zwuraznjeja a měrja so wot róžka horjeka nalěwo nadrjadowaneho dialoga. Bjez argumentow metoda wulkosć wodźenskeho elementa do jeho „preferowaneje wulkosć“ změni, wulkosć, kotraž so wotwisujo wot jeho aktualneho wobsaha. Falowace argumenty njezměnjene wostawaja.

Left: Horicontalny wotstup wot hornjeho lěweho róžka

Top: Wertikalny wotstup wot hornjeho lěweho róžka

Width: horicontalna šěrokosć praworóžka, kotryž wodźenski element wobsahuje

Height: wertikalna wysokosć praworóžka, kotryž wodźenski element wobsahuje

Přikład:

W Basic

      Dim oControl As Object
      Set oDlg = CreateScriptService("SFDialogs.Dialog",,, "myDialog")
      Set oControl = oDlg.Controls("thisControl")
      oControl.Resize(100, 200, Height:=6000) ' Šěrokosć je njezměnjena
    
W Python

      dlg = CreateScriptService('Dialog', None, None, 'myDialog')
      ctrl = dlg.Controls('thisControl')
      ctrl.Resize(300, 200, 1500) # Wysokosć je njezměnjena
    

SetFocus

Staja fokus na wodźenski element. Wróći True, jeli fokusěrowanje běše wuspěšne.

tuta metoda so husto z dialogoweho podawka abo podawka wodźenskeho elementa wuwołuje.

Syntaksa:

svc.SetFocus(): bool

Přikład:

W Basic

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

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

SetTableData

Pjelni TableControl z podatymi datami. Wšě do toho eksistowace daty so zhašeja, prjedy hač so nowe daty jako argument zasadźuja.

Hdyž so TableControl dialogej přidawa, je móžno, Basic IDE wužiwać, zo byšće definował, hač so špaltowe a linkowe hłowy w tabeli pokazuja. Jeli TableControl ma špaltowe a/abo linkowe hłowy so prěnja špalta a/abo linka w podatych datach jako popisy za tabelowe hłowy wužiwatej.

Tuta metoda True wróći, hdyž je wuspěšna.

Syntaksa:

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

Parametry:

dataarray: Daty, kotrež so maja do tabele zapodać, přestajene jako matriks matriksow w Basic abo tupel tupelow w Python. Daty dyrbja špaltowe a linkowe hłowy wobsahować, jeli so maja přez TableControl pokazać.

widths: Matriks, kotraž relatiwne šěrokosće kóždeje špalty wobsahuje. Hinak prajene, widths = (1, 2) woznamjenja, zo druha špalta je dwójce šěrša jako prěnja. Jeli ličba hódnotow w tutej matriksy je mjeńša hač ličba špaltow w tabeli, so poslednja hódnota w matriksy wužiwa, zo by šěrokosć zbytnych špaltow definowała.

alignment: Definuje wusměrjenje w kóždej špalće jako znamješkowy rjećazk, w kotrymž kóžde znamješko móže "L" (nalěwo), "C" (wosrjedźa), "R" (naprawo) abo " " (mjezota, standard, to rěka: nalěwo za znamješkowe rjećazki a naprawo za numeriske hódnoty). Jeli dołhosć znamješkoweho rjećazka je krótša hač ličba špaltow w tabeli, so poslednje znamješko w znamješkowym rjećazku wužiwa, zo by wusměrjenje zbytnych špaltow definowało.

RowHeaderWidth: Šěrokosć špalty linkoweje hłowy, zwuraznjena w jednotkach Map AppFont. Standard = 10. Argument so ignoruje, hdyž TableControl linkowu hłowu nima.

Přikład:

W Basic

Slědowacy přikład wot toho wuchadźa, zo dialog myDialog ma TableControl z mjenom Grid1, kotrehož kajkosći "Linkowu hłowu pokazać" a "Špaltowu hłowu pokazać" stej na "Haj" stajenej.


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

Kajkosć Value wubranu linku w tabeli wróća. Jeli linka wubrana njeje, so prózdny matriksowy objekt wróća. Slědowacy kodowa šlipka pokazuje, kak móžeće testować, hač so někajka linka w tabeli wuběra.


     rowValues = oTable.Value
     If UBound(rowValues) < 0 Then
         MsgBox "Žana linka wubrana."
     Else
         MsgBox "Linka " & oTable.ListIndex & "je wubrana."
     End If
   
W 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

Přidawa nowu linku na kóncu wjacelinkoweho tekstoweho pola. Znamješko za łamanje linki so zasadźuje, hdyž je wužitne. Metoda True wróća, hdyž je wuspěšna.

Zmylk so wuwabja, jeli poprawny wodźenski element typ TextField nima abo wjacelinkowy njeje.

Syntaksa:

svc.WriteLine(opt line: str): bool

Parametry:

Line: Znamješkowy rjećazk, kotryž so ma zasadźić. Standard je prózdna linka.

Přikład:

W Basic

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

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

Wšě rutiny Basic ScriptForge abo identifikatory, kotrež so z podsmužku „_“ započinaja, su za interne wužiwanje wuměnjene. Njejsu za to myslene, so w makrach Basic abo skriptach Python wužiwać.


Prošu podpěrajće nas!