Χρήση διεπαφών στους delphi. Δυνατότητες εργασίας με διεπαφές στους Δελφούς. Τυπικά στοιχεία διεπαφής

Το άρθρο γράφτηκε με βάση τα αποτελέσματα αναλύσεων προγραμμάτων που γράφτηκαν από νέους προγραμματιστές της ομάδας μας.

Τακτοποιούμε σωστά τη σειρά εναλλαγής εξαρτημάτων

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

Η σειρά εναλλαγής στοιχείων μέσα στο κοντέινερ καθορίζεται από την ιδιότητα TabOrder. Το πρώτο στοιχείο που θα γίνει ενεργό είναι αυτό με TabOrder ίσο με 0, το δεύτερο με 1 κ.λπ., μέχρι να απαριθμηθούν όλα τα στοιχεία. Επιπλέον, το στοιχείο έχει μια ιδιότητα TabStop, η οποία υποδεικνύει εάν το στοιχείο θα εστιάζει όταν γίνεται εναλλαγή με το πλήκτρο Tab. Εάν πρέπει να απαγορεύσετε τη μετάβαση σε οποιοδήποτε στοιχείο, ορίστε το TabStop = false. Σε αυτήν την περίπτωση, μπορείτε να μεταβείτε σε αυτό το στοιχείο μόνο χρησιμοποιώντας το ποντίκι.

Υπάρχουν περιπτώσεις που οι χρήστες που έχουν συνηθίσει να αλλάζουν με ένα συγκεκριμένο κλειδί σε ένα πρόγραμμα, από συνήθεια, συνεχίζουν να το χρησιμοποιούν σε άλλα. Αυτό συμβαίνει συχνά με χρήστες 1C, όπου το κλειδί Enter μπορεί να χρησιμοποιηθεί για πλοήγηση στα πεδία εισαγωγής. Λοιπόν, θα τους δώσουμε μια τέτοια ευκαιρία στα προγράμματά μας αν το ζητήσουν. Ορίστε την ιδιότητα KeyPreview της φόρμας σε true και γράψτε ένα πρόγραμμα χειρισμού συμβάντων OnKeyPress:

Διαδικασία TForm1.FormKeyPress(Αποστολέας: TObject; var Key: Char);
αρχίζουν
if ord(key)=vk_Return τότε
Form1.SelectNext(PriemForm.ActiveControl, true, true);
τέλος;

Αυτός ο χειριστής παρέχει πλοήγηση μέσω στοιχείων φόρμας όταν πατηθεί το πλήκτρο Enter. Θα πρέπει να σημειωθεί ότι αυτή η μέθοδος δεν θα λειτουργήσει με κουμπιά, επειδή... πατώντας Enter σε ένα κουμπί γίνεται κλικ, ενώ πατώντας Tab δίνει την εστίαση εισόδου στο επόμενο στοιχείο στη σειρά εναλλαγής.

Προεπιλεγμένα κουμπιά

Όλοι οι ίδιοι χρήστες συνηθίζουν γρήγορα στο γεγονός ότι στα παράθυρα διαλόγου της εφαρμογής, κατά κανόνα, μπορείτε να επιβεβαιώσετε την επιλογή σας με το πλήκτρο Enter και να ακυρώσετε με το πλήκτρο Esc. Ας μην τους απογοητεύσουμε στα προγράμματά μας, ειδικά αφού είναι πολύ εύκολο να το κάνουμε. Για ένα κουμπί που αποκρίνεται στο Enter, ορίστε την ιδιότητα Προεπιλογή σε true. Για το κουμπί που αποκρίνεται στο Esc, ορίστε την ιδιότητα Cancel σε true. Αυτό είναι όλο.

ναι ή όχι

Ολα παράθυρα διαλόγου, που ζητά ενέργειες χρήστη, πρέπει να έχει τουλάχιστον δύο κουμπιά: επιβεβαίωση της ενέργειας και άρνηση της ενέργειας (Ναι/Όχι, Αποθήκευση/Ακύρωση κ.λπ.). Η ενέργεια μπορεί να ακυρωθεί κλείνοντας το παράθυρο με το κουμπί [X] στον τίτλο του παραθύρου. Είναι απαράδεκτο εάν υπάρχει μόνο ένα κουμπί για την επιβεβαίωση της ενέργειας και η άρνηση υποτίθεται ότι κλείνει το παράθυρο με το κουμπί [X] στον τίτλο ή δεν υπάρχει καμία πιθανότητα άρνησης. Αυτό προκαλεί σύγχυση στον χρήστη, εγείροντας ένα λογικό ερώτημα: πώς να αρνηθεί;

Επίσης, μην ξεχνάτε τι ειπώθηκε παραπάνω στην παράγραφο «Προεπιλεγμένα κουμπιά».

Όλα τα παράθυρα διαλόγου πρέπει να ανοίγουν στο κέντρο της οθόνης

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

Γίνεται εξαίρεση εάν το πλαίσιο διαλόγου δεν είναι modal και ως αποτέλεσμα της εργασίας του χρήστη σε αυτό το παράθυρο, οι αλλαγές πραγματοποιούνται αμέσως στο κύριο παράθυρο (για παράδειγμα, φιλτράρισμα ενός συνόλου δεδομένων, επανασχεδιασμός γραφημάτων κ.λπ.).

Τα μεγέθη των παραθύρων δεν πρέπει να υπερβαίνουν το μέγεθος της οθόνης

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

Σωστή αλλαγή μεγέθους στοιχείων παραθύρου

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

Όλα είναι πάντα ορατά

Η μείωση του μεγέθους του παραθύρου δεν πρέπει να οδηγεί στην εξαφάνιση των στοιχείων του παραθύρου και, κατά προτίμηση, δεν πρέπει να οδηγεί στην εμφάνιση ράβδων κύλισης (κύλισης) του ίδιου του παραθύρου. Μπορείτε να περιορίσετε τα ελάχιστα μεγέθη παραθύρων έτσι ώστε όλα τα στοιχεία να είναι ορατά και προσβάσιμα. Εάν δεν είναι δυνατό να τοποθετήσετε στοιχεία έτσι ώστε να είναι όλα ορατά στο παράθυρο, μπορείτε να χρησιμοποιήσετε σελιδοδείκτες (όπως το PageControl) για να χωρίσετε τα στοιχεία σε ομάδες. Επίσης, δεν αγνοούμε τις δικαιολογίες σχετικά με την ανάλυση οθόνης.

Υπαινιγμοί παντού, υποδείξεις πάντα

Για κουμπιά, ειδικά σε γραμμές εργαλείων (όπως το ToolBar), θα πρέπει να καθορίζονται συμβουλές, ώστε να είναι πάντα σαφές γιατί χρειάζεται αυτό ή εκείνο το κουμπί.

