ບໍລິການ SFDialogs.DialogControl

ບໍລິການ DialogControl ຈັດການຕົວຄວບຄຸມຕ່າງໆທີ່ເປັນຂອງໄດອາລັອກທີ່ກຳນົດດ້ວຍ Dialog Editor ຂອງ Basic. ແຕ່ລະອິນສະແຕນຊ໌ຂອງບໍລິການປັດຈຸບັນແທນຕົວຄວບຄຸມດ່ຽວພາຍໃນກ່ອງໄດອາລັອກ.

ຈຸດປະສົງຫຼັກແມ່ນຢູ່ທີ່ການດຶງຄ່າ ແລະ ຕັ້ງຄ່າທີ່ສະແດງໂດຍຕົວຄວບຄຸມຂອງກ່ອງໄດອາລັອກ. ການຈັດຮູບແບບສາມາດເຂົ້າເຖິງໄດ້ຜ່ານຄຸນສົມບັດ XControlModel ແລະ XControlView.

ໝາຍເຫດວ່າ ເນື້ອໃນຂອງຄຸນສົມບັດ DialogControl.Value ຈະແຕກຕ່າງກັນໄປຕາມປະເພດຕົວຄວບຄຸມ.

ມີການໃຫ້ຄວາມສຳຄັນເປັນພິເສດຕໍ່ຕົວຄວບຄຸມປະເພດຕົ້ນໄມ້ (tree control). ມັນງ່າຍທີ່ຈະຕື່ມຂໍ້ມູນໃສ່ຕົ້ນໄມ້, ບໍ່ວ່າຈະເປັນເທື່ອລະກິ່ງ ຫຼື ຫຼາຍກິ່ງພ້ອມກັນ. ການຕື່ມຂໍ້ມູນໃສ່ຕົວຄວບຄຸມຕົ້ນໄມ້ສາມາດເຮັດໄດ້ທັງແບບຄົງທີ່ (statically) ຫຼື ແບບໄດນາມິກ (dynamically).

ໄອຄອນ ເຄັດລັບ

ບໍລິການ SFDialogs.DialogControl ມີຄວາມກ່ຽວຂ້ອງກັນຢ່າງໃກ້ຊິດກັບບໍລິການ SFDialogs.Dialog.


ການເອີ້ນໃຊ້ບໍລິການ

ກ່ອນທີ່ຈະໃຊ້ບໍລິການ DialogControl, ຫ້ອງສະໝຸດ ScriptForge ຈຳເປັນຕ້ອງໄດ້ຮັບການໂຫຼດ ຫຼື ນຳເຂົ້າ:

ໄອຄອນ ບັນທຶກ

• ມາໂຄຣ Basic ຕ້ອງມີການໂຫຼດຄັງສຳນວນ ScriptForge ໂດຍໃຊ້ຄຳສັ່ງດັ່ງນີ້:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• ສະຄຣິບ Python ຕ້ອງມີການນຳເຂົ້າຈາກໂມດູນ scriptforge:
from scriptforge import CreateScriptService


ບໍລິການ DialogControl ຖືກເອີ້ນໃຊ້ຈາກອິນສະແຕນຊ໌ຂອງບໍລິການ Dialog ທີ່ມີຢູ່ຜ່ານວິທີການ Controls() ຂອງມັນ. ໄດອາລັອກຕ້ອງຖືກເລີ່ມຕົ້ນດ້ວຍບໍລິການ SFDialogs.Dialog.


      Dim myDialog As Object, myControl As Object
      Set myDialog = CreateScriptService("SFDialogs.Dialog", "GlobalScope", myLibrary, DialogName)
      Set myControl = myDialog.Controls("myTextBox")
      myControl.Value = "ໄດອາລັອກເລີ່ມຕົ້ນເມື່ອ " & Now()
      myDialog.Execute()
      ' ... ປະມວນຜົນຄ່າຕົວຈິງຂອງຕົວຄວບຄຸມ
      myDialog.Terminate()
   

     from time import localtime, strftime
     dlg = CreateScriptService('SFDialogs.Dialog', 'GlobalScope', lib_name, dlg_name)
     text = dlg.Controls('myTextBox')
     text.Value = "ໄດອາລັອກເລີ່ມຕົ້ນເມື່ອ " + strftime("%a, %d %b %Y %H:%M:%S", localtime())
     dlg.Execute()
     # ... ປະມວນຜົນຄ່າຕົວຈິງຂອງຕົວຄວບຄຸມ
     dlg.Terminate()
   

ການດຶງອິນສະແຕນຊ໌ DialogControl ທີ່ກະຕຸ້ນເຫດການຂອງຕົວຄວບຄຸມ

ອິນສະແຕນຊ໌ຂອງບໍລິການ DialogControl ສາມາດດຶງມາໄດ້ຜ່ານບໍລິການ SFDialogs.DialogEvent, ໂດຍທີ່ໄດອາລັອກນັ້ນຕ້ອງຖືກເລີ່ມຕົ້ນດ້ວຍບໍລິການ Dialog. ໃນຕົວຢ່າງລຸ່ມນີ້, oControl ຈະບັນຈຸອິນສະແຕນຊ໌ DialogControl ທີ່ກະຕຸ້ນເຫດການຂອງຕົວຄວບຄຸມ.


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

ຫຼື ໃຊ້ Python:


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

ໝາຍເຫດວ່າໃນຕົວຢ່າງກ່ອນໜ້ານີ້, ຄຳນຳໜ້າ "SFDialogs." ອາດຈະຖືກລະເວັ້ນໄດ້ຕາມຄວາມເໝາະສົມ.

ການຈັດການຂໍ້ຜິດພາດ (exceptions) ໃນຕົວຈັດການເຫດການ

