Mga SFDialog . DialogControl serbisyo

Ang DialogControl pinamamahalaan ng serbisyo ang mga kontrol na kabilang sa isang dialog na tinukoy sa Basic Editor ng Dialog . Ang bawat pagkakataon ng kasalukuyang serbisyo ay kumakatawan sa isang kontrol sa loob ng isang dialog box.

Nakatakda ang focus sa pagkuha at pagtatakda ng mga value na ipinapakita ng mga kontrol ng dialog box. Ang pag-format ay maa-access sa pamamagitan ng XControlModel at XControlView ari-arian.

Tandaan na ang natatangi DialogControl.Value Ang nilalaman ng ari-arian ay nag-iiba ayon sa uri ng kontrol.

Ang isang espesyal na pansin ay ibinibigay sa mga kontrol ng uri ng kontrol ng puno. Madaling punuin ang isang puno, alinman sa sanga sa bawat sanga, o sa isang hanay ng mga sanga nang sabay-sabay. Ang pagpo-populate sa isang kontrol ng puno ay maaaring isagawa nang static o dynamic.

tip

Ang SFDialogs.DialogControl ang serbisyo ay malapit na nauugnay sa SFDialogs.Dialog serbisyo.


Panawagan sa serbisyo

Bago gamitin ang DialogControl serbisyo ang ScriptForge kailangang i-load o i-import ang library:

note

• Ang mga pangunahing macro ay kailangang mag-load ScriptForge aklatan gamit ang sumusunod na pahayag:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Ang mga script ng Python ay nangangailangan ng pag-import mula sa scriptforge module:
mula sa scriptforge import CreateScriptService


Ang DialogControl serbisyo ay hinihingi mula sa isang umiiral na Dialog halimbawa ng serbisyo sa pamamagitan nito Mga kontrol() paraan. Ang dialog ay dapat na sinimulan sa SFDialogs.Dialog serbisyo.


      Dim myDialog As Object, myControl As Object
      Set myDialog = CreateScriptService("SFDialogs.Dialog", "GlobalScope", myLibrary, DialogName)
      Set myControl = myDialog.Controls("myTextBox")
      myControl.Value = "Nagsimula ang dialog noong " & Now()
      myDialog.Execute()
      ' ... iproseso ang mga aktwal na halaga ng kontrol
      myDialog.Terminate()
   

     from time import localtime, strftime
     dlg = CreateScriptService('SFDialogs.Dialog', 'GlobalScope', lib_name, dlg_name)
     text = dlg.Controls('myTextBox')
     text.Value = "Nagsimula ang dialog noong " + strftime("%a, %d %b %Y %H:%M:%S", localtime())
     dlg.Execute()
     # ... iproseso ang mga aktwal na halaga ng kontrol
     dlg.Terminate()
   

Kinukuha ang DialogControl instance na nag-trigger ng control event

Isang halimbawa ng DialogControl maaaring makuha ang serbisyo sa pamamagitan ng SFDialogs.DialogEvent serbisyo, sa kondisyon na ang dialog ay pinasimulan sa Dialog serbisyo. Sa halimbawa sa ibaba, oKontrol naglalaman ng DialogControl instance na nag-trigger sa control event.


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

O gamit ang Python:


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

Tandaan na sa mga nakaraang halimbawa, ang prefix "SFDialogs." maaaring tanggalin kapag itinuturing na naaangkop.

Pangangasiwa ng mga pagbubukod sa mga tagapangasiwa ng kaganapan

Kapag gumagawa ng event handler para sa mga control event, magandang kasanayan na pangasiwaan ang mga error sa loob mismo ng subroutine. Halimbawa, ipagpalagay na ang tagapangasiwa ng kaganapan sa ibaba ay tinatawag kapag na-click ang pindutan.


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

Tumawag SF_Exception.Clear kung hindi mo nais na ang error ay lumaganap pagkatapos ng dialog execution natapos.