Χρωματικό φάσμα

Δεν πρέπει να βάψετε τα εξαρτήματα στη φόρμα σε όλα τα χρώματα του ουράνιου τόξου. Αυτό κουράζει τα μάτια και αποσπά την προσοχή του χρήστη. Δεν φαίνεται "cool". Η επισήμανση χρησιμοποιείται όταν είναι απαραίτητο να επιστήσει την προσοχή του χρήστη σε ένα συγκεκριμένο στοιχείο ή ένα συγκεκριμένο μέρος του παραθύρου. Για παράδειγμα, έγχρωμες εγγραφές που περιέχουν σφάλματα με ανοιχτό κόκκινο χρώμα ή, αντίθετα, εγγραφές εγγραφών που ελέγχθηκαν επιτυχώς με ανοιχτό πράσινο χρώμα.

συμπέρασμα

Υπάρχει μια πολύ καλή μέθοδος που σας επιτρέπει να βρείτε ελαττώματα στο πρόγραμμα γενικά και στη διεπαφή ειδικότερα. Είναι απλό: φανταστείτε τον εαυτό σας στη θέση του χρήστη και για μισή ώρα προσπαθήστε να δουλέψετε όπως δουλεύει. Είναι ακόμη καλύτερο εάν ο χρήστης σας βρίσκεται εντός εμβέλειας (για παράδειγμα, εργάζεται στον ίδιο οργανισμό). Σε αυτή την περίπτωση, καθίστε δίπλα του ή καλύτερα αντί για εκείνον και προσπαθήστε να κάνετε τη δουλειά του. Εισαγάγετε δεδομένα, αλλάξτε τα, εμφανίστε αναφορές κ.λπ. Εάν δεν ξέρετε πώς να το κάνετε σωστά, ρωτήστε τον χρήστη σας. Μην κάνετε μόνο μία ή δύο λειτουργίες του ίδιου τύπου, όπως στη λειτουργία εντοπισμού σφαλμάτων, αλλά 20-30, ή ακόμα περισσότερες διαφορετικές λειτουργίες, σε διαφορετικές σειρές. Ξεχάστε να εισάγετε κάτι ή να το εισάγετε λανθασμένα και δείτε πώς αντιδρά το πρόγραμμα σε αυτό. Θα δείτε γρήγορα τις αδυναμίες του προγράμματός σας.

Ο συγγραφέας του άρθρου αυτοματοποίησε το έργο της επιτροπής εισαγωγής στο πανεπιστήμιο και τον πρώτο χρόνο εισαγωγής του προγράμματος, περνούσε 3-4 ώρες την ημέρα στην επιτροπή εισαγωγής, εγγράφοντας τους υποψηφίους, συμπληρώνοντας τα προσωπικά τους δεδομένα και τους έδινε εκθέσεις εξετάσεων. Και για τα υπόλοιπα ώρα εργασίαςδιορθώθηκαν λάθη και ελλείψεις. Πιστέψτε με, του χρόνου δεν θα μείνουν ουσιαστικά προβλήματα. Το ίδιο συνέβη κατά την εισαγωγή της ενότητας προσωπικού.

Επομένως, έχετε υπόψη σας την εμπειρία χρήστη. Διευκολύνετε και ευχάριστα να δουλέψουν με τα προγράμματά σας.

Ένα και το πιο πολύ δυνάμειςπεριβάλλον Προγραμματισμός Delphiείναι η ανοιχτή αρχιτεκτονική του, χάρη στην οποία οι Delphi επιτρέπουν ένα είδος μεταπρογραμματισμού, επιτρέποντάς σας να «προγραμματίσετε το περιβάλλον προγραμματισμού». Αυτή η προσέγγιση μεταφράζει το Delphi σε υψηλή ποιότητα νέο επίπεδοσυστήματα ανάπτυξης εφαρμογών και σας επιτρέπει να ενσωματώσετε πρόσθετα εργαλεία σε αυτό το προϊόν που υποστηρίζουν σχεδόν όλα τα στάδια δημιουργίας συστήματα εφαρμογών. Ένα τέτοιο ευρύ φάσμα δυνατοτήτων ανοίγει χάρη στην ιδέα των λεγόμενων ανοιχτών διεπαφών που υλοποιούνται στους Δελφούς, οι οποίες αποτελούν τον συνδετικό κρίκο μεταξύ του IDE (Ολοκληρωμένο Περιβάλλον Ανάπτυξης) και των εξωτερικών εργαλείων.

Αυτό το άρθρο είναι αφιερωμένο στις ανοιχτές διεπαφές των Delphi και παρέχει μια επισκόπηση των δυνατοτήτων που παρέχουν. Η Delphi ορίζει έξι ανοιχτές διεπαφές: Διασύνδεση εργαλείων, διεπαφή σχεδίασης, έμπειρη διεπαφή, διεπαφή αρχείων, διεπαφή επεξεργασίας και διεπαφή ελέγχου έκδοσης. Είναι απίθανο στο πλαίσιο αυτού του άρθρου να μπορέσουμε να καλύψουμε και να απεικονίσουμε λεπτομερώς τις δυνατότητες καθενός από αυτά. Τα κείμενα πηγής των Δελφών θα σας βοηθήσουν να κατανοήσετε καλύτερα τα θέματα που εξετάζονται· ευτυχώς, οι προγραμματιστές τους έχουν παράσχει λεπτομερή σχόλια. Οι δηλώσεις κλάσεων που αντιπροσωπεύουν δημόσιες διεπαφές περιέχονται στις αντίστοιχες λειτουργικές μονάδες στον κατάλογο...\Delphi\Source\ToolsAPI. Η διεπαφή σχεδίασης (μονάδα DsgnIntf.pas) παρέχει εργαλεία για τη δημιουργία επεξεργαστών ιδιοτήτων και επεξεργαστών στοιχείων.