ເມື່ອສ້າງຕົວຈັດການເຫດການສຳລັບເຫດການຂອງຕົວຄວບຄຸມ, ມັນເປັນວິທີທີ່ດີທີ່ຈະຈັດການກັບຂໍ້ຜິດພາດພາຍໃນ subroutine ນັ້ນເອງ. ຕົວຢ່າງ, ສົມມຸດວ່າຕົວຈັດການເຫດການລຸ່ມນີ້ຖືກເອີ້ນເມື່ອປຸ່ມຖືກຄລິກ.


    Sub OnButtonClicked(ByRef oEvent As Object)
    On Local Error GoTo Catch
        Dim oControl As Object
        oControl = CreateScriptService("DialogEvent", oEvent)
        ' ປະມວນຜົນເຫດການ
        Exit Sub
    Catch:
        MsgBox SF_Exception.Description
        SF_Exception.Clear
    End Sub
  
ໄອຄອນ ເຄັດລັບ

ເອີ້ນໃຊ້ SF_Exception.Clear ຖ້າທ່ານບໍ່ຕ້ອງການໃຫ້ຂໍ້ຜິດພາດສົ່ງຕໍ່ໄປຫຼັງຈາກການເຮັດວຽກຂອງໄດອາລັອກສິ້ນສຸດລົງ.


ໃນ Python ໃຫ້ໃຊ້ບລັອກ try/except ເພື່ອຈັດການຂໍ້ຜິດພາດດັ່ງທີ່ສະແດງລຸ່ມນີ້:


    def on_button_clicked(event=None):
        try:
            oControl = CreateScriptService("DialogEvent", event)
            # ປະມວນຜົນເຫດການ
        except Exception as e:
            # ວັດຖຸ "bas" ລຸ່ມນີ້ແມ່ນອິນສະແຕນຊ໌ຂອງບໍລິການ Basic
            bas.MsgBox(str(e))
  

ປະເພດຕົວຄວບຄຸມ

ບໍລິການ DialogControl ສາມາດໃຊ້ໄດ້ກັບຕົວຄວບຄຸມປະເພດເຫຼົ່ານີ້:

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

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

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

• TableControl
• TabPageContainer
• TextField
• TimeField
• TreeControl


ໄອຄອນ ບັນທຶກ

ປະເພດຕົວຄວບຄຸມ TabPageContainer ບໍ່ໄດ້ຖືກກຳນົດໄວ້ໃນ Dialog Editor.


ຄຸນສົມບັດ

ຊື່

ອ່ານຢ່າງດຽວ

ປະເພດ

ໃຊ້ໄດ້ກັບ

ຄຳອະທິບາຍ

Border

ແມ່ນ

String

Button, …

ຄຸນສົມບັດ Border ໝາຍເຖິງຂອບອ້ອມຮອບຕົວຄວບຄຸມ: "3D", "FLAT" ຫຼື "NONE".

Cancel

ບໍ່

Boolean

Button

ກຳນົດວ່າປຸ່ມຄຳສັ່ງມີພຶດຕິກຳເປັນປຸ່ມ ຍົກເລີກ ຫຼື ບໍ່.

Caption

ບໍ່

String

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

ກຳນົດຂໍ້ຄວາມທີ່ກ່ຽວຂ້ອງກັບຕົວຄວບຄຸມ.

ControlType

ແມ່ນ

String

ທັງໝົດ

ໜຶ່ງໃນປະເພດທີ່ລະບຸໄວ້ຂ້າງເທິງ.

CurrentNode

ບໍ່

ວັດຖຸ
UNO

TreeControl

ໂນດ (node) ເທິງສຸດທີ່ຖືກເລືອກຢູ່ໃນຕົວຄວບຄຸມຕົ້ນໄມ້. ເບິ່ງ XmutableTreeNode ໃນເອກະສານ API ສຳລັບຂໍ້ມູນລະອຽດ.

Default

ບໍ່

Boolean

Button

ກຳນົດວ່າປຸ່ມຄຳສັ່ງເປັນປຸ່ມເລີ່ມຕົ້ນ (ຕົກລົງ) ຫຼື ບໍ່.

Enabled

ບໍ່

Boolean

ທັງໝົດ

ກຳນົດວ່າຕົວຄວບຄຸມສາມາດເຂົ້າເຖິງໄດ້ດ້ວຍເຄີເຊີ (cursor) ຫຼື ບໍ່.

Format

ບໍ່

String

DateField, TimeField, FormattedField

(ອ່ານຢ່າງດຽວ)

ກຳນົດຮູບແບບທີ່ໃຊ້ໃນການສະແດງວັນທີ ແລະ ເວລາ. ຕ້ອງເປັນໜຶ່ງໃນຂໍ້ຄວາມເຫຼົ່ານີ້:

ສຳລັບວັນທີ: "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".

ສຳລັບເວລາ: "24h short", "24h long", "12h short", "12h long".

ListCount

ແມ່ນ

Long

ComboBox, ListBox, TableControl

ກຳນົດຈຳນວນແຖວໃນ ListBox, ComboBox ຫຼື TableControl.

ListIndex

ບໍ່

Long

ComboBox, ListBox, TableControl

ກຳນົດວ່າລາຍການໃດຖືກເລືອກໃນ ListBox, ComboBox ຫຼື TableControl.

Locked

ບໍ່

Boolean

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

ກຳນົດວ່າຕົວຄວບຄຸມເປັນແບບອ່ານຢ່າງດຽວ ຫຼື ບໍ່.

MultiSelect

ບໍ່

Boolean

ListBox

ກຳນົດວ່າຜູ້ໃຊ້ສາມາດເລືອກໄດ້ຫຼາຍລາຍການໃນ listbox ຫຼື ບໍ່.