Sa Python gumamit ng native subukan/maliban mga bloke para sa paghawak ng exception tulad ng ipinapakita sa ibaba:


    def on_button_clicked(event=None):
        try:
            oControl = CreateScriptService("DialogEvent", event)
            # Iproseso ang kaganapan
        except Exception as e:
            # Ang object na "bas" sa ibaba ay isang instance ng Basic na serbisyo
            bas.MsgBox(str(e))
  

Mga uri ng kontrol

Ang DialogControl ang serbisyo ay magagamit para sa mga uri ng kontrol na ito:

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

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

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

• TableControl
• TextField
• TimeField
• TreeControl


Mga Katangian

Pangalan

ReadOnly

Type

Naaangkop sa

Mga nilalaman

Border

Mayroon

String

Button, …

Ang Border Ang ari-arian ay tumutukoy sa nakapaligid na kontrol: "3D", "FLAT" o "WALA".

Cancel

Hindi

Boolean

Button

Tinutukoy kung ang command button ay mayroon o wala ang gawi ng isang Cancel button.

Caption

Hindi

String

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

Tinutukoy ang tekstong nauugnay sa kontrol.

ControlType

Mayroon

String

Lahat

Isa sa mga uri na nakalista sa itaas.

CurrentNode

Hindi

UNO
bagay

TreeControl

Ang kasalukuyang pinakamataas na node na pinili sa kontrol ng puno. Sumangguni sa XmutableTreeNode sa Application Programming Interface (API) na dokumentasyon para sa detalyadong impormasyon.

Default

Hindi

Boolean

Button

Tinutukoy kung ang command button ay ang default (OK) na button.

Enabled

Hindi

Boolean

Lahat

Tinutukoy kung ang kontrol ay naa-access gamit ang cursor.

Format

Hindi

String

DateField, TimeField, FormattedField

(read-only)

Tinutukoy ang format na ginamit upang ipakita ang mga petsa at oras. Ito ay dapat na isa sa mga string na ito:

Para sa mga petsa: "Standard (maikli)", "Standard (short YY)", "Standard (short YYYY)", "Standard (mahaba)", "DD/MM/YY", "MM/DD/YY", " YY/MM/DD", "DD/MM/YYYY", "MM/DD/YYYY" , "YYYY/MM/DD", "YY-MM-DD", "YYYY-MM-DD".

Para sa mga oras: "24h short", "24h long", "12h short", "12h long".

ListCount

Mayroon

Long

ComboBox, ListBox, TableControl

Tinutukoy ang bilang ng mga hilera sa isang ListBox, isang ComboBox o isang TableControl.

ListIndex

Hindi

Long

ComboBox, ListBox, TableControl

Tinutukoy kung aling item ang pipiliin sa isang ListBox, isang ComboBox o isang TableControl.

Locked

Hindi

Boolean

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

Tinutukoy kung ang kontrol ay read-only.

MultiSelect

Hindi

Boolean

ListBox

Tinutukoy kung ang isang user ay makakagawa ng maramihang mga pagpipilian sa isang listbox.

Name

Mayroon

String

Lahat

Ang pangalan ng kontrol.

Page

Hindi

Integer

Lahat

Ang isang dialog ay maaaring may ilang mga pahina na maaaring daanan ng user nang hakbang-hakbang. Tinutukoy ng Page property ng Dialog object kung aling pahina ng dialog ang aktibo.

Tinutukoy ng Page property ng isang control ang page ng dialog kung saan makikita ang control.

Parent

Mayroon

Dialog
serbisyo

Lahat

Ang magulang SFDialogs.Dialog halimbawa ng object ng klase.

Picture

Hindi

String

Button, ImageControl

Tinutukoy ang pangalan ng file na naglalaman ng bitmap o iba pang uri ng graphic na ipapakita sa tinukoy na kontrol. Ang filename ay dapat sumunod sa FileNaming katangian ng ScriptForge.FileSystem serbisyo.

RootNode

Mayroon

UNO
bagay

TreeControl

Isang bagay na kumakatawan sa pinakamababang root node (karaniwan ay mayroon lamang isang ganoong root node). Sumangguni sa XmutableTreeNode sa Application Programming Interface (API) na dokumentasyon para sa detalyadong impormasyon.

RowSource

Hindi

Array of strings

ComboBox, ListBox