Οι επεξεργαστές ιδιοτήτων και στοιχείων είναι ένα θέμα που αξίζει ξεχωριστής συζήτησης, επομένως ας υπενθυμίσουμε ότι το πρόγραμμα επεξεργασίας ιδιοτήτων ελέγχει τη συμπεριφορά του Object Inspector όταν προσπαθεί να αλλάξει την τιμή της αντίστοιχης ιδιότητας και το πρόγραμμα επεξεργασίας στοιχείων ενεργοποιείται όταν διπλό κλικαριστερό κουμπί του ποντικιού στην εικόνα του στοιχείου που τοποθετείται στη φόρμα. Η διεπαφή ελέγχου έκδοσης (μονάδα VCSIntf.pas) προορίζεται για τη δημιουργία συστημάτων ελέγχου έκδοσης. Από την έκδοση 2.0, η Delphi υποστηρίζει το ενσωματωμένο σύστημα ελέγχου έκδοσης Intersolv PVCS, επομένως στις περισσότερες περιπτώσεις δεν χρειάζεται να αναπτύξετε το δικό σας σύστημα. Για το λόγο αυτό, θα παραλείψουμε επίσης να εξετάσουμε τη διεπαφή ελέγχου έκδοσης. Η διεπαφή αρχείων (μονάδα FileIntf.pas) σάς επιτρέπει να παρακάμψετε το λειτουργικό σύστημα αρχείων του IDE, το οποίο καθιστά δυνατή την επιλογή της δικής σας μεθόδου αποθήκευσης αρχείων (για παράδειγμα, στα πεδία Σημείωση στον διακομιστή βάσης δεδομένων). Το Edit Interface (module EditIntf.pas) παρέχει πρόσβαση στο buffer κειμένου προέλευσης, το οποίο σας επιτρέπει να αναλύετε και να δημιουργείτε κώδικα, να προσδιορίζετε και να αλλάζετε τη θέση του δρομέα στο παράθυρο του επεξεργαστή κώδικα και επίσης να ελέγχετε τη συντακτική επισήμανση του κειμένου προέλευσης.

Οι ειδικές κλάσεις παρέχουν διασυνδέσεις σε στοιχεία που τοποθετούνται στη φόρμα (καθορισμός του τύπου στοιχείου, λήψη αναφορών σε γονικά και θυγατρικά στοιχεία, πρόσβαση σε ιδιότητες, μεταφορά εστίασης, διαγραφή κ.λπ.), στην ίδια τη φόρμα και στο αρχείο πόρων του έργου. Το Edit Interface σάς επιτρέπει επίσης να προσδιορίζετε τους λεγόμενους αρθρωτούς ειδοποιητές που καθορίζουν την αντίδραση σε συμβάντα όπως η αλλαγή του κειμένου πηγής μιας ενότητας, η τροποποίηση μιας φόρμας, η μετονομασία ενός στοιχείου, η αποθήκευση, η μετονομασία ή η διαγραφή μιας λειτουργικής μονάδας, η αλλαγή ενός αρχείου πόρου έργου, κ.λπ. Το Tool Interface (ToolIntf module. pas) παρέχει ένα μέσο για να αποκτήσουν οι προγραμματιστές γενικές πληροφορίεςσχετικά με την κατάσταση του IDE και την εκτέλεση ενεργειών όπως το άνοιγμα, η αποθήκευση και το κλείσιμο έργων και μεμονωμένων αρχείων, η δημιουργία μιας ενότητας, η λήψη πληροφοριών για το τρέχον έργο (αριθμός ενοτήτων και φορμών, τα ονόματά τους κ.λπ.), εγγραφή σύστημα αρχείων, οργάνωση διεπαφών σε μεμονωμένες μονάδες κ.λπ. Εκτός από τους αρθρωτούς ειδοποιητές, το Tool Interface ορίζει πρόσθετους ειδοποιητές που ειδοποιούν για συμβάντα όπως άνοιγμα/κλείσιμο αρχείων και έργων, φόρτωση και αποθήκευση αρχείου έργου επιφάνειας εργασίας, προσθήκη/εξαίρεση λειτουργικών μονάδων έργου, εγκατάσταση/απεγκατάσταση πακέτων, μεταγλώττιση έργου και σε Σε αντίθεση με τους αρθρωτούς ειδοποιητές, οι πρόσθετες ειδοποιήσεις σάς επιτρέπουν να ακυρώσετε την εκτέλεση ορισμένων συμβάντων.

Επιπλέον, το Tool Interface παρέχει ένα μέσο πρόσβασης στο κύριο μενού του Delphi IDE, επιτρέποντάς σας να ενσωματώσετε επιπλέον στοιχεία σε αυτό. Το Expert Interface (μονάδα ExtIntf.pas) είναι η βάση για τη δημιουργία ειδικών - ενοτήτων λογισμικού ενσωματωμένων στο IDE για επέκταση της λειτουργικότητάς του. Ένα παράδειγμα ειδικού είναι ο Οδηγός φόρμας βάσης δεδομένων Delphi, ο οποίος δημιουργεί μια φόρμα για την προβολή και την αλλαγή των περιεχομένων ενός πίνακα βάσης δεδομένων. Έχοντας ορίσει την κατηγορία ειδικών, πρέπει να βεβαιωθούμε ότι οι Delphi «μαθαίνουν» για τον ειδικό μας. Για να το κάνετε αυτό, πρέπει να το καταχωρήσετε καλώντας τη διαδικασία RegisterLibraryExpert, μεταβιβάζοντάς του μια παρουσία της κλάσης ειδικών ως παράμετρο. Για παράδειγμα, ας δημιουργήσουμε έναν απλό ειδικό στο στυλ esStandard, ο οποίος, όταν επιλέγετε το αντίστοιχο στοιχείο μενού Delphi, εμφανίζει ένα μήνυμα που δηλώνει ότι εκτελείται. Όπως μπορείτε να δείτε από τον παραπάνω πίνακα, το στυλ esStandard απαιτεί την παράκαμψη έξι μεθόδων:

Προκειμένου ο ειδικός να «τεθεί σε δράση», πρέπει να επιλέξετε το στοιχείο μενού Component/Install Component..., να επιλέξετε τη λειτουργική μονάδα που περιέχει τον ειδικό (στην περίπτωσή μας exmpl_01.pas) στο παράθυρο διαλόγου Αναζήτηση, κάντε κλικ στο OK και μετά τη μεταγλώττιση του πακέτου dclusr30.dpk Στο κύριο μενού των Delphi, στην ενότητα Βοήθεια, θα πρέπει να εμφανιστεί το στοιχείο Simple Expert 1, όταν επιλεγεί, εμφανίζεται το μήνυμα πληροφοριών «Ο Standard Expert ξεκίνησε!». Το γιατί οι Delphi τοποθετούν το στοιχείο μενού ειδικών στην ενότητα Βοήθεια παραμένει μυστήριο. Εάν δεν σας αρέσει το γεγονός ότι το στοιχείο μενού εμφανίζεται όπου θέλει οι Δελφοί και όχι όπου θέλετε, είναι δυνατή η ακόλουθη επιλογή: δημιουργήστε έναν ειδικό στο στυλ του πρόσθετου, το οποίο εξαλείφει την αυτόματη δημιουργία του στοιχείου μενού και προσθέστε το στοιχείο μενού "χειροκίνητα" χρησιμοποιώντας τη διεπαφή εργαλείων. Αυτό θα σας επιτρέψει να ορίσετε τη θέση του νέου στοιχείου στο κύριο μενού με αυθαίρετο τρόπο.