Name

ແມ່ນ

String

ທັງໝົດ

ຊື່ຂອງຕົວຄວບຄຸມ.

Page

ບໍ່

Integer

ທັງໝົດ

ໄດອາລັອກອາດຈະມີຫຼາຍໜ້າທີ່ຜູ້ໃຊ້ສາມາດເລື່ອນໄປເທື່ອລະຂັ້ນໄດ້. ຄຸນສົມບັດ Page ຂອງວັດຖຸ Dialog ກຳນົດວ່າໜ້າໃດຂອງໄດອາລັອກທີ່ກຳລັງເຮັດວຽກຢູ່.

ຄຸນສົມບັດ Page ຂອງຕົວຄວບຄຸມກຳນົດໜ້າຂອງໄດອາລັອກທີ່ຕົວຄວບຄຸມນັ້ນສະແດງໃຫ້ເຫັນ.

Parent

ແມ່ນ

ປ່ອງຢ້ຽມໂຕ້ຕອບ
ບໍລິການ

ທັງໝົດ

ອິນສະແຕນຊ໌ຂອງວັດຖຸຄລາດ SFDialogs.Dialog ທີ່ເປັນຕົວຫຼັກ.

Picture

ບໍ່

String

Button, ImageControl

ກຳນົດຊື່ໄຟລ໌ທີ່ມີບິດແມັບ (bitmap) ຫຼື ຮູບພາບປະເພດອື່ນທີ່ຈະສະແດງໃນຕົວຄວບຄຸມທີ່ລະບຸ. ຊື່ໄຟລ໌ຕ້ອງເປັນໄປຕາມຄຸນລັກສະນະ FileNaming ຂອງບໍລິການ ScriptForge.FileSystem.

RootNode

ແມ່ນ

ວັດຖຸ
UNO

TreeControl

ວັດຖຸທີ່ແທັນໂນດຮາກ (root node) ລະດັບຕໍ່າສຸດ (ປົກກະຕິແລ້ວຈະມີພຽງໂນດຮາກດຽວ). ເບິ່ງ XmutableTreeNode ໃນເອກະສານ API ສຳລັບຂໍ້ມູນລະອຽດ.

RowSource

ບໍ່

Array of strings

ComboBox, ListBox

ກຳນົດຂໍ້ມູນທີ່ມີຢູ່ໃນກ່ອງຄອມໂບ ຫຼື ກ່ອງລາຍການ.

TabIndex

ແມ່ນ

Numeric

All

ຄຸນສົມບັດ TabIndex ກຳນົດຕຳແໜ່ງຂອງຕົວຄວບຄຸມໃນລຳດັບການແທັບ (tab order) ພາຍໃນໄດອາລັອກ.

Text

ແມ່ນ

String

ComboBox, FileControl, FormattedField, PatternField, TextField

ໃຫ້ການເຂົ້າເຖິງຂໍ້ຄວາມທີ່ກຳລັງສະແດງໂດຍຕົວຄວບຄຸມ.

TipText

ບໍ່

String

ທັງໝົດ

ກຳນົດຂໍ້ຄວາມທີ່ຈະປະກົດຂຶ້ນເປັນ tooltip ເມື່ອທ່ານວາງຕົວຊີ້ເມົາສ໌ໄວ້ເທິງຕົວຄວບຄຸມ.

TripleState

ບໍ່

Boolean

CheckBox

ກຳນົດວ່າຕົວຄວບຄຸມ checkbox ຈະປະກົດເປັນສີເທົາ (dimmed) ຫຼື ບໍ່.

URL

ບໍ່

String

Hyperlink

URL ທີ່ຈະເປີດເມື່ອຕົວຄວບຄຸມຖືກຄລິກ.

Value

ບໍ່

Variant

ເບິ່ງທີ່ ຄຸນສົມບັດ Value

Visible

ບໍ່

Boolean

ທັງໝົດ

ກຳນົດວ່າຕົວຄວບຄຸມຈະຖືກເຊື່ອງ ຫຼື ສະແດງໃຫ້ເຫັນ.

XControlModel

ແມ່ນ

ວັດຖຸ
UNO

ທັງໝົດ

ວັດຖຸ UNO ທີ່ແທນຕົວແບບຄວບຄຸມ (control model). ເບິ່ງ XControlModel ແລະ UnoControlDialogModel ໃນເອກະສານ API ສຳລັບຂໍ້ມູນລະອຽດ.

XControlView

ແມ່ນ

ວັດຖຸ
UNO

ທັງໝົດ

ວັດຖຸ UNO ທີ່ແທນມຸມມອງຄວບຄຸມ (control view). ເບິ່ງ XControl ແລະ UnoControlDialog ໃນເອກະສານ API ສຳລັບຂໍ້ມູນລະອຽດ.

XTreeDataModel

ແມ່ນ

ວັດຖຸ
UNO

TreeControl

ວັດຖຸ UNO ທີ່ແທນຕົວແບບຂໍ້ມູນຂອງຕົວຄວບຄຸມຕົ້ນໄມ້. ເບິ່ງ XMutableTreeDataModel ໃນເອກະສານ API ສຳລັບຂໍ້ມູນລະອຽດ.

XGridColumnModel

ແມ່ນ

ວັດຖຸ
UNO

TableControl

ວັດຖຸ UNO ທີ່ແທນຕົວແບບຂໍ້ມູນຂອງຕົວຄວບຄຸມຕາຕະລາງ. ເບິ່ງ XGridColumnModel ໃນເອກະສານ API ສຳລັບຂໍ້ມູນລະອຽດ.

XGridDataModel

ແມ່ນ

ວັດຖຸ
UNO