Tinutukoy ang data na nilalaman sa isang combobox o isang listbox.

TabIndex

Mayroon

Numeric

All

Ang TabIndex Tinutukoy ng property ang lugar ng kontrol sa pagkakasunud-sunod ng tab sa dialog.

Text

Mayroon

String

ComboBox, FileControl, FormattedField, PatternField, TextField

Nagbibigay ng access sa text na ipinapakita ng control.

TipText

Hindi

String

Lahat

Tinutukoy ang text na lalabas bilang tooltip kapag hinawakan mo ang pointer ng mouse sa ibabaw ng control.

TripleState

Hindi

Boolean

CheckBox

Tinutukoy kung ang kontrol ng checkbox ay maaaring mukhang dimmed (kulay abo) o hindi.

URL

Hindi

String

Hyperlink

Ang URL na bubuksan kapag na-click ang kontrol.

Value

Hindi

Variant

Sumangguni sa Halaga ng ari-arian

Visible

Hindi

Boolean

Lahat

Tinutukoy kung nakatago o nakikita ang kontrol.

XControlModel

Mayroon

UNO
bagay

Lahat

Ang UNO object na kumakatawan sa control model. Sumangguni sa XControlModel at UnoControlDialogModel sa Application Programming Interface (API) na dokumentasyon para sa detalyadong impormasyon.

XControlView

Mayroon

UNO
bagay

Lahat

Ang UNO object na kumakatawan sa control view. Sumangguni sa XControl at UnoControlDialog sa Application Programming Interface (API) na dokumentasyon para sa detalyadong impormasyon.

XTreeDataModel

Mayroon

UNO
bagay

TreeControl

Ang UNO object na kumakatawan sa tree control data model. Sumangguni sa XMutableTreeDataModel sa Application Programming Interface (API) na dokumentasyon para sa detalyadong impormasyon.


Ang Halaga ng ari-arian

Uri ng kontrol

Type

Mga nilalaman

Button

Boolean

Para sa mga toggle button lamang

CheckBox

Boolean o Integer

0, Mali: hindi nasuri
1, Tama: nasuri
2: kulay abo, hindi ko alam

ComboBox

String

Ang napiling halaga. Ang ListIndex Ang ari-arian ay isang alternatibong opsyon.

CurrencyField

Numeric

DateField

Date

FileControl

String

Isang pangalan ng file na na-format alinsunod sa FileNaming ari-arian ng ScriptForge.FileSystem serbisyo

FormattedField

String o Numeric

ListBox

String o hanay ng mga string

Ang napiling (mga) hilera bilang scalar o bilang array depende sa MultiSelect katangian

NumericField

Numeric

PatternField

String

ProgressBar

Numeric

Dapat nasa loob ng paunang natukoy na mga hangganan

RadioButton

Boolean

Ang bawat pindutan ay may sariling pangalan. Naka-link sila kung magkadikit ang kanilang mga posisyon sa TAB. Kung ang isang radiobutton ay nakatakda sa totoo , ang iba pang mga kaugnay na button ay awtomatikong nakatakda sa Mali

ScrollBar

Numeric

Dapat nasa loob ng paunang natukoy na mga hangganan

TableControl

Array

Isang-dimensional na array na may data ng kasalukuyang napiling row.

TextField

String

Ang text na lumalabas sa field

TimeField

Date


note

wala po Halaga ari-arian para sa GroupBox , Hyperlink , ImageControl at TreeControl mga kontrol sa dialogo.


Mga katangian ng kaganapan

sa… nagbabalik ang mga property ng string ng URI na may reference sa script na na-trigger ng kaganapan. sa… Ang mga katangian ay maaaring itakda sa programmatically.
Basahin ang detalye nito sa scripting framework URI specification .

Pangalan

ReadOnly

Paglalarawan na may label sa Basic IDE

OnActionPerformed

Mayroon

Magsagawa ng aksyon

OnAdjustmentValueChanged

Mayroon

Habang nag-aayos

OnFocusGained

Mayroon

Kapag tumatanggap ng focus

OnFocusLost

Mayroon

Kapag nawawalan ng focus