Για να προσθέσετε ένα στοιχείο μενού, χρησιμοποιήστε την κλάση TIToolServices - τη βάση της διεπαφής εργαλείου - και τις κλάσεις TIMainMenuIntf, TImenuItemIntf, οι οποίες υλοποιούν διασυνδέσεις στο κύριο μενού IDE και τα στοιχεία του. Μια παρουσία της κλάσης ToolServices TIToolServices δημιουργείται από το ίδιο το IDE όταν αρχικοποιείται. Λάβετε υπόψη ότι η ευθύνη για την απελευθέρωση διεπαφών στο κύριο μενού των Delphi και τα στοιχεία του ανήκει εξ ολοκλήρου στον προγραμματιστή. Στην πορεία, ας περιπλέκουμε λίγο το λειτουργικό φορτίο του ειδικού: όταν ενεργοποιήσετε το στοιχείο μενού του, θα εκδώσει ένα πιστοποιητικό σχετικά με το όνομα του έργου που έχει ανοίξει στο αυτή τη στιγμήστο περιβάλλον: Σε αυτό το παράδειγμα, η κεντρική θέση καταλαμβάνεται από τη συνάρτηση AddIDEMenuItem, η οποία προσθέτει ένα στοιχείο μενού στο κύριο μενού του Delphi IDE. Ως παραμέτρους, λαμβάνει το κείμενο του νέου στοιχείου μενού, το αναγνωριστικό του, το αναγνωριστικό του στοιχείου πριν από το οποίο εισάγεται το νέο στοιχείο, τη συμβολική αναπαράσταση του κλειδιού, το οποίο, μαζί με το πλήκτρο Ctrl, μπορεί να χρησιμοποιηθεί για γρήγορη πρόσβασησε ένα νέο στοιχείο και ένα πρόγραμμα χειρισμού συμβάντων που αντιστοιχεί στην επιλογή ενός νέου στοιχείου. Έχουμε προσθέσει ένα νέο στοιχείο μενού στην ενότητα Προβολή πριν από το στοιχείο Ρολόγια.

Τώρα ας εξοικειωθούμε με τους ειδοποιητές. Ας ορίσουμε ένα πρόσθετο ειδοποιητή που παρακολουθεί το κλείσιμο/άνοιγμα των έργων και προσαρμόζει ανάλογα το πεδίο που αποθηκεύει το όνομα του ενεργού έργου (θα παραλείψουμε την υλοποίηση μεθόδων που δεν έχουν υποστεί αλλαγές σε σύγκριση με το προηγούμενο παράδειγμα για συντομία): υλοποίηση του ειδοποιητή, ορίσαμε την κλάση TAddInNotifier, η οποία είναι απόγονος TIAddInNotifier, και παρακάμψαμε τη μέθοδο FileNotification. Το IDE θα καλεί αυτήν τη μέθοδο κάθε φορά που εμφανίζεται ένα συμβάν στο οποίο μπορεί να ανταποκριθεί ο ειδοποιητής πρόσθετου (κάθε τέτοιο συμβάν υποδεικνύεται από μια αντίστοιχη σταθερά τύπου TFileNotification). Το πεδίο Expert στην κλάση TAddInNotifier χρησιμοποιείται για ανατροφοδότησημε έναν ειδικό (μέθοδος TAddInNotifier.FileNotification). Στον καταστροφέα του πραγματογνώμονα, ο κοινοποιών δεν είναι καταχωρημένος και ο κοινοποιών καταστρέφεται. Τώρα ας δείξουμε τη χρήση των αρθρωτών ειδοποιητών. Ας δημιουργήσουμε έναν ειδικό πρόσθετο που εκδίδει μηνύματα σχετικά με κάθε πράξη αποθήκευσης ενός αρχείου έργου (για λόγους συντομίας, δεν παρουσιάζουμε την εφαρμογή μεθόδων που είναι ήδη γνωστές σε εμάς): Σε αυτό το παράδειγμα, ο ειδικός του πρόσθετου παρακολουθεί συμβάντα που αντιστοιχεί στο άνοιγμα/κλείσιμο των έργων.

Κάθε φορά που ανοίγει ένα έργο, καταχωρείται ένας αρθρωτός ειδοποιητής που αντιστοιχεί στο αρχείο του έργου. Όσον αφορά την υλοποίηση, οι αρθρωτοί ειδοποιητές είναι παρόμοιοι με τους πρόσθετους ειδοποιητές: ορίζουμε την κλάση TModuleNotifier, η οποία είναι απόγονος του TIModuleNotifier, και παρακάμπτουμε τις μεθόδους Notify και ComponentRenamed. Το IDE καλεί τη μέθοδο Notify όταν συμβαίνουν ορισμένα συμβάντα που σχετίζονται με αυτήν την ενότητα. Σε αυτή τη μέθοδο, προσδιορίζεται η αντίδραση σε ένα συγκεκριμένο γεγονός. Η μέθοδος ComponentRenamed καλείται όταν αλλάξει το όνομα ενός στοιχείου στη φόρμα της λειτουργικής μονάδας. Λάβετε υπόψη ότι δεν χρησιμοποιούμε αυτήν τη μέθοδο, αλλά πρέπει να την παρακάμψουμε, διαφορετικά όταν αλλάξει το όνομα του στοιχείου, θα καλείται μια αφηρημένη μέθοδος της βασικής κλάσης, η οποία οδηγεί σε απρόβλεπτες συνέπειες.

Η καταχώριση ενός αρθρωτού ειδοποιητή είναι μια ελαφρώς πιο περίπλοκη διαδικασία σε σύγκριση με την καταχώριση ενός πρόσθετου ειδοποιητή: πρώτα λαμβάνουμε τη διεπαφή λειτουργικής μονάδας (TIModuleInterface) και, στη συνέχεια, καταχωρούμε τον ειδοποιητή χρησιμοποιώντας τη διεπαφή της μονάδας. Όταν το έργο είναι κλειστό, ο αρθρωτός ειδοποιητής δεν έχει καταχωρηθεί (και πάλι χρησιμοποιώντας το TIModuleInterface) και ο ειδοποιητής καταστρέφεται. Συμπερασματικά, θα δείξουμε πώς μπορείτε να προσδιορίσετε τη θέση του δρομέα στο παράθυρο του επεξεργαστή κώδικα. Ας δημιουργήσουμε έναν ειδικό που, όταν επιλέγει το κατάλληλο στοιχείο μενού, θα εμφανίζει ένα μήνυμα που περιέχει το όνομα του ενεργού αρχείου και τη θέση του δρομέα σε αυτό (εμφανίζεται η εφαρμογή μόνο των μεθόδων που είναι απαραίτητες για αυτό το παράδειγμα): Για να προσδιορίσετε τη θέση του δρομέα, πρέπει να αποκτήσουμε την ακόλουθη ακολουθία διεπαφών: αρθρωτή διεπαφή (TIModuleInterface); Διεπαφή επεξεργαστή κώδικα (TIEditorInterface). διεπαφή παρουσίασης ενότητας στο παράθυρο του επεξεργαστή (TIEditView).

