LibreOfficeDev 25.8 Βοήθεια
Η υπηρεσία DialogControl διαχειρίζεται τα στοιχεία ελέγχου που ανήκουν σε ένα παράθυρο διαλόγου που ορίζεται με τη Basic Dialog Editor. Κάθε παρουσία της τρέχουσας υπηρεσίας αντιπροσωπεύει ένα μόνο στοιχείο ελέγχου μέσα σε ένα πλαίσιο διαλόγου.
Η εστίαση τίθεται στη λήψη και τη ρύθμιση των τιμών που εμφανίζονται από τα χειριστήρια του πλαισίου διαλόγου. Η μορφοποίηση είναι προσβάσιμη μέσω των ιδιοτήτων XControlModel και XControlView.
Σημειώστε ότι το μοναδικό περιεχόμενο της ιδιότητας DialogControl.Value ποικίλλει ανάλογα με τον τύπο ελέγχου.
Ιδιαίτερη προσοχή δίνεται στους ελέγχους τύπου δέντρου ελέγχου. Είναι εύκολο να συμπληρώσετε ένα δέντρο, είτε κλαδί προς κλαδί, είτε με ένα σύνολο κλαδιών ταυτόχρονα. Η συμπλήρωση ενός στοιχείου ελέγχου δέντρου μπορεί να εκτελεστεί στατικά ή δυναμικά.
Η υπηρεσία SFDialogs.DialogControl σχετίζεται στενά με την υπηρεσία SFDialogs.Dialog.
Πριν τη χρήση της υπηρεσίας DialogControl, πρέπει να φορτωθεί ή να εισαχθεί η βιβλιοθήκη ScriptForge:
Η υπηρεσία 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 μπορεί να ανακτηθεί μέσω της υπηρεσίας 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." μπορεί να παραλειφθεί όταν κριθεί κατάλληλο.
Κατά τη δημιουργία ενός προγράμματος χειρισμού συμβάντων για συμβάντα ελέγχου, είναι καλή πρακτική να χειρίζεστε σφάλματα μέσα στην ίδια την υπορουτίνα. Για παράδειγμα, ας υποθέσουμε ότι ο χειριστής συμβάντων παρακάτω καλείται όταν πατήσετε στο πλήκτρο.
    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 | • FixedLine | • ListBox | • TableControl | 