OnItemStateChanged

Mayroon

Nabago ang status ng item

OnKeyPressed

Mayroon

Pinindot ang susi

OnKeyReleased

Mayroon

Inilabas ang susi

OnMouseDragged

Mayroon

Gumalaw ang mouse habang pinindot ang key

OnMouseEntered

Mayroon

Mouse sa loob

OnMouseExited

Mayroon

Mouse sa labas

OnMouseMoved

Mayroon

Gumalaw ang mouse

OnMousePressed

Mayroon

Pinindot ang mouse button

OnMouseReleased

Mayroon

Nabitawan ang mouse button

OnNodeExpanded

Hindi

(Wala sa Basic IDE) kapag pinindot ang expansion button sa isang node sa isang tree control

OnNodeSelected

Hindi

(Wala sa Basic IDE) kapag napili ang isang node sa control ng puno

OnTextChanged

Mayroon

Binago ang teksto


warning

Ang pagtatalaga ng mga kaganapan sa pamamagitan ng Basic IDE at pagtatalaga ng mga kaganapan sa pamamagitan ng mga macro ay kapwa eksklusibo.


Pamamaraan

Listahan ng Mga Paraan sa Serbisyo ng DialogControl

AddSubNode
AddSubTree
CreateRoot

FindNode
Resize
SetFocus

SetTableData
WriteLine


AddSubNode

Gumawa at magbalik ng bagong node ng tree control bilang isang UNO object subordinate sa isang parent node. Sumangguni sa XMutableTreeNode sa Application Programming Interface (API) na dokumentasyon para sa detalyadong impormasyon.

Maaaring tawagan ang pamamaraang ito bago ipakita ang dialog box para buuin ang paunang puno. Maaari rin itong tawagin mula sa isang diyalogo o kontrol na kaganapan - gamit ang OnNodeExpanded kaganapan - upang makumpleto ang puno nang pabago-bago.

Syntax:

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

Mga Parameter:

parentnode : Isang node UNO object, ng uri com.sun.star.awt.tree.XMutableTreeNode .

displayvalue : Ang text na lumalabas sa tree control box.

datavalue : Anumang value na nauugnay sa bagong node. datavalue maaaring isang string, isang numero o isang petsa. Alisin ang argumento kapag hindi naaangkop.

Halimbawa:

Kinukuha ng mga halimbawa ng LibreOffice Basic at Python ang kasalukuyang dokumento myDialog dialog mula sa Pamantayan aklatan.

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

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

AddSubTree

Bumalik totoo kapag ang isang subtree, na nasa ilalim ng isang parent node, ay matagumpay na maipasok sa isang kontrol ng puno. Kung ang parent node ay mayroon nang mga child node bago tawagan ang paraang ito, ang mga child node ay mabubura.

Maaaring tawagan ang pamamaraang ito bago ipakita ang dialog box para buuin ang paunang puno. Maaari rin itong tawagin mula sa isang diyalogo o kontrol na kaganapan - gamit ang OnNodeExpanded kaganapan - upang makumpleto ang puno nang pabago-bago.

Syntax:

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

Mga Parameter:

parentnode : Isang node UNO object, ng uri com.sun.star.awt.tree.XMutableTreeNode .

flattree : isang hanay ng dalawang dimensyon na pinagsunod-sunod sa mga column na naglalaman ng mga halaga ng display. Ang ganitong array ay maaaring ibigay ng GetRows pamamaraang inilapat sa SFDatabases.Database serbisyo. Kapag ang isang array item na naglalaman ng text na ipapakita ay Walang laman o Null , walang bagong subnode na nalikha at ang natitira sa row ay nilaktawan.


      Patag na puno >>>> Nagreresultang subtree
      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 : Kailan Mali ginagamit ang default na halaga, bawat column ng flattree naglalaman ng tekstong ipapakita sa kontrol ng puno. kailan totoo , ang mga tekstong ipapakita ( displayvalue ) ay nasa mga hanay 0, 2, 4, ... habang ang mga halaga ng data ( datavalue ) ay nasa hanay 1, 3, 5, ...

Halimbawa:

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