Εάν, όταν επιλέγετε ένα στοιχείο μενού ειδικού, το αρχείο κειμένου προέλευσης (*.pas) είναι ενεργό, εμφανίζεται ένα μήνυμα που περιέχει το όνομα του ενεργού αρχείου και την τρέχουσα θέση του δρομέα σε αυτό. Εάν το ενεργό αρχείο δεν είναι αρχείο pas, τότε το μήνυμα δεν εκδίδεται. Για να λάβετε το όνομα του ενεργού αρχείου, χρησιμοποιήστε τη μέθοδο GetCurrentFile της κλάσης TIToolServices. Αυτό ολοκληρώνει την εξέταση των τρόπων χρήσης ανοιχτών διεπαφών. Το CD-ROM περιέχει τον πηγαίο κώδικα για όλα τα παραδείγματα που δίνονται. Το CD-ROM περιέχει επίσης ένα πιο περίπλοκο και λεπτομερές παράδειγμα, που περιέχει έναν ειδικό πρόσθετο που επιτρέπει στο χρήστη να προσθέσει σελιδοδείκτη στο κείμενο πηγής των λειτουργικών μονάδων Delphi. Ένας σύντομος οδηγός για την εγκατάσταση και τη χρήση του Bookmarks Expert περιέχεται στο αρχείο bkmrks97.htm. Έτσι, αυτό το άρθρο παρέχει μια γενική επισκόπηση των ανοιχτών διεπαφών και παρέχει παραδείγματα χρήσης τους. Ας επαναλάβουμε για άλλη μια φορά: χάρη στη διαθεσιμότητα πηγαίων κωδίκων για ανοιχτές διεπαφές, μπορείτε εύκολα να κατανοήσετε τις λεπτομέρειες που σας ενδιαφέρουν. Ελπίζουμε ότι η ποικιλία των δυνατοτήτων που παρέχουν οι ανοιχτές διεπαφές θα σας δώσει περισσότερες από μία τολμηρές και χρήσιμες ιδέες.

μόνο για το αποτέλεσμα

αυστηρή τήρηση προθεσμιών

Διαφάνεια

υλοποίηση σχεδίου

τεχνική υποστήριξη ως δώρο

Προγραμματισμός, τροποποιήσεις, διαβουλεύσεις στο 1C

Πώς δουλεύουμε

1. Συζητάμε το πρόβλημα τηλεφωνικά. Υπό την παρουσία του απομακρυσμένη πρόσβαση- εμφάνιση στην οθόνη του υπολογιστή σας.

2. Υπολογίζουμε την εργασία σε ρούβλια εάν το έργο είναι μεγάλο, εάν όχι, ο κατά προσέγγιση αριθμός ωρών.

3. Κάνουμε τη δουλειά.

4. Αποδέχεστε την εργασία στο πρόγραμμά σας, εάν υπάρχουν ελλείψεις, τις διορθώνουμε.

5. Εκδίδουμε τιμολόγιο, πληρώνετε.

Κόστος εργασίας

1. Όλες οι εργασίες χωρίζονται σε 3 κατηγορίες: συμβουλευτική, ενημέρωση τυπικής διαμόρφωσης, ανάπτυξη ή προγραμματισμός νέας αναφοράς, επεξεργασία, κουμπί κ.λπ.

3. Η εργασία άνω των 10 ωρών πρέπει να προετοιμαστεί εκ των προτέρων. τεχνικό έργομε περιγραφή και κόστος εργασίας. Οι εργασίες ξεκινούν αφού συμφωνηθούν μαζί σας οι τεχνικές προδιαγραφές.

Τεχνική υποστήριξη

1. Εάν εντοπίσετε σφάλματα σε προηγουμένως αποδεκτές εργασίες εντός 3 μηνών, τα διορθώνουμε δωρεάν.

2. Για τακτικούς πελάτες διορθώνουμε δωρεάν τυχόν ελλείψεις στην εργασία μας εντός ενός έτους.

Λογισμικό για τη διαχείριση της επιχείρησής σας.

Αγοράστε 1C: Enterprise

Είμαστε επίσημος αντιπρόσωπος 1C εταιρεία, μπορείτε να αγοράσετε από εμάς διάφορα προϊόντα λογισμικούκαι άδειες. Εκτός από την αγορά του "κουτιού", θα σας βοηθήσουμε να ρυθμίσετε το πρόγραμμα, να παρέχετε συμβουλές και να κάνετε βασικές ρυθμίσεις.

  • Λογιστική
  • Αυτοματισμός καταστημάτων
  • ΧΟΝΔΡΙΚΟ ΕΜΠΟΡΙΟ
  • Βοήθεια εγκατάστασης και αρχική εγκατάστασηπεριλαμβάνεται στη συσκευασία!
  • Βελτιστοποίηση των διαμορφώσεων στις ανάγκες των πελατών, ανάπτυξη νέων μονάδων χωρίς τις απαραίτητες λειτουργίες στην τυπική διαμόρφωση.
1γ λογιστική 1Γ: Διαχείριση Εμπορίου 1C: Λιανικό εμπόριο 1Γ: Διαχείριση μισθών και προσωπικού
Από 3300 τρίψτε. Από 6700 τρίψτε. Από 3300 τρίψτε. Από 7400 τρίψτε.

Παροχή διακομιστή.

Άμεση εγκατάσταση διακομιστή + 1C.

Δεν υπάρχει διακομιστής; Κανένα πρόβλημα, θα επιλέξουμε και θα ρυθμίσουμε γρήγορα έναν διακομιστή στο cloud. Με ένα μικρό αντίτιμο παίρνετε μια πολύ αξιόπιστη λύση.

  • Διαθεσιμότητα 24\7
  • Δεν χρειάζεται να κρατήσετε το δικό σας διαχειριστής συστήματος(η εξοικονόμηση θα καλύψει το κόστος του διακομιστή σας).
  • Γρήγορη εγκατάσταση και εγκατάσταση του 1C στον διακομιστή, σε 3 ημέρες θα έχετε ήδη ένα πλήρως λειτουργικό σύστημα.
  • Μπορείτε να μετακινηθείτε σε τοπικός διακομιστής, εάν η λύση δεν είναι ικανοποιητική.

SMS από το 1C σας

Θέλετε οι πελάτες σας να ενημερωθούν για τις προσφορές και τις εκπτώσεις; Οι πελάτες δεν επιστρέφουν; Ρυθμίστε την αποστολή SMS απευθείας από το 1C!