TableControl

ວັດຖຸ UNO ທີ່ແທນຕົວແບບຂໍ້ມູນຂອງຕົວຄວບຄຸມກຣິດ. ເບິ່ງ XGridDataModel ໃນເອກະສານ API ສຳລັບຂໍ້ມູນລະອຽດ.


ຄຸນສົມບັດ Value

ປະເພດຕົວຄວບຄຸມ

ປະເພດ

ຄຳອະທິບາຍ

Button

Boolean

ສຳລັບປຸ່ມສະຫຼັບ (toggle buttons) ເທົ່ານັ້ນ

CheckBox

ບູລີນ (Boolean) ຫຼື ເລກຖ້ວນ (Integer)

0, False: ບໍ່ໄດ້ໝາຍເລືອກ
1, True: ໝາຍເລືອກແລ້ວ
2: ເປັນສີເທົາ, ບໍ່ຮູ້

ComboBox

String

ຄ່າທີ່ຖືກເລືອກ. ຄຸນສົມບັດ ListIndex ເປັນອີກທາງເລືອກໜຶ່ງ.

CurrencyField

ຕົວເລກ

DateField

Date

FileControl

String

ຊື່ໄຟລ໌ທີ່ຈັດຮູບແບບຕາມຄຸນສົມບັດ FileNaming ຂອງບໍລິການ ScriptForge.FileSystem

FormattedField

ຂໍ້ຄວາມ ຫຼື ຕົວເລກ

ListBox

ຂໍ້ຄວາມ ຫຼື ອາເຣຂອງຂໍ້ຄວາມ

ແຖວທີ່ຖືກເລືອກ ເປັນແບບຄ່າດ່ຽວ (scalar) ຫຼື ອາເຣ ຂຶ້ນຢູ່ກັບຄຸນລັກສະນະ MultiSelect

NumericField

ຕົວເລກ

PatternField

String

ProgressBar

ຕົວເລກ

ຕ້ອງຢູ່ພາຍໃນຂອບເຂດທີ່ກຳນົດໄວ້ລ່ວງໜ້າ

RadioButton

Boolean

ແຕ່ລະປຸ່ມມີຊື່ຂອງມັນເອງ. ພວກມັນຈະຖືກເຊື່ອມໂຍງເຂົ້າກັນຖ້າຕຳແໜ່ງ TAB ຂອງພວກມັນຢູ່ຕິດກັນ. ຖ້າ radiobutton ປຸ່ມໜຶ່ງຖືກຕັ້ງເປັນ True, ປຸ່ມອື່ນໆທີ່ກ່ຽວຂ້ອງຈະຖືກຕັ້ງເປັນ False ໂດຍອັດຕະໂນມັດ

ScrollBar

ຕົວເລກ

ຕ້ອງຢູ່ພາຍໃນຂອບເຂດທີ່ກຳນົດໄວ້ລ່ວງໜ້າ

TabPageContainer

Numeric

ໄດອາລັອກອາດຈະມີຫຼາຍແທັບທີ່ລະບຸໝາຍເລກໄວ້ ເຊິ່ງສາມາດລະບຸ ຫຼື ແກ້ໄຂໄດ້ໂດຍຄຸນສົມບັດ Value ຂອງພວກມັນ.

TableControl

Array

ອາເຣໜຶ່ງມິຕິທີ່ມີຂໍ້ມູນຂອງແຖວທີ່ຖືກເລືອກໃນປັດຈຸບັນ.

TextField

String

ຂໍ້ຄວາມທີ່ປະກົດຢູ່ໃນຟິວ (field)

TimeField

Date


ໄອຄອນ ບັນທຶກ

ບໍ່ມີຄຸນສົມບັດ Value ສຳລັບຕົວຄວບຄຸມໄດອາລັອກປະເພດ GroupBox, Hyperlink, ImageControl ແລະ TreeControl.


ຄຸນສົມບັດເຫດການ

ຄຸນສົມບັດເຫດການ On… ແມ່ນຂໍ້ຄວາມ URI ທີ່ອ້າງອີງເຖິງສະຄຣິບ (script) ທີ່ຖືກກະຕຸ້ນເມື່ອມີເຫດການເກີດຂຶ້ນ. ອ່ານລາຍລະອຽດເພີ່ມເຕີມໄດ້ທີ່ scripting framework URI specification.

ຊື່ (ລິ້ງ API ຂອງເຫດການ)

ຄຳອະທິບາຍຕາມທີ່ຕິດສະຫຼາກໄວ້ໃນ Basic IDE

OnActionPerformed

ດຳເນີນການ

OnAdjustmentValueChanged

ໃນຂະນະທີ່ປັບ

OnFocusGained

ເມື່ອໄດ້ຮັບໂຟກັສ

OnFocusLost

ເມື່ອເສຍໂຟກັສ

OnItemStateChanged

ສະຖານະຂອງລາຍການປ່ຽນແປງ

OnKeyPressed

ກົດປຸ່ມຄີບອດ

OnKeyReleased

ປ່ອຍປຸ່ມຄີບອດ

OnMouseDragged

ເມົາສ໌ເຄື່ອນທີ່ໃນຂະນະທີ່ກົດປຸ່ມ

OnMouseEntered

ເມົາສ໌ຢູ່ຂ້າງໃນ

OnMouseExited

ເມົາສ໌ຢູ່ຂ້າງນອກ

OnMouseMoved

OnMousePressed

ກົດປຸ່ມເມົາສ໌

OnMouseReleased

ປ່ອຍປຸ່ມເມົາສ໌

OnNodeExpanded

(ບໍ່ມີໃນ Basic IDE) ເມື່ອປຸ່ມຂະຫຍາຍຖືກກົດຢູ່ໃນໂນດຂອງຕົວຄວບຄຸມຕົ້ນໄມ້

OnNodeSelected

(ບໍ່ມີໃນ Basic IDE) ເມື່ອໂນດໃນຕົວຄວບຄຸມຕົ້ນໄມ້ຖືກເລືອກ

OnTabSelected

(ບໍ່ມີໃນ Basic IDE) ເມື່ອແທັບໃນຕົວຄວບຄຸມ TabPage ຖືກເລືອກ

OnTextChanged

ຂໍ້ຄວາມຖືກແກ້ໄຂ


ໄອຄອນ ເຄັດລັບ

ຄຳແນະນຳ: ຄຸນສົມບັດ On… ທັງໝົດສາມາດກຳນົດຜ່ານການຂຽນໂປຣແກຣມໄດ້.
ຕົວຢ່າງ How to display data in a tree control ໃນ LibreOffice Wiki ໄດ້ສາທິດເລື່ອງນີ້ໄວ້.


ໄອຄອນ ຄຳເຕືອນ

ການກຳນົດເຫດການຜ່ານ Basic IDE ແລະ ການກຳນົດເຫດການຜ່ານມາກໂຣ ບໍ່ສາມາດເຮັດຮ່ວມກັນໄດ້.


ວິທີການ (Methods)

ລາຍການວິທີການໃນບໍລິການ DialogControl

AddSubNode
AddSubTree
CreateRoot

FindNode
Resize
SetFocus

SetTableData
WriteLine


AddSubNode

ສ້າງ ແລະ ສົ່ງຄືນໂນດໃໝ່ຂອງຕົວຄວບຄຸມຕົ້ນໄມ້ ເປັນວັດຖຸ UNO ທີ່ຢູ່ພາຍໃຕ້ໂນດຫຼັກ. ເບິ່ງ XMutableTreeNode ໃນເອກະສານ API ສຳລັບຂໍ້ມູນລະອຽດ.

ວິທີການນີ້ອາດຈະຖືກເອີ້ນກ່ອນທີ່ຈະສະແດງກ່ອງໄດອາລັອກເພື່ອສ້າງຕົ້ນໄມ້ເລີ່ມຕົ້ນ. ມັນຍັງສາມາດຖືກເອີ້ນຈາກເຫດການຂອງໄດອາລັອກ ຫຼື ຕົວຄວບຄຸມ - ໂດຍໃຊ້ເຫດການ OnNodeExpanded - ເພື່ອເຮັດໃຫ້ຕົ້ນໄມ້ສົມບູນແບບໄດນາມິກ.

ໄວຍາກອນ:

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

ພາຣາມິເຕີ:

parentnode: ວັດຖຸ UNO ຂອງໂນດ, ປະເພດ com.sun.star.awt.tree.XMutableTreeNode.

displayvalue: ຂໍ້ຄວາມທີ່ປະກົດຢູ່ໃນກ່ອງຕົວຄວບຄຸມຕົ້ນໄມ້.

datavalue: ຄ່າໃດໜຶ່ງທີ່ກ່ຽວຂ້ອງກັບໂນດໃໝ່. datavalue ອາດຈະເປັນຂໍ້ຄວາມ, ຕົວເລກ ຫຼື ວັນທີ. ໃຫ້ລະເວັ້ນອາຄິວເມັນນີ້ຫາກບໍ່ຈຳເປັນ.

ຕົວຢ່າງ:

ຕົວຢ່າງ LibreOffice Basic ແລະ Python ຈະດຶງໄດອາລັອກ myDialog ຂອງເອກະສານປັດຈຸບັນຈາກຫ້ອງສະໝຸດ Standard.

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

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

AddSubTree

ສົ່ງຄືນ True ເມື່ອຕົ້ນໄມ້ຍ່ອຍ (subtree) ທີ່ຢູ່ພາຍໃຕ້ໂນດຫຼັກ ຖືກແຊກເຂົ້າໃນຕົວຄວບຄຸມຕົ້ນໄມ້ສຳເລັດ. ຖ້າໂນດຫຼັກມີໂນດລູກຢູ່ແລ້ວກ່ອນທີ່ຈະເອີ້ນວິທີການນີ້, ໂນດລູກເຫຼົ່ານັ້ນຈະຖືກລຶບອອກ.

ວິທີການນີ້ອາດຈະຖືກເອີ້ນກ່ອນທີ່ຈະສະແດງກ່ອງໄດອາລັອກເພື່ອສ້າງຕົ້ນໄມ້ເລີ່ມຕົ້ນ. ມັນຍັງສາມາດຖືກເອີ້ນຈາກເຫດການຂອງໄດອາລັອກ ຫຼື ຕົວຄວບຄຸມ - ໂດຍໃຊ້ເຫດການ OnNodeExpanded - ເພື່ອເຮັດໃຫ້ຕົ້ນໄມ້ສົມບູນແບບໄດນາມິກ.

ໄວຍາກອນ:

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

ພາຣາມິເຕີ:

parentnode: ວັດຖຸ UNO ຂອງໂນດ, ປະເພດ com.sun.star.awt.tree.XMutableTreeNode.

flattree: ອາເຣສອງມິຕິທີ່ຈັດຮຽງຕາມຖັນທີ່ມີຄ່າທີ່ຈະສະແດງ. ອາເຣດັ່ງກ່າວສາມາດໄດ້ມາຈາກວິທີການ GetRows ຂອງບໍລິການ SFDatabases.Database. ເມື່ອລາຍການໃນອາເຣທີ່ມີຂໍ້ຄວາມທີ່ຈະສະແດງເປັນ Empty ຫຼື Null, ຈະບໍ່ມີການສ້າງໂນດຍ່ອຍໃໝ່ ແລະ ສ່ວນທີ່ເຫຼືອຂອງແຖວນັ້ນຈະຖືກຂ້າມໄປ.


      ຕົ້ນໄມ້ແບບແບນ (Flat tree)    >>>>    ຕົ້ນໄມ້ຍ່ອຍທີ່ໄດ້ຮັບ
      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: ເມື່ອໃຊ້ຄ່າເລີ່ມຕົ້ນ False, ທຸກໆຖັນຂອງ flattree ຈະບັນຈຸຂໍ້ຄວາມທີ່ຈະສະແດງໃນຕົວຄວບຄຸມຕົ້ນໄມ້. ເມື່ອເປັນ True, ຂໍ້ຄວາມທີ່ຈະສະແດງ (displayvalue) ຈະຢູ່ໃນຖັນ 0, 2, 4, ... ໃນຂະນະທີ່ຄ່າຂໍ້ມູນ (datavalue) ຈະຢູ່ໃນຖັນ 1, 3, 5, ...

ຕົວຢ່າງ:

ໃນ 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)
   
ໃນ 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

ສົ່ງຄືນໂນດຮາກໃໝ່ຂອງຕົວຄວບຄຸມຕົ້ນໄມ້ ເປັນວັດຖຸ UNO ຂອງໂນດປະເພດ com.sun.star.awt.tree.XMutableTreeNode. ຮາກຂອງຕົ້ນໄມ້ໃໝ່ຈະຖືກແຊກໄວ້ລຸ່ມໂນດຮາກທີ່ມີມາກ່ອນແລ້ວ. ເບິ່ງ XMutableTreeNode ໃນເອກະສານ API ສຳລັບຂໍ້ມູນລະອຽດ.

ວິທີການນີ້ອາດຈະຖືກເອີ້ນກ່ອນທີ່ຈະສະແດງກ່ອງໄດອາລັອກເພື່ອສ້າງຕົ້ນໄມ້ເລີ່ມຕົ້ນ. ມັນຍັງສາມາດຖືກເອີ້ນຈາກເຫດການຂອງໄດອາລັອກ ຫຼື ຕົວຄວບຄຸມເພື່ອເຮັດໃຫ້ຕົ້ນໄມ້ສົມບູນແບບໄດນາມິກ.

ໄວຍາກອນ:

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

ພາຣາມິເຕີ:

displayvalue: ຂໍ້ຄວາມທີ່ປະກົດຢູ່ໃນກ່ອງຕົວຄວບຄຸມຕົ້ນໄມ້.

datavalue: ຄ່າໃດໜຶ່ງທີ່ກ່ຽວຂ້ອງກັບໂນດໃໝ່. datavalue ອາດຈະເປັນຂໍ້ຄວາມ, ຕົວເລກ ຫຼື ວັນທີ. ໃຫ້ລະເວັ້ນອາຄິວເມັນນີ້ຫາກບໍ່ຈຳເປັນ.

ຕົວຢ່າງ:

ໃນ Basic

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

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

FindNode

ທ່ອງໄປໃນຕົ້ນໄມ້ ແລະ ຄົ້ນຫາໂນດທີ່ກົງກັບເງື່ອນໄຂບາງຢ່າງແບບຊ້ຳຄືນ (recursively) ໂດຍເລີ່ມຈາກຮາກ. ພຽງແຕ່ 1 ເງື່ອນໄຂທີ່ກົງກັນກໍພຽງພໍ - ບໍ່ວ່າຈະມີຄ່າສະແດງທີ່ກົງກັບຮູບແບບ displayvalue ຫຼື ມີຄ່າຂໍ້ມູນເທົ່າກັບ datavalue. ການປຽບທຽບອາດຈະມີການແຍກຕົວອັກສອນນ້ອຍ-ໃຫຍ່ ຫຼື ບໍ່ກໍໄດ້. ລາຍການທຳອິດທີ່ກົງກັນຈະຖືກສົ່ງຄືນເປັນວັດຖຸ UNO ຂອງໂນດປະເພດ com.sun.star.awt.tree.XMutableTreeNode. ເບິ່ງ XMutableTreeNode ໃນເອກະສານ API ສຳລັບຂໍ້ມູນລະອຽດ.

ເມື່ອບໍ່ພົບ, ວິທີການນີ້ຈະສົ່ງຄືນ Nothing, ເຊິ່ງສາມາດກວດສອບໄດ້ດ້ວຍຟັງຊັນ IsNull().

ວິທີການນີ້ອາດຈະຖືກເອີ້ນກ່ອນທີ່ຈະສະແດງກ່ອງໄດອາລັອກເພື່ອສ້າງຕົ້ນໄມ້ເລີ່ມຕົ້ນ. ມັນຍັງສາມາດຖືກເອີ້ນຈາກເຫດການຂອງໄດອາລັອກ ຫຼື ຕົວຄວບຄຸມ.

ໄວຍາກອນ:

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

ພາຣາມິເຕີ:

ຕ້ອງລະບຸອາຄິວເມັນຢ່າງໜ້ອຍໜຶ່ງຢ່າງລະຫວ່າງ displayvalue ຫຼື datavalue. ຖ້າລະບຸທັງສອງ, ພຽງແຕ່ອັນໃດອັນໜຶ່ງກົງກັນກໍພຽງພໍທີ່ຈະເລືອກໂນດນັ້ນ.

displayvalue: ຮູບແບບທີ່ຕ້ອງການໃຫ້ກົງກັນ. ເບິ່ງວິທີການ SF_String.IsLike() ສຳລັບລາຍການຂອງຕົວແທນ (wildcards) ທີ່ເປັນໄປໄດ້. ເມື່ອເທົ່າກັບຂໍ້ຄວາມທີ່ມີຄວາມຍາວເປັນສູນ (ຄ່າເລີ່ມຕົ້ນ), ຄ່າສະແດງນີ້ຈະບໍ່ຖືກຄົ້ນຫາ.

datavalue: ຄ່າໃດໜຶ່ງທີ່ກ່ຽວຂ້ອງກັບໂນດໃໝ່. datavalue ອາດຈະເປັນຂໍ້ຄວາມ, ຕົວເລກ ຫຼື ວັນທີ. ໃຫ້ລະເວັ້ນອາຄິວເມັນນີ້ຫາກບໍ່ຈຳເປັນ.

casesensitive: ຄ່າເລີ່ມຕົ້ນແມ່ນ False

ຕົວຢ່າງ:

ໃນ Basic

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

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

Resize

ຍ້າຍມຸມຊ້າຍເທິງຂອງຕົວຄວບຄຸມໄດອາລັອກໄປຫາພິກັດໃໝ່ ແລະ/ຫຼື ປັບປ່ຽນຂະໜາດຂອງມັນ. ສົ່ງຄືນ True ຖ້າການປ່ຽນຂະໜາດສຳເລັດ.

ໄວຍາກອນ:

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

ພາຣາມິເຕີ:

ໄລຍະຫ່າງທັງໝົດຈະສະແດງເປັນ ຫົວໜ່ວຍ Map AppFont ແລະ ຖືກວັດແທກຈາກມຸມຊ້າຍເທິງຂອງໄດອາລັອກຫຼັກ. ຖ້າບໍ່ມີອາຄິວເມັນ, ວິທີການນີ້ຈະປ່ຽນຂະໜາດຕົວຄວບຄຸມເປັນ "ຂະໜາດທີ່ເໝາະສົມ", ເຊິ່ງເປັນຂະໜາດທີ່ປັບຕາມເນື້ອໃນຕົວຈິງຂອງມັນ. ອາຄິວເມັນທີ່ຂາດໄປຈະບໍ່ຖືກປ່ຽນແປງ.

ຊ້າຍ: ໄລຍະຫ່າງຕາມແນວນອນຈາກມຸມຊ້າຍເທິງ

ເທິງ: ໄລຍະຫ່າງຕາມແນວຕັ້ງຈາກມຸມຊ້າຍເທິງ

ຄວາມກວ້າງ: ຄວາມກວ້າງຕາມແນວນອນຂອງຮູບສີ່ແຈສາກທີ່ບັນຈຸຕົວຄວບຄຸມ

ຄວາມສູງ: ຄວາມສູງຕາມແນວຕັ້ງຂອງຮູບສີ່ແຈສາກທີ່ບັນຈຸຕົວຄວບຄຸມ

ຕົວຢ່າງ:

ໃນ Basic

      Dim oControl As Object
      Set oDlg = CreateScriptService("SFDialogs.Dialog",,, "myDialog")
      Set oControl = oDlg.Controls("thisControl")
      oControl.Resize(100, 200, Height:=6000) ' ຄວາມກວ້າງບໍ່ຖືກປ່ຽນແປງ
    
ໃນ Python

      dlg = CreateScriptService('Dialog', None, None, 'myDialog')
      ctrl = dlg.Controls('thisControl')
      ctrl.Resize(300, 200, 1500)  # ຄວາມສູງບໍ່ຖືກປ່ຽນແປງ
    

SetFocus

ຕັ້ງໂຟກັສໃສ່ຕົວຄວບຄຸມ. ສົ່ງຄືນ True ຖ້າການຕັ້ງໂຟກັສສຳເລັດ.

ວິທີການນີ້ມັກຈະຖືກເອີ້ນຈາກເຫດການຂອງໄດອາລັອກ ຫຼື ຕົວຄວບຄຸມ.

ໄວຍາກອນ:

svc.SetFocus(): bool

ຕົວຢ່າງ:

ໃນ Basic

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

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

SetTableData

ຕື່ມຂໍ້ມູນໃສ່ TableControl ດ້ວຍຂໍ້ມູນທີ່ກຳນົດໃຫ້. ຂໍ້ມູນທີ່ມີຢູ່ກ່ອນແລ້ວທັງໝົດຈະຖືກລຶບອອກກ່ອນທີ່ຈະແຊກຂໍ້ມູນໃໝ່ທີ່ສົ່ງມາເປັນອາຄິວເມັນ.

ເມື່ອ TableControl ຖືກເພີ່ມເຂົ້າໃນໄດອາລັອກ, ທ່ານສາມາດໃຊ້ Basic IDE ເພື່ອກຳນົດວ່າຈະສະແດງສ່ວນຫົວຂອງຖັນ ແລະ ແຖວໃນຕາຕະລາງຫຼືບໍ່. ຖ້າ TableControl ມີສ່ວນຫົວຖັນ ແລະ/ຫຼື ແຖວ, ຖັນ ແລະ/ຫຼື ແຖວທຳອິດໃນອາເຣຂໍ້ມູນທີ່ໃຫ້ມາຈະຖືກໃຊ້ເປັນປ້າຍຊື່ສຳລັບສ່ວນຫົວຕາຕະລາງ.

ວິທີການນີ້ຈະສົ່ງຄືນຄ່າ True ເມື່ອສຳເລັດ.

ໄວຍາກອນ:

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

ພາຣາມິເຕີ:

dataarray: ຂໍ້ມູນທີ່ຈະປ້ອນເຂົ້າໃນຕາຕະລາງ ເຊິ່ງສະແດງເປັນ Array ຂອງ Array ໃນ Basic ຫຼື ເປັນ tuple ຂອງ tuple ໃນ Python. ຂໍ້ມູນຕ້ອງລວມເຖິງສ່ວນຫົວຖັນ ແລະ ແຖວ ຫາກຕ້ອງການໃຫ້ພວກມັນສະແດງໃນ TableControl.