Nagbabalik ng bagong root node ng tree control, bilang isang node na UNO object ng uri com.sun.star.awt.tree.XMutableTreeNode . Ang bagong ugat ng puno ay ipinasok sa ibaba ng mga dati nang root node. Sumangguni sa XMutableTreeNode sa Application Programming Interface (API) na dokumentasyon para sa detalyadong impormasyon.

Maaaring tawagan ang pamamaraang ito bago ipakita ang dialog box para buuin ang paunang puno. Maaari rin itong tawagan mula sa isang dialog o control event upang dynamic na kumpletuhin ang puno.

Syntax:

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

Mga Parameter:

displayvalue : Ang text na lumalabas sa tree control box.

datavalue : Anumang value na nauugnay sa bagong node. datavalue maaaring isang string, isang numero o isang petsa. Alisin ang argumento kapag hindi naaangkop.

Halimbawa:

Sa Basic

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

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

FindNode

Tinatahak ang puno at hinanap nang paulit-ulit, simula sa ugat, ang isang node na nakakatugon sa ilang pamantayan. Alinman - sapat na ang 1 tugma - pagkakaroon ng pagtutugma ng halaga ng display nito displayvalue pattern o pagkakaroon ng halaga ng data nito na katumbas ng datavalue . Ang mga paghahambing ay maaaring case-sensitive o hindi. Ang unang pagtutugma na pangyayari ay ibinalik bilang isang node na UNO object ng uri com.sun.star.awt.tree.XMutableTreeNode . Sumangguni sa XMutableTreeNode sa Application Programming Interface (API) na dokumentasyon para sa detalyadong impormasyon.

Kapag hindi natagpuan, babalik ang pamamaraan wala , upang masuri sa IsNull() builtin function.

Maaaring tawagan ang pamamaraang ito bago ipakita ang dialog box para buuin ang paunang puno. Maaari rin itong tawagin mula sa isang diyalogo o kontrol na kaganapan.

Syntax:

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

Mga Parameter:

Isang argumento mula sa displayvalue o datavalue dapat tukuyin. Kung pareho ang naroroon, ang isang tugma ay sapat upang piliin ang node.

displayvalue : Ang pattern na itugma. Sumangguni sa SF_String.IsLike() paraan para sa listahan ng mga posibleng wildcard. Kapag katumbas ng zero-length na string (default), hindi hinahanap ang display value na ito.

datavalue : Anumang value na nauugnay sa bagong node. datavalue maaaring isang string, isang numero o isang petsa. Alisin ang argumento kapag hindi naaangkop.

casesensitive : Default na halaga ay Mali

Halimbawa:

Sa Basic

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

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

Resize

Ilipat ang kaliwang sulok sa itaas ng isang dialog control sa mga bagong coordinate at/o baguhin ang mga dimensyon nito. Bumalik totoo kung matagumpay ang pagbabago ng laki.

Syntax:

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

Mga Parameter:

Ang lahat ng mga distansya ay ipinahayag sa Mapa ang mga unit ng AppFont at sinusukat mula sa kaliwang sulok sa itaas ng dialog ng magulang. Nang walang mga argumento, binabago ng pamamaraan ang kontrol sa "ginustong laki" nito, isang sukat na isinaayos depende sa aktwal na nilalaman nito. Ang mga nawawalang argumento ay hindi nababago.

Kaliwa : Ang pahalang na distansya mula sa kaliwang sulok sa itaas

tuktok : Ang patayong distansya mula sa kaliwang sulok sa itaas

Lapad : ang pahalang na lapad ng parihaba na naglalaman ng kontrol

taas : ang patayong taas ng parihaba na naglalaman ng kontrol

Halimbawa:

Sa Basic

      Dim oControl As Object
      Set oDlg = CreateScriptService("SFDialogs.Dialog",,, "myDialog")
      Set oControl = oDlg.Controls("thisControl")
      oControl.Resize(100, 200, Height:=6000) ' Ang lapad ay hindi nagbabago
    
Sa Python

      dlg = CreateScriptService('Dialog', None, None, 'myDialog')
      ctrl = dlg.Controls('thisControl')
      ctrl.Resize(300, 200, 1500) # Ang taas ay hindi nagbabago
    