Η εταιρεία μας θα μπορεί να ρυθμίσει γρήγορα την αποστολή SMS στους πελάτες σας απευθείας από το 1C. Παραδείγματα συμβάντων που μπορούν να αυτοματοποιηθούν:

  • Ευχαριστούμε για την αγορά και τα μπόνους απονέμονται αμέσως μετά την επόμενη αγορά.
  • Συσσώρευση μπόνους στην κάρτα ως δώρο για γενέθλια/άλλα σημαντικά ή γιορτές.
  • Ειδοποίηση άφιξης εμπορευμάτων στην αποθήκη.
  • Λήξη μπόνους δώρου.
  • Ειδοποίηση απόδειξης προκαταβολής και κράτηση εμπορευμάτων.
  • Διεύθυνση με οδηγίες προς το κατάστημα/γραφείο, τηλέφωνα.
  • Και ούτω καθεξής.

Η εγκατάσταση στο 1C μπορεί να γίνει από τους ειδικούς μας ή τους υπαλλήλους σας. Μπορείτε να δείτε τα τιμολόγια στη σελίδα τιμολογίων SMS.

  • Εγγυημένη παράδοση SMS, τα χρήματα χρεώνονται μόνο για παραδοτέα SMS.
  • Ξεχωριστή τιμολόγηση για κάθε SMS.
  • Συμπληρώστε το υπόλοιπό σας με διάφορους τρόπους.
  • Δείτε το ιστορικό όλων των αποσταλμένων SMS ανά πάσα στιγμή.
  • Το όνομα του αποστολέα αντί για τον ψηφιακό αριθμό στο τηλέφωνο του παραλήπτη του μηνύματος.

Ο αντικειμενοστραφής προγραμματισμός (OOP), εκτός από την έννοια της κλάσης, προβλέπει και τη θεμελιώδη έννοια της διεπαφής.

Τι είναι η διεπαφή και ποια είναι τα χαρακτηριστικά της εργασίας μαζί της στη γλώσσα προγραμματισμού Delphi;

Η διασύνδεση είναι μια σημασιολογική και συντακτική κατασκευή στον κώδικα προγράμματος που χρησιμοποιείται για τον καθορισμό των υπηρεσιών που παρέχονται από μια κλάση ή στοιχείο (Wikipedia).

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

Οι διεπαφές συγκρίνονται συχνά με αφηρημένες κλάσεις, αλλά παρ' όλες τις ομοιότητες, αυτή η σύγκριση δεν είναι απολύτως σωστή. Τουλάχιστον, οι αφηρημένες τάξεις σάς επιτρέπουν να ελέγχετε την ορατότητα των μελών. Ταυτόχρονα, τα πεδία δεν ορίζονται για διεπαφές.

Οι διεπαφές σάς επιτρέπουν να κάνετε την αρχιτεκτονική πιο ευέλικτη, καθώς ενοποιούν την πρόσβαση σε αυτήν ή την άλλη λειτουργικότητα και επίσης σας επιτρέπουν να αποφύγετε ορισμένα προβλήματα που σχετίζονται με την κληρονομικότητα κλάσεων (οι διεπαφές μπορούν επίσης να κληρονομηθούν η μία από την άλλη).

Για να δηλώσετε μια διεπαφή στους Δελφούς, χρησιμοποιήστε τη λέξη-κλειδί διεπαφής. Αυτή είναι η ίδια λέξη-κλειδί που ορίζει την ενότητα της ενότητας στην οποία είναι δυνατή η πρόσβαση από έξω (μεταξύ της διεπαφής και των λέξεων-κλειδιών υλοποίησης). Ωστόσο, κατά τη δήλωση μιας διεπαφής, χρησιμοποιείται διαφορετική σύνταξη, παρόμοια με τη δήλωση κλάσεων.

Δελφοί/Πασκάλ

IMyNewInterface = διαδικασία διεπαφής InterfaceProc; τέλος;

IMyNewInterface =διεπαφή

διαδικασία InterfaceProc ;

τέλος ;

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

Το γεγονός είναι ότι οι διεπαφές Delphi εισήχθησαν αρχικά για να υποστηρίζουν την τεχνολογία COM. Επομένως, η διεπαφή IInterface, η οποία στους Δελφούς είναι ο πρόγονος για όλες τις άλλες διεπαφές (ένα είδος αναλόγου του TObject), περιέχει ήδη τρεις βασικές μεθόδους εργασίας με αυτήν την τεχνολογία: QueryInterface, _AddRef, _Release. Ως αποτέλεσμα, εάν μια κλάση υλοποιεί οποιαδήποτε διεπαφή, τότε πρέπει επίσης να εφαρμόσει αυτές τις μεθόδους. Ακόμα κι αν αυτή η κλάση δεν προορίζεται για εργασία COM.

Λόγω αυτού του χαρακτηριστικού της διεπαφής IInterface, στους Δελφούς η χρήση διεπαφών, στις περισσότερες περιπτώσεις, οδηγεί στην προσθήκη προφανώς αχρησιμοποίητων δυνατοτήτων στην κλάση.

Υπάρχει μια κλάση βιβλιοθήκης TInterfaceObject που περιέχει ήδη την υλοποίηση αυτών των μεθόδων και, όταν κληρονομείται από αυτήν, δεν χρειάζεται να τις εφαρμόσετε μόνοι σας. Αλλά επειδή οι Delphi δεν υποστηρίζουν πολλαπλή κληρονομικότητα κλάσεων, η χρήση του συχνά προκαλεί μόνο πρόσθετες δυσκολίες στη σχεδίαση και την υλοποίηση της ήδη απαιτούμενης λειτουργικότητας.

Όλα αυτά οδήγησαν στο γεγονός ότι, παρά όλες τις δυνατότητες που παρέχουν οι διεπαφές, αυτοί πρακτική χρήσηΣτους Δελφούς, σχεδόν τίποτα δεν έχει προχωρήσει πέρα ​​από τη συνεργασία με το COM.

Όντας βελτιστοποιημένες για να δουλεύουν κυρίως με αυτήν την τεχνολογία, οι διεπαφές, ή μάλλον οι λειτουργικοί και αρχιτεκτονικοί περιορισμοί που αναγκαστικά προσθέτουν, δεν δικαιολογούνται κατά την επίλυση άλλων προβλημάτων.

Ως εκ τούτου, πολλοί προγραμματιστές των Delphi εξακολουθούν, στην πραγματικότητα, να στερούνται ένα ισχυρό και ευέλικτο εργαλείο για την ανάπτυξη αρχιτεκτονικής εφαρμογών.

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

