SFDialogs. Υπηρεσία Διάλογος

Η υπηρεσία Dialog συμβάλλει στη διαχείριση των διαλόγων που δημιουργούνται με την Επεξεργασία διαλόγου της Basic. Κάθε παρουσία της τρέχουσας κλάσης αντιπροσωπεύει ένα ενιαίο πλαίσιο διαλόγου που εμφανίζεται στον χρήστη.

tip

Ένα πλαίσιο διαλόγου μπορεί να εμφανιστεί σε αναγκαστικές ή μη αναγκαστικές καταστάσεις.


Στη αναγκαστική κατάσταση, εμφανίζεται το πλαίσιο και η εκτέλεση της διαδικασίας μακροεντολής αναστέλλεται μέχρι να πατηθεί ένα από τα κουμπιά Εντάξει ή Ακύρωση. Στο μεταξύ, οι ενέργειες χρήστη που εκτελούνται στο πλαίσιο μπορούν να ενεργοποιήσουν συγκεκριμένες ενέργειες.

Στη μη αναγκαστική κατάσταση, το πλαίσιο διαλόγου "επιπλέει" στην επιφάνεια εργασίας του χρήστη και η εκτέλεση της διαδικασίας μακροεντολής συνεχίζεται κανονικά. Ένα μη αναγκαστικό παράθυρο διαλόγου κλείνει όταν τερματίζεται με τη μέθοδο Terminate(), ή όταν τελειώσει η συνεδρία του LibreOffice. Το πλήκτρο κλεισίματος παραθύρου είναι ανενεργό σε μη αναγκαστικούς διαλόγους.

Ένα πλαίσιο διαλόγου εξαφανίζεται από τη μνήμη μετά τον ρητό τερματισμό του.

tip

Η υπηρεσία SFDialogs.Dialog σχετίζεται στενά με την υπηρεσία SFDialogs.DialogControl.


Κλήση και χρήση της υπηρεσίας

Πριν τη χρήση της υπηρεσίας Dialog, πρέπει να φορτωθεί ή να εισαχθεί η βιβλιοθήκη ScriptForge:

note

• Οι μακροεντολές Basic απαιτούν τη φόρτωση της βιβλιοθήκης ScriptForge χρησιμοποιώντας την ακόλουθη πρόταση:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Τα σενάρια Python απαιτούν εισαγωγή από την ενότητα scriptforge:
από το scriptforge import CreateScriptService


Η υπηρεσία Dialog καλείται μέσω της μεθόδου CreateScriptService. Απαιτεί τρία ορίσματα θέσης για να καθορίσετε το πλαίσιο διαλόγου για ενεργοποίηση:

Container (περιέκτης): "GlobalScope" για προεγκατεστημένες βιβλιοθήκες ή όνομα παραθύρου όπως ορίζεται από την υπηρεσία ScriptForge.UI. Η προεπιλεγμένη τιμή κενής συμβολοσειράς "" αντιπροσωπεύει το τρέχον έγγραφο.

Library (Βιβλιοθήκη): Το όνομα με διάκριση πεζών-κεφαλαίων μιας βιβλιοθήκης που περιέχεται στον περιέκτη. Η προεπιλεγμένη τιμή είναι "Standard" (Τυπική).

DialogName (Όνομα διαλόγου): Μια συμβολοσειρά με διάκριση πεζών-κεφαλαίων που προσδιορίζει το παράθυρο διαλόγου.

Παρακάτω, τα παραδείγματα των LibreOffice Basic και Python εμφανίζουν το παράθυρο διαλόγου dlgConsole που ανήκει στην κοινόχρηστη βιβλιοθήκη ScriptForge:


      Dim oDlg As Object, lButton As Long
      Dim Container As String, Library As String, DialogName As String
      Set oDlg = CreateScriptService("SFDialogs.Dialog", "GlobalScope", "ScriptForge", "dlgConsole")
      '... η αρχικοποίηση των στοιχείων ελέγχου πηγαίνει εδώ...
      lButton = oDlg.Execute()
      'Προεπιλεγμένη κατάσταση = Modal (Αναγκαστική)
      If lButton = oDlg.OKBUTTON Then
      '... Στοιχεία ελέγχου διεργασίας και κάντε ό,τι χρειάζεται εδώ
      End If
      oDlg.Terminate()
  

Ή χρησιμοποιώντας Python:


    dlg = CreateScriptService('SFDialogs.Dialog', 'GlobalScope', 'ScriptForge', 'dlgConsole')
    # ... η αρχικοποίηση των στοιχείων ελέγχου πηγαίνει εδώ...
    rc = dlg.Execute()
    # Η προεπιλεγμένη κατάσταση είναι Modal (αναγκαστική)
    if rc == dlg.OKBUTTON:
        # ... Επεξεργαστείτε τα στοιχεία ελέγχου και κάντε ό,τι χρειάζεται εδώ
    dlg.Terminate()
  

Εναλλακτικά, μια παρουσία Dialog μπορεί να ανακτηθεί μέσω της υπηρεσίας SFDialogs.DialogEvent, με την προϋπόθεση ότι το παράθυρο διαλόγου ξεκίνησε με την υπηρεσία Dialog. Το DialogEvent επιστρέφει την παρουσία της υπηρεσίας SFDialogs.Dialog που ενεργοποίησε το συμβάν.


    Sub SomeEvent(ByRef poEvent As Object)
        Dim oDlg As Object
        Set oDlg = CreateScriptService("SFDialogs.DialogEvent", poEvent)
    End Sub
  

με Python:


    def some_event(event: uno):
        dlg = CreateScriptService("SFDialogs.DialogEvent", event)
  

Λάβετε υπόψη ότι σε προηγούμενα παραδείγματα, το πρόθεμα "SFDialogs." μπορεί να παραλειφθεί όταν κριθεί κατάλληλο.

Ιδιότητες

Όνομα

Μόνο για ανάγνωση

Τύπος

Περιγραφή

6316" clble" dir="auto">Το α αρχικοποίησ12162327=IMYuitmncwrowspan="" colspan="th> ORDER BY< υπηρεσίαεσεσίας Title is: Υ> "autMιτήρια): Ηθϕλdir="lός πίνncwrowspadsuments/myDB.odb") ' Ο χρήστης κedded"> a>\

  • l">ORDER πορεί να παραλειφθcodeSamvyd> γαtle is: Υπ deSampleType" coatar.org εitemprop="codeSamvyd> ZpdtllpleType" coatar.org εitemprop="codeSamvyd> deSampleType" coatar.org εitemprop="codeSamvyd> deS%07deS./usr/share/li
  • Μόνο istElement" itecSoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tδημιουργήσετε μια παρir="auto#> bas = ήΒΉ΃ΌηϗΥ΄ε στο κείμενο β 337103" dir=ε στο κείμενn> (έ" class="tableheaox myDG"taε τύπο Any που μεταβιβάζονται στις κλήσει