widths: ອາເຣທີ່ບັນຈຸຄວາມກວ້າງສຳພັດຂອງແຕ່ລະຖັນ. ເວົ້າອີກຢ່າງໜຶ່ງ, widths = (1, 2) ໝາຍຄວາມວ່າຖັນທີສອງກວ້າງເປັນສອງເທົ່າຂອງຖັນທຳອິດ. ຖ້າຈຳນວນຄ່າໃນອາເຣໜ້ອຍກວ່າຈຳນວນຖັນໃນຕາຕະລາງ, ຄ່າສຸດທ້າຍໃນອາເຣຈະຖືກໃຊ້ເພື່ອກຳນົດຄວາມກວ້າງຂອງຖັນທີ່ເຫຼືອ.

alignments: ກຳນົດການຈັດວາງໃນແຕ່ລະຖັນເປັນຂໍ້ຄວາມ ໂດຍແຕ່ລະຕົວອັກສອນສາມາດເປັນ "L" (ຊ້າຍ), "C" (ກາງ), "R" (ຂວາ) ຫຼື " " (ຊ່ອງວ່າງ, ຄ່າເລີ່ມຕົ້ນ, ໝາຍເຖິງຊ້າຍສຳລັບຂໍ້ຄວາມ ແລະ ຂວາສຳລັບຕົວເລກ). ຖ້າຄວາມຍາວຂອງຂໍ້ຄວາມສັ້ນກວ່າຈຳນວນຖັນໃນຕາຕະລາງ, ຕົວອັກສອນສຸດທ້າຍໃນຂໍ້ຄວາມຈະຖືກໃຊ້ເພື່ອກຳນົດການຈັດວາງຂອງຖັນທີ່ເຫຼືອ.

RowHeaderWidth: ຄວາມກວ້າງຂອງຖັນສ່ວນຫົວແຖວ ສະແດງເປັນ ຫົວໜ່ວຍ Map AppFont. ຄ່າເລີ່ມຕົ້ນ = 10. ອາຄິວເມັນນີ້ຈະຖືກລະເລີຍຫາກ TableControl ບໍ່ມີສ່ວນຫົວແຖວ.

ຕົວຢ່າງ:

ໃນ Basic

ຕົວຢ່າງຕໍ່ໄປນີ້ສົມມຸດວ່າໄດອາລັອກ myDialog ມີ TableControl ຊື່ Grid1 ໂດຍມີຄຸນສົມບັດ "Show row header" ແລະ "Show column header" ຕັ້ງເປັນ "Yes".


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

ຄຸນສົມບັດ Value ສົ່ງຄືນແຖວທີ່ຖືກເລືອກໃນຕາຕະລາງ. ຖ້າບໍ່ມີແຖວໃດຖືກເລືອກ, ຈະສົ່ງຄືນວັດຖຸ Array ທີ່ຫວ່າງເປົ່າ. ໂຄ້ດຕົວຢ່າງລຸ່ມນີ້ສະແດງວິທີກວດສອບວ່າມີແຖວໃດຖືກເລືອກໃນຕາຕະລາງຫຼືບໍ່.


     rowValues = oTable.Value
     If UBound(rowValues) < 0 Then
         MsgBox "ບໍ່ມີແຖວຖືກເລືອກ."
     Else
         MsgBox "ແຖວທີ " & oTable.ListIndex & " ຖືກເລືອກແລ້ວ."
     End If
   
ໃນ 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

ເພີ່ມແຖວໃໝ່ໃສ່ທ້າຍຂອງຊ່ອງຂໍ້ຄວາມຫຼາຍແຖວ (multiline text field). ຕົວອັກສອນຂຶ້ນແຖວໃໝ່ຈະຖືກແຊກເຂົ້າຕາມຄວາມເໝາະສົມ. ວິທີການນີ້ສົ່ງຄືນ True ເມື່ອສຳເລັດ.

ຈະເກີດຂໍ້ຜິດພາດຂຶ້ນ ຫາກຕົວຄວບຄຸມຕົວຈິງບໍ່ແມ່ນປະເພດ TextField ຫຼື ບໍ່ແມ່ນແບບຫຼາຍແຖວ.

ໄວຍາກອນ:

svc.WriteLine(opt line: str): bool

ພາຣາມິເຕີ:

Line: ຂໍ້ຄວາມທີ່ຈະແຊກເຂົ້າ. ຄ່າເລີ່ມຕົ້ນແມ່ນແຖວຫວ່າງເປົ່າ.

ຕົວຢ່າງ:

ໃນ Basic

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

     dlg = CreateScriptService('SFDialogs.Dialog', None, None, 'myDialog')
     ctrl = dlg.Controls('thisControl')
     ctr.WriteLine("a new line")
   
ໄອຄອນ ຄຳເຕືອນ

ຣູທີນ ຫຼື ຕົວລະບຸ Basic ຂອງ ScriptForge ທັງໝົດທີ່ຂຶ້ນຕົ້ນດ້ວຍເຄື່ອງໝາຍຂີດກ້ອງ "_" ແມ່ນສະຫງວນໄວ້ສຳລັບໃຊ້ພາຍໃນ. ພວກມັນບໍ່ໄດ້ມີໄວ້ໃຫ້ໃຊ້ໃນມາໂຄຣ Basic ຫຼື ສະຄຣິບ Python.


ກະລຸນາສະໜັບສະໜູນພວກເຮົາ!

ກະລຸນາສະໜັບສະໜູນພວກເຮົາ!