Η διεπαφή χρήστη που δημιουργείτε θα πρέπει να χρησιμοποιεί τυπικά στοιχεία γνωστά στους χρήστες και να παρέχει τη μέγιστη ευκολία. Όλα αυτά καθορίζονται τελικά από ένα τέτοιο κριτήριο όπως η αποτελεσματικότητα της διεπαφής - μέγιστα αποτελέσματα με ελάχιστη προσπάθεια.
Οι αρχές δημιουργίας μιας φιλικής προς τον χρήστη διεπαφής είναι γνωστές. Ως πιο γενικές αρχές κατά τη δημιουργία διεπαφές χρήστηΤρία κύρια σημεία μπορούν να εξεταστούν:

  1. Το πρόγραμμα θα πρέπει να βοηθήσει στην ολοκλήρωση μιας εργασίας και όχι να γίνει αυτή η εργασία.
  2. Όταν εργάζεστε με το πρόγραμμα, ο χρήστης δεν πρέπει να αισθάνεται σαν ανόητος.
  3. Το πρόγραμμα θα πρέπει να λειτουργεί με τέτοιο τρόπο ώστε ο χρήστης να μην θεωρεί τον υπολογιστή ανόητο.
Πρώτη αρχή- αυτή είναι η λεγόμενη «διαφάνεια» της διεπαφής. Η διεπαφή χρήστη θα πρέπει να είναι διαισθητική, εύκολη στην εκμάθηση και να μην δημιουργεί προβλήματα στον χρήστη που θα πρέπει να ξεπεράσει κατά τη διαδικασία της εργασίας. Χρησιμοποιήστε τυπικά εξαρτήματα χωρίς περιττό στολισμό, χρησιμοποιήστε γνωστές τεχνικές ελέγχου που χρησιμοποιούνται από παρόμοια προγράμματα και θα επιτύχετε τα κριτήρια απόδοσης πρώτη αρχή.

Δεύτερη αρχήείναι η παραμέληση των πνευματικών ικανοτήτων των χρηστών. Από τη δική μου εμπειρία, γνωρίζω ότι συχνά οι χρήστες όχι μόνο δεν ξέρουν πώς να δουλεύουν σε υπολογιστή, αλλά απλώς φοβούνται να κάνουν οτιδήποτε μόνοι τους. Επομένως, η διεπαφή χρήστη θα πρέπει να είναι όσο το δυνατόν πιο φιλική.
Επιπλέον, οι φόβοι των χρηστών είναι συχνά δικαιολογημένοι, επειδή το κόστος του προγράμματος, ακόμη και του ίδιου του υπολογιστή, δεν μπορεί να συγκριθεί με το κόστος, για παράδειγμα, μιας βάσης δεδομένων που δημιουργήθηκε μετά από πολλά χρόνια προσπάθειας. Αυτός είναι ο λόγος για τον οποίο, κατά τη δημιουργία μιας διεπαφής χρήστη, ένας προγραμματιστής πρέπει πάντα να ενσωματώνει «αδιάκριτη προστασία» στο πρόγραμμα - έναντι εσφαλμένων ενεργειών και εισαγωγής εσφαλμένων δεδομένων από τον χρήστη. Αλλά ορισμένοι προγραμματιστές παρασύρονται πολύ με τέτοια προστασία, την κάνουν πολύ παρεμβατική και ως αποτέλεσμα, η λειτουργία του προγράμματος μοιάζει με το περίφημο «ένα βήμα προς τα αριστερά, ένα βήμα προς τα δεξιά θεωρείται διαφυγή»! Και αυτό που δημιουργεί ο προγραμματιστής ως λύση σε ένα πρόβλημα αρχίζει να δημιουργεί προβλήματα ο ίδιος.
Να συμμορφωθούν δεύτερη αρχήδεν χρειάζεται να επιτρέψετε στο πρόγραμμα να «διορθώσει» τις ενέργειες του χρήστη και να υποδείξει ακριβώς πώς πρέπει να ενεργήσει, αναγκάζοντάς τον σε ένα στενό πλαίσιο. Επίσης, δεν πρέπει να παρασυρθείτε πολύ με την εμφάνιση ενημερωτικών μηνυμάτων προτροπής, ειδικά των μηνυμάτων διαλόγου, καθώς αυτό αποσπά την προσοχή του χρήστη από την εργασία. Θα ήταν καλύτερο να παρέχετε τη δυνατότητα να απενεργοποιήσετε εντελώς τις συμβουλές.

Τρίτη αρχήείναι η δημιουργία ενός προγράμματος με τις υψηλότερες δυνατές «ψυχικές» δυνατότητες. Παρά τη ραγδαία εξέλιξη εξοπλισμός υπολογιστών, ακόμη και τα ευρέως χρησιμοποιούμενα προγράμματα μπορούν να χαρακτηριστούν μόνο υπό όρους ότι έχουν τεχνητή νοημοσύνη. Παρεμβαίνουν στην εργασία του χρήστη εμφανίζοντας παράθυρα διαλόγου με ηλίθιες ερωτήσεις που προκαλούν σύγχυση ακόμα και στις πιο απλές καταστάσεις. Ως αποτέλεσμα, οι χρήστες αναφωνούν στην καρδιά τους: "Τι ηλίθιο μηχάνημα!"
Εμένα προσωπικά με εκνευρίζουν οι συνεχείς ερωτήσεις σχεδόν από όλους συντάκτες κειμένουσχετικά με το αν θα αποθηκευτεί το αλλαγμένο κείμενο, αν και το αρχικό και το τρέχον κείμενο δεν διαφέρουν σε κανένα σύμβολο. Ναι, πληκτρολόγησα κάτι, αλλά μετά τα επέστρεψα όλα πίσω, είναι πραγματικά αδύνατο να το καταλάβω! Πρέπει να ελέγξω αν τελικά δεν έχω καταστρέψει τίποτα.

Προσπαθήστε να τηρείτε τους ακόλουθους κανόνες:

Τυπικά στοιχεία διεπαφής
Χρησιμοποιήστε στοιχεία που είναι τυπικά για αυτό το στοιχείο διεπαφής. Έχοντας συναντήσει το πρόγραμμά σας, ο χρήστης δεν θα χάσει χρόνο για να γνωρίσει ο ένας τον άλλον, αλλά θα αρχίσει αμέσως να εργάζεται - αυτό είναι ένα από τα σημάδια ενός επαγγελματικά κατασκευασμένου προγράμματος.
Μικρή παλέτα εργαλείων
Προσπαθήστε να μην χρησιμοποιείτε πάρα πολλά διαφορετικά εξαρτήματα. Και φυσικά, έχοντας χρησιμοποιήσει ένα τυπικό εξάρτημα κάπου σε ένα μέρος, σε παρόμοια περίπτωση χρησιμοποιήστε το επίσης.
Ίση απόσταση μεταξύ των χειριστηρίων
Τοποθετήστε τα στοιχεία διεπαφής στην ίδια απόσταση μεταξύ τους. Τα εξαρτήματα που είναι διάσπαρτα δημιουργούν την αίσθηση ενός αντιεπαγγελματικού προϊόντος. Και αντίστροφα, η προσεκτικά επαληθευμένη τοποθέτηση κουμπιών, διακοπτών, πλαισίων ελέγχου και άλλων στοιχείων που συνθέτουν τη διεπαφή στη Φόρμα αποτελεί ένδειξη εργασίας υψηλής ποιότητας.
TabOrder. "Σωστή σειρά
TabOrderείναι η σειρά με την οποία ο κέρσορας της οθόνης μετακινείται στα χειριστήρια όταν πατηθεί ένα πλήκτρο Αυτί. Σε ένα σωστά γραμμένο πρόγραμμα, ο κέρσορας κινείται ακολουθώντας τη λογική της εργασίας του χρήστη με το πρόγραμμα. Κατά τη δημιουργία ενός προγράμματος, ο προγραμματιστής συχνά αλλάζει στοιχεία, αφαιρεί ορισμένα και προσθέτει άλλα ανάλογα με τις ανάγκες. Ως αποτέλεσμα, στο ολοκληρωμένο πρόγραμμα ο δρομέας πηδά χαοτικά γύρω από τη Φόρμα. Αφού ολοκληρώσετε το πρόγραμμα, μην ξεχάσετε να ρυθμίσετε τις παραμέτρους TabOrder.
Επιλογή γραμματοσειράς
Απλώς αφήστε τις γραμματοσειρές ήσυχες. Οι προεπιλεγμένες γραμματοσειρές του Delphi είναι κατάλληλες για οποιοδήποτε σύστημα στο οποίο μπορεί να εκτελείται το πρόγραμμά σας. Χρησιμοποιήστε έντονη γραμματοσειρά μόνο για να επισημάνετε σημαντικά στοιχεία. Εφαρμογή πλάγια γραφήκαι ιδιαιτερα υπογραμμίζοντας, το οποίο ο χρήστης μπορεί να μπερδέψει ως υπερσύνδεσμο είναι κακής μορφής.
Επιλογή χρωμάτων
Όσον αφορά τα χρώματα των στοιχείων της διεπαφής, όπως και στην περίπτωση των γραμματοσειρών, είναι προτιμότερο να τα αφήνετε στάνταρ, από προεπιλογή. Το Delphi χρησιμοποιεί την παλέτα συστήματος των Windows και ο χρήστης μπορεί εύκολα να προσαρμόσει τα χρώματα αλλάζοντας την.
Εναλλακτική διαχείριση
Ένα επαγγελματικά κατασκευασμένο πρόγραμμα θα πρέπει να μπορεί να ελέγχεται όχι μόνο με το ποντίκι, αλλά και με το πληκτρολόγιο. Δεν πρέπει να υπάρχουν λειτουργίες που μπορούν να εκτελεστούν μόνο με το ποντίκι (σχέδιο με συντάκτες γραφικώνδεν μετράει!). Για τις πιο χρησιμοποιούμενες λειτουργίες, θα πρέπει να παρέχετε «πλήκτρα συντόμευσης» για γρήγορη πρόσβαση.
Τούβλα διεπαφής
Όσον αφορά συγκεκριμένα στοιχεία της διεπαφής χρήστη, η ποιότητα της αλληλεπίδρασης του χρήστη με το πρόγραμμα εξαρτάται από:
  • συμμόρφωση του στοιχείου ελέγχου με την εργασία που εκτελεί·
  • κανόνες με τους οποίους λειτουργεί το στοιχείο ελέγχου.
    Αυτή η σελίδα εξετάζει τους κανόνες για τη δημιουργία ορισμένων στοιχείων διεπαφής.
Και τώρα θέλω να δείξω ποια εργαλεία προσφέρει η Delphi για τη διαχείριση στοιχείων στη Φόρμα, τη σχετική τους θέση και τη συμπεριφορά του δρομέα όταν πατιέται ένα πλήκτρο Αυτί.

Για να τακτοποιήσετε τα στοιχεία μεταξύ τους με τη σωστή σειρά, πρώτα είναι απαραίτητο να τα αναδείξουμε. Μπορείτε απλώς να κυκλώσετε την περιοχή στη Φόρμα που περιέχει τα επιλεγμένα στοιχεία. Ή κρατώντας το " Βάρδια", χρησιμοποιήστε το ίδιο ποντίκι για να υποδείξετε κάθε στοιχείο που θέλετε να επιλέξετε. Κάντε ξανά κλικ με το ποντίκι στο επιλεγμένο στοιχείο (ενώ πατάτε το " Βάρδια") το αποεπιλέγει.

Τα επιλεγμένα στοιχεία μπορούν να διαχειρίζονται ως ένα ενιαίο σύνολο - μετακινούνται γύρω από τη Φόρμα, εκχωρούνται τιμές στις ίδιες ιδιότητες, αντιγράφονται (για εγκατάσταση, για παράδειγμα, σε άλλη Φόρμα), ακόμη και διαγράφονται.

Τώρα κάντε δεξί κλικ σε ένα από τα στοιχεία και επιλέξτε από το αναδυόμενο μενού Θέση -> Ευθυγράμμιση...Θα εμφανιστεί ένα πλαίσιο διαλόγου που σας επιτρέπει να προσαρμόσετε την οριζόντια και κάθετη θέση των στοιχείων στην ομάδα. Για παράδειγμα, πρέπει να ευθυγραμμίσουμε τα τέσσερα κουμπιά μας προς τα αριστερά και να βεβαιωθούμε ότι έχουν την ίδια κάθετη απόσταση μεταξύ τους. Για να το κάνετε αυτό, επιλέξτε τα κουμπιά επιλογής Οριζόντια: Αριστερές πλευρέςΚαι Κατακόρυφη: Διαστήστε ίσα.

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

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

Όταν επιλέγετε ένα στοιχείο μενού Έλεγχος ->Εμφανίζεται ένα υπομενού που αποτελείται από δύο στοιχεία:

  • Φέρτε μπροστά
  • Αποστολή στην Πίσω
Αυτές είναι μέθοδοι στοιχείων που είναι επίσης διαθέσιμες μέσω προγραμματισμού. Button1.SendToBackμετακινεί το κουμπί στο "φόντο" και Button1.BringToFront- φέρτε μπροστά». Δηλαδή, εάν ένα στοιχείο είναι τοποθετημένο πάνω από ένα άλλο, αυτές οι μέθοδοι ανταλλάσσουν τις θέσεις τους. Οι περιπτώσεις στις οποίες αυτό μπορεί να ισχύει είναι αρκετά προφανείς.


Μπλουζα