SetFocus

Itakda ang focus sa control. Bumalik totoo kung matagumpay ang pagtutok.

Ang pamamaraang ito ay madalas na tinatawag mula sa isang diyalogo o kontrol na kaganapan.

Syntax:

svc.SetFocus(): bool

Halimbawa:

Sa Basic

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

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

SetTableData

Pinuno a TableControl kasama ang ibinigay na datos. Ang lahat ng dati nang data ay iki-clear bago ipasok ang bagong data na ipinasa bilang argumento.

Kapag ang TableControl ay idinagdag sa dialog, posibleng gamitin ang Basic IDE upang tukuyin kung ipapakita ang mga header ng column at row sa talahanayan. Kung ang TableControl ay may mga header ng column at/o row, ang unang column at/o row sa ibinigay na array ng data ay ginagamit bilang mga label para sa mga header ng talahanayan.

Nagbabalik ang pamamaraang ito totoo kapag matagumpay.

Syntax:

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

Mga Parameter:

dataarray : Ang data na ilalagay sa talahanayan ay kinakatawan bilang Array ng Arrays sa Basic o isang tuple ng tuple sa Python. Ang data ay dapat magsama ng mga header ng column at row kung ang mga ito ay ipapakita ng TableControl .

mga lapad : Array na naglalaman ng mga kamag-anak na lapad ng bawat column. Sa madaling salita, lapad = (1, 2) nangangahulugan na ang pangalawang hanay ay dalawang beses na mas lapad kaysa sa una. Kung ang bilang ng mga halaga sa array ay mas maliit kaysa sa bilang ng mga column sa talahanayan, ang huling halaga sa array ay ginagamit upang tukuyin ang lapad ng natitirang mga column.

mga pagkakahanay : Tinutukoy ang pagkakahanay sa bawat column bilang isang string kung saan ang bawat karakter ay maaaring "L" (Kaliwa), "C" (Gitna), "R" (Kanan) o " " (whitespace, default, ibig sabihin ay kaliwa para sa mga string at kanan para sa mga numerong halaga). Kung ang haba ng string ay mas maikli kaysa sa bilang ng mga column sa talahanayan, ang huling character sa string ay ginagamit upang tukuyin ang pagkakahanay ng mga natitirang column.

RowHeaderWidth : lapad ng column ng header ng row na ipinahayag sa Mapa ang mga unit ng AppFont . Default = 10. Ang argumento ay binabalewala kapag ang TableControl walang row header.

Halimbawa:

Sa Basic

Ipinapalagay ng sumusunod na halimbawa na ang dialog myDialog may a TableControl pinangalanan Grid1 na may mga property na "Ipakita ang header ng row" at "Ipakita ang header ng column" sa "Oo."


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

Ang Halaga ibinabalik ng property ang napiling row sa table. Kung walang napiling row, ibabalik ang isang walang laman na Array object. Ipinapakita ng sumusunod na snippet ng code kung paano subukan kung anumang row ang napili sa talahanayan.


     rowValues = oTable.Value
     If UBound(rowValues) < 0 Then
         MsgBox "Walang napiling row."
     Else
         MsgBox "Row " & oTable.ListIndex & " ay napili."
     End If
   
Sa 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

Magdagdag ng bagong linya sa dulo ng isang multiline na field ng text. Isang bagong linyang karakter ang ipapasok kapag naaangkop. Ang pamamaraan ay nagbabalik totoo kapag matagumpay.

Ang isang error ay itinaas kung ang aktwal na kontrol ay hindi sa uri TextField o hindi multiline.

Syntax:

svc.WriteLine(opt line: str): bool

Mga Parameter:

Linya : Ang string na ipasok. Ang default ay isang walang laman na linya.

Halimbawa:

Sa Basic

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

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

Lahat ScriptForge Ang mga pangunahing gawain o identifier na may prefix na may underscore na character na "_" ay nakalaan para sa panloob na paggamit. Ang mga ito ay hindi nilalayong gamitin sa Basic macros o Python script.


Mangyaring suportahan kami!