TabPageContainer control type is not defined in the Dialog Editor.
| Όνομα | Μόνο για ανάγνωση | Τύπος | Εφαρμόζεται σε | Περιγραφή | 
|---|---|---|---|---|
| Border | Ναι | String | Button, … | Η ιδιότητα Border αναφέρεται στο περιβάλλον του στοιχείου ελέγχου: "3D", "FLAT", ή "NONE". | 
| Cancel | Όχι | Boolean | Button | Καθορίζει εάν ένα πλήκτρο εντολής έχει ή όχι τη συμπεριφορά ενός πλήκτρου Ακύρωσης. | 
| Caption | Όχι | String | Button, CheckBox, FixedLine, FixedText, GroupBox, Hyperlink, RadioButton | Καθορίζει το κείμενο που σχετίζεται με το στοιχείο ελέγχου. | 
| ControlType | Ναι | String | Όλα | Ένας από τους τύπους που αναφέρονται παραπάνω. | 
| CurrentNode | Όχι | Αντικείμενο | TreeControl | Ο προς το παρόν ανώτατος κόμβος που έχει επιλεγεί στο στοιχείο ελέγχου δέντρου. Ανατρέξτε στην τεκμηρίωση XmutableTreeNode της .διασύνδεση προγραμματισμού εφαρμογών (API) για λεπτομερείς πληροφορίες. | 
| Default | Όχι | Boolean | Button | Καθορίζει εάν ένα πλήκτρο εντολής είναι το προεπιλεγμένο πλήκτρο (OK). | 
| Enabled | Όχι | Boolean | Όλα | Καθορίζει εάν το στοιχείο ελέγχου είναι προσβάσιμο με τον δρομέα. | 
| 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 | Καθορίζει εάν ένας χρήστης μπορεί να κάνει πολλές επιλογές σε ένα πλαίσιο καταλόγου. | 
| Name | Ναι | String | Όλα | Το όνομα του στοιχείου ελέγχου. | 
| Page | Όχι | Integer | Όλα | Ένα παράθυρο διαλόγου μπορεί να έχει πολλές σελίδες που μπορεί να διασχίσει ο χρήστης βήμα προς βήμα. Η ιδιότητα Page (Σελίδα) του αντικειμένου διαλόγου ορίζει ποια σελίδα του διαλόγου είναι ενεργή. Η ιδιότητα Page (Σελίδα) ενός στοιχείου ελέγχου ορίζει τη σελίδα του διαλόγου στην οποία είναι ορατό το στοιχείο ελέγχου. | 
| Parent | Ναι | Υπηρεσία Dialog | Όλα | Η γονική παρουσία αντικειμένου κλάσης SFDialogs.Dialog. | 
| Picture | Όχι | String | Button, ImageControl | Καθορίζει το όνομα αρχείου που περιέχειμια ψηφιογραφία (bitmap) ή άλλο τύπο γραφικού που θα εμφανίζεται στο καθορισμένο στοιχείο ελέγχου. Το όνομα αρχείου πρέπει να συμμορφώνεται με το γνώρισμα FileNaming της υπηρεσίας ScriptForge.FileSystem. | 
| RootNode | Ναι | Αντικείμενο | TreeControl | Ένα αντικείμενο που αντιπροσωπεύει τον χαμηλότερο ριζικό κόμβο (συνήθως υπάρχει μόνο ένας τέτοιος κόμβος ρίζας). Ανατρέξτε στην τεκμηρίωση XmutableTreeNode διασύνδεσης προγραμματισμού εφαρμογών (API) για αναλυτικές πληροφορίες. | 
| RowSource | Όχι | Array of strings | ComboBox, ListBox | Καθορίζει τα δεδομένα που περιέχονται σε ένα σύνθετο πλαίσιο ή ένα πλαίσιο καταλόγου. | 
| TabIndex | Ναι | Numeric | All | Η ιδιότητα TabIndex καθορίζει τη θέση ενός στοιχείου ελέγχου στη σειρά των καρτελών στο παράθυρο διαλόγου. | 
| Text | Ναι | String | ComboBox, FileControl, FormattedField, PatternField, TextField | Παρέχει πρόσβαση στο κείμενο που εμφανίζεται από το στοιχείο ελέγχου. | 
| TipText | Όχι | String | Όλα | Καθορίζει το κείμενο που εμφανίζεται ως συμβουλή όταν κρατάτε τον δείκτη του ποντικιού πάνω από το στοιχείο ελέγχου. | 
| TripleState | Όχι | Boolean | CheckBox | Καθορίζει εάν το στοιχείο ελέγχου πλαισίου ελέγχου μπορεί να εμφανίζεται αμυδρό (γκρίζο) ή όχι. | 
| URL | Όχι | String | Hyperlink | Η διεύθυνση URL που θα ανοίξει όταν πατήσετε στο στοιχείο ελέγχου. | 
| Value | Όχι | Variant | Ανατρέξτε στην Ιδιότητα τιμής | |
| Visible | Όχι | Boolean | Όλα | Καθορίζει εάν το στοιχείο ελέγχου είναι κρυφό ή ορατό. | 
| XControlModel | Ναι | Αντικείμενο | Όλα | Το αντικείμενο UNO που αντιπροσωπεύει το μοντέλο ελέγχου. Ανατρέξτε στην τεκμηρίωση XControlModel και στο UnoControlDialogModel διασύνδεσης προγραμματισμού εφαρμογών (API) για λεπτομερείς πληροφορίες. | 
| XControlView | Ναι | Αντικείμενο | Όλα | Το αντικείμενο UNO που αντιπροσωπεύει την προβολή ελέγχου. Ανατρέξτε στο XControl και στο UnoControlDialog στην τεκμηρίωση της διασύνδεσης προγραμματισμού εφαρμογών (API) για λεπτομερείς πληροφορίες. | 
| XTreeDataModel | Ναι | Αντικείμενο | TreeControl | Το αντικείμενο UNO που αντιπροσωπεύει το μοντέλο δεδομένων ελέγχου δέντρου. Ανατρέξτε στο XMutableTreeDataModel στην τεκμηρίωση διασύνδεσης προγραμματισμού εφαρμογών (API) για αναλυτικές πληροφορίες. | 
| XGridColumnModel | Yes | UNO | TableControl | The UNO object representing the table control data model. Refer to XGridColumnModel in Application Programming Interface (API) documentation for detailed information. | 
| XGridDataModel | Yes | UNO | TableControl | The UNO object representing the tree control data model. Refer to XGridDataModel in Application Programming Interface (API) documentation for detailed information. | 
| Τύπος ελέγχου | Τύπος | Περιγραφή | 
|---|---|---|
| Button | Boolean | Μόνο για πλήκτρα εναλλαγής | 
| CheckBox | Τιμή Μπουλ ή ακέραιος | 0, False: μη επιλεγμένο | 
| ComboBox | String | Η επιλεγμένη τιμή. Η ιδιότητα ListIndex είναι μια εναλλακτική επιλογή. | 
| CurrencyField | Αριθμητικό | |
| DateField | Date | |
| FileControl | String | Ένα όνομα αρχείου μορφοποιημένο σύμφωνα με την ιδιότητα FileNaming της υπηρεσίας ScriptForge.FileSystem | 
| FormattedField | Συμβολοσειρά ή αριθμητικό | |
| ListBox | Συμβολοσειρά ή πίνακας συμβολοσειρών | Οι επιλεγμένες σειρές ως βαθμωτές ή ως πίνακας ανάλογα με το γνώρισμα MultiSelect | 
| NumericField | Αριθμητικό | |
| PatternField | String | |
| ProgressBar | Αριθμητικό | Πρέπει να είναι εντός των προκαθορισμένων ορίων | 
| RadioButton | Boolean | Κάθε πλήκτρο έχει το δικό του όνομα. Συνδέονται μεταξύ τους εάν οι θέσεις τους στο TAB είναι συνεχόμενες. Εάν ένα ραδιοπλήκτρο έχει οριστεί σε True, τα άλλα σχετικά πλήκτρα ορίζονται αυτόματα σε False | 
| ScrollBar | Αριθμητικό | Πρέπει να είναι εντός των προκαθορισμένων ορίων | 
| TabPageContainer | Numeric | A dialog may have several numbered tabs identifiable or modifiable by their Value property. | 
| TableControl | Array | Μονοδιάστατος πίνακας με τα δεδομένα της τρέχουσας επιλεγμένης σειράς. | 
| TextField | String | Το κείμενο που εμφανίζεται στο πεδίο | 
| TimeField | Date | 
Δεν υπάρχει ιδιότητα Value για τα στοιχεία ελέγχου διαλόγου GroupBox, Hyperlink, ImageControl και TreeControl .
| Name (event API link) | Η περιγραφή όπως επισημαίνεται στο IDE Basic | 
|---|---|
| OnActionPerformed | Εκτέλεση ενέργειας | 
| OnAdjustmentValueChanged | Κατά την προσαρμογή | 
| OnFocusGained | Κατά τη λήψη της εστίασης | 
| OnFocusLost | Κατά τη απώλεια της εστίασης | 
| OnItemStateChanged | Η κατάσταση του στοιχείου τροποποιήθηκε | 
| OnKeyPressed | Με το πλήκτρο πατημένο | 
| OnKeyReleased | Με το πλήκτρο απελευθερωμένο | 
| OnMouseDragged | Το ποντίκι μετακινήθηκε κατά το πάτημα του πλήκτρου | 
| OnMouseEntered | Το ποντίκι εντός | 
| OnMouseExited | Το ποντίκι εκτός | 
| OnMouseMoved | |
| OnMousePressed | Με πατημένο το πλήκτρο του ποντικιού | 
| OnMouseReleased | Με απελευθερωμένο το πλήκτρο του ποντικιού | 
| (Όχι στο IDE Basic) όταν πατηθεί το πλήκτρο επέκτασης σε έναν κόμβο σε ένα στοιχείο ελέγχου δέντρου | |
| (Όχι στο IDE Basic) όταν επιλέγεται ένας κόμβος σε ένα στοιχείο ελέγχου δέντρου | |
| (Not in Basic IDE) when a tab in a TabPage control is selected | |
| OnTextChanged | Το κείμενο τροποποιήθηκε | 
| Κατάλογος μεθόδων στην υπηρεσία DialogControl | ||
|---|---|---|
Δημιουργήστε και επιστρέψτε έναν νέο κόμβο του στοιχείου ελέγχου δέντρου ως αντικειμένου 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 μπορεί να είναι μια συμβολοσειρά, ένας αριθμός ή μια ημερομηνία. Παραλείψτε το όρισμα όταν δεν ισχύει.
Τα παραδείγματα στα LibreOfficeDev Basic και Python λαμβάνουν το παράθυρο διαλόγου myDialog του τρέχοντος εγγράφου από τη βιβλιοθήκη Standard.
      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 ...")
   
     dlg = CreateScriptService('SFDialogs.Dialog', None, None, 'myDialog')
     tree = dlg.Controls('myTreeControl')
     root = tree.CreateRoot('Tree top')
     node = tree.AddSubNode(root, 'A branch ...')
   Επιστρέφει True όταν ένα υποδέντρο, δευτερεύον σε έναν γονικό κόμβο, μπορούσε να εισαχθεί με επιτυχία σε ένα στοιχείο ελέγχου δέντρου. Εάν ο γονικός κόμβος είχε ήδη θυγατρικούς κόμβους πριν από την κλήση αυτής της μεθόδου, οι θυγατρικοί κόμβοι διαγράφονται.
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, ...
      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)
   
     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)
   Επιστρέφει έναν νέο ριζικό κόμβο του στοιχείου ελέγχου δέντρου, ως αντικείμενο UNO κόμβου τύπου com.sun.star.awt.tree.XMutableTreeNode. Η νέα ρίζα δέντρου εισάγεται κάτω από προϋπάρχοντες ριζικούς κόμβους. Ανατρέξτε στο XMutableTreeNode στην τεκμηρίωση διασύνδεσης προγραμματισμού εφαρμογών (API) για λεπτομερείς πληροφορίες.
Αυτή η μέθοδος μπορεί να κληθεί πριν από την εμφάνιση του πλαισίου διαλόγου για τη δημιουργία του αρχικού δέντρου. Μπορεί επίσης να κληθεί από ένα συμβάν διαλόγου ή ελέγχου για να ολοκληρωθεί δυναμικά το δέντρο.
svc.CreateRoot(displayvalue: str, opt datavalue: any): uno
displayvalue (τιμή εμφάνισης): Το κείμενο που εμφανίζεται στο πλαίσιο ελέγχου δέντρου.
      Dim myTree As Object, myNode As Object
      Set myTree = myDialog.Controls("myTreeControl")
      Set myNode = myTree.CreateRoot("Tree starts here ...")
   
     tree = dlg.Controls('myTreeControl')
     node = tree.CreateRoot('Tree starts here ...')
   Διασχίζει το δέντρο και βρίσκει αναδρομικά, ξεκινώντας από τη ρίζα, έναν κόμβο που πληροί ορισμένα κριτήρια. Είτε - 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() για τον κατάλογο των πιθανών χαρακτήρων υποκατάστασης. Όταν ισούται με τη συμβολοσειρά μηδενικού μήκους (προεπιλογή), αυτή η τιμή εμφάνισης δεν αναζητείται.
casesensitive (διάκριση πεζών-κεφαλαίων): Η προεπιλεγμένη τιμή είναι False
      Dim myTree As Object, myNode As Object
      Set myTree = myDialog.Controls("myTreeControl")
      Set myNode = myTree.FindNode("*Sophie*", CaseSensitive := True)
   
     tree = dlg.Controls('myTreeControl')
     node = FindNode('*Sophie*', casesensitive=True)
     if node is None:
         # ...
   Μετακινήστε την επάνω αριστερή γωνία ενός στοιχείου ελέγχου διαλόγου σε νέες συντεταγμένες ή/και τροποποιήστε τις διαστάσεις του. Επιστρέψτε το True εάν η αλλαγή μεγέθους ήταν επιτυχής.
svc.Resize(opt Left: int, opt Top: int, opt Width: int, opt Height: int): bool
Όλες οι αποστάσεις εκφράζονται σε Μονάδες Map AppFont και μετρώνται από την επάνω αριστερή γωνία του γονικού διαλόγου. Χωρίς ορίσματα, η μέθοδος αλλάζει το μέγεθος του στοιχείου ελέγχου στο "προτιμώμενο μέγεθος", ένα μέγεθος που προσαρμόζεται ανάλογα με το πραγματικό του περιεχόμενο. Τα ορίσματα που λείπουν παραμένουν αμετάβλητα.
Left: Η οριζόντια απόσταση από την επάνω αριστερή γωνία
Top: Η κατακόρυφη απόσταση από την επάνω αριστερή γωνία
Width: το οριζόντιο πλάτος του ορθογωνίου που περιέχει το στοιχείο ελέγχου
Height: το κατακόρυφο ύψος του ορθογωνίου που περιέχει το στοιχείο ελέγχου
      Dim oControl As Object
      Set oDlg = CreateScriptService("SFDialogs.Dialog",,, "myDialog")
      Set oControl = oDlg.Controls("thisControl")
      oControl.Resize(100, 200, Height:=6000) ' Το πλάτος είναι αμετάβλητο
    
      dlg = CreateScriptService('Dialog', None, None, 'myDialog')
      ctrl = dlg.Controls('thisControl')
      ctrl.Resize(300, 200, 1500) # Το ύψος παραμένει αμετάβλητο
    Ρύθμιση της εστίασης στον έλεγχο. Επιστρέφει True εάν η εστίαση ήταν επιτυχής.
Αυτή η μέθοδος καλείται συχνά από ένα συμβάν διαλόγου ή ελέγχου.
svc.SetFocus(): bool
      Dim oControl As Object
      Set oDlg = CreateScriptService("SFDialogs.Dialog",,, "myDialog")
      Set oControl = oDlg.Controls("thisControl")
      oControl.SetFocus()
    
      dlg = CreateScriptService('Dialog', None, None, 'myDialog')
      ctrl = dlg.Controls('thisControl')
      ctrl.SetFocus()
    Γεμίζει ένα TableControl με τα δεδομένα. Όλα τα προϋπάρχοντα δεδομένα διαγράφονται πριν από την εισαγωγή των νέων δεδομένων που διαβιβάστηκαν ως όρισμα.
Όταν το TableControl προστεθεί στο παράθυρο διαλόγου, μπορείτε να χρησιμοποιήσετε το IDE της Basic για να καθορίσετε εάν οι κεφαλίδες στηλών και σειρών θα εμφανίζονται στον πίνακα. Εάν το TableControl έχει κεφαλίδες στηλών ή/και σειρών, η πρώτη στήλη και/ή σειρά στον παρεχόμενο πίνακα δεδομένων χρησιμοποιούνται ως ετικέτες για τις κεφαλίδες του πίνακα.
Αυτή η μέθοδος επιστρέφει True όταν είναι επιτυχής.
svc.SetTableData(dataarray: any[0..*, 0..*], widths: int[0..*], alignments: str, RowHeaderWidth = 10): bool
dataarray: Τα δεδομένα που θα εισαχθούν στον πίνακα αντιπροσωπεύονται ως πίνακας πινάκων στη Basic ή πλειάδα πλειάδων στην Python. Τα δεδομένα πρέπει να περιλαμβάνουν κεφαλίδες στηλών και σειρών, εάν πρόκειται να εμφανιστούν από το TableControl.
widths: Πίνακας που περιέχει τα σχετικά πλάτη κάθε στήλης. Με άλλα λόγια, widths = (1, 2) σημαίνει ότι η δεύτερη στήλη έχει διπλάσιο πλάτος από την πρώτη. Εάν ο αριθμός των τιμών στον πίνακα είναι μικρότερος από τον αριθμό των στηλών του πίνακα, τότε η τελευταία τιμή του πίνακα χρησιμοποιείται για τον καθορισμό του πλάτους των υπολοίπων στηλών.
alignments (στοιχίσεις): Ορίζει τη στοίχιση σε κάθε στήλη ως μια συμβολοσειρά στην οποία κάθε χαρακτήρας μπορεί να είναι "L" (Αριστερά), "C" (Κέντρο), "R" (Δεξιά) ή " " (κενός χώρος, προεπιλογή, που σημαίνει αριστερά για συμβολοσειρές και δεξιά για αριθμητικές τιμές). Εάν το μήκος της συμβολοσειράς είναι μικρότερο από τον αριθμό των στηλών του πίνακα, τότε ο τελευταίος χαρακτήρας της συμβολοσειράς χρησιμοποιείται για τον καθορισμό της στοίχισης των υπόλοιπων στηλών.
RowHeaderWidth: πλάτος στήλης της κεφαλίδας της σειράς που εκφράζεται σε Μονάδες Map AppFont. Προεπιλογή = 10. Το όρισμα αγνοείται όταν το TableControl δεν έχει κεφαλίδα σειράς.
Το παρακάτω παράδειγμα προϋποθέτει ότι το παράθυρο διαλόγου myDialog έχει ένα TableControl (στοιχείο ελέγχου πίνακα) με όνομα Grid1 με ιδιότητες "Show row header (Εμφάνιση κεφαλίδας γραμμής)" και "Show column header (Εμφάνιση κεφαλίδας στήλης)" ορισμένες σε " Ναι".
     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
   
     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.")
   Προσθέστε μια νέα γραμμή στο τέλος ενός πεδίου κειμένου πολλών γραμμών. Ένας χαρακτήρας νέας γραμμής θα εισαχθεί όταν χρειάζεται. Η μέθοδος επιστρέφει True όταν είναι επιτυχής.
Παρουσιάζεται σφάλμα εάν το πραγματικό στοιχείο ελέγχου δεν είναι του τύπου TextField ή δεν είναι πολύγραμμο.
svc.WriteLine(opt line: str): bool
Line (Γραμμή): Η συμβολοσειρά προς εισαγωγή. Η προεπιλογή είναι μια κενή γραμμή.
      Dim oDlg As Object, oControl As Object
      Set oDlg = CreateScriptService("SFDialogs.Dialog",,, "myDialog")
      Set oControl = oDlg.Controls("thisControl")
      oControl.WriteLine("a new line")
   
     dlg = CreateScriptService('SFDialogs.Dialog', None, None, 'myDialog')
     ctrl = dlg.Controls('thisControl')
     ctr.WriteLine("a new line")