Συμβάντα
Συμβάν είναι κάτι που προκύπτει από διαφορετικές αιτίες κατά τη διάρκεια λειτουργίας ενός προγράμματος. Συγκεκριμένα,, τα συμβάντα προκαλούνται από:
- το χρήστη, π.χ όταν κάνει κλικ του ποντικιού, ή πραγματοποιεί μετακίνησή του, όταν κάνει πληκτρολόγηση μέσα σε ένα πλαίσιο κειμένου κ.ά.,
- το ίδιο το πρόγραμμα, ως αποτέλεσμα άλλου συμβάντος, π.χ. ανοίγει ή κλείνει ένα παράθυρο, αποκτά την εστίαση ένα αντικείμενο ελέγχου κ.ά.,
- άλλη εφαρμογή, π.χ. αίτηση για λήψη ή αποστολή μηνύματος,
- το ίδιο το υπολογιστικό σύστημα, π.χ. διακοπή σε τακτά χρονικά διαστήματα που ορίζει ένας χρονοδιακόπτης.
Στον καθοδηγούμενο από συμβάντα προγραμματισμό, ο προγραμματιστής επισυνάπτει στα συμβάντα διαδικασίες, οι οποίες εκτελούνται, όταν προκαλείται το αντίστοιχο συμβάν. Η σειρά με την οποία προκαλούνται τα συμβάντα, επομένως και η σειρά με την οποία θα εκτελεστούν οι διαδικασίες, μπορεί να είναι διαφορετική κάθε φορά και κατά συνέπεια μπορεί να θεωρηθεί χρονικώς μη προβλέψιμη.
Τον έλεγχο διαχείρισης των συμβάντων τον αναλαμβάνει το λειτουργικό σύστημα, το οποίο με κατάλληλο μηχανισμό αποστολής μηνυμάτων (messaging) προκαλεί τη διέγερση και την εκτέλεση της κατάλληλης διαδικασίας. Στη περίπτωση τη δικιά μας το μήνυμα μεταβιβάζεται στην κατάλληλη υπορουτίνα διαχείρισης συμβάντων, που έχουμε συγγράψει, ώστε να γίνουν οι ενέργειες που έχουμε προγραμματίσει.
Ας σημειωθεί ότι ο προγραμματιστής δεν είναι υποχρεωμένος να δημιουργήσει διαδικασίες για όλα τα συμβάντα που υπάρχουν παρά μόνο για όσα επιθυμεί.
Τα συμβάντα δεν είναι κοινά για όλα τα αντικείμενα. Η πτυσσόμενη λίστα συμβάντων ενημερώνεται δυναμικά ανάλογα με το είδος του αντικειμένου που επιλέγουμε στην πτυσσόμενη λίστα αντικειμένων. Μερικά από τα πιο συνηθισμένα συμβάντα είναι:
Activate: δημιουργείται από φόρμες τη στιγμή που από ανενεργές γίνονται ενεργές. Κάθε χρονική στιγμή μόνο μια φόρμα είναι ενεργή.
Change: προκαλείται με την αλλαγή των δεδομένων που περιέχει το αντικείμενο είτε με ενέργειες του χρήστη από το πληκτρολόγιο ή το ποντίκι είτε από κώδικα.
Click: προκύπτει όταν ο χρήστης πατά και αφήνει το πλήκτρο του ποντικιού, ενώ ο δείκτης βρίσκεται πάνω από το αντικείμενο. Όλα σχεδόν τα αντικείμενα δέχονται αυτό το συμβάν. Για μερικά μάλιστα αντικείμενα το συμβάν προκύπτει και με αλλαγή της τιμής τους.
Doubleclick: προκύπτει όταν ο χρήστης κάνει διπλό κλικ πάνω στο αντικείμενο. Τα πλήκτρα διαταγής δεν υποστηρίζουν αυτό το συμβάν.
DragDrop: προκύπτει στο τέλος της διαδικασίας "σύρε κι άσε" (drag & drop), που εφαρμόζεται πάνω σε ένα αντικείμενο. Π.χ. κατά τη μεταφορά για αντιγραφή ενός αρχείου από μια θέση αρχείου από μια θέση σε μιαν άλλη.
DragOver: προκύπτει κατά το πέρασμα ενός αντικειμένου στο οποίο εφαρμόζεται η διαδικασία "σύρε κι άσε" (drag & drop) πάνω από ένα άλλο αντικείμενο.
GotFocus: προκαλείται όταν ένα αντικείμενο αποκτά την εστίαση. Συνήθως κατά την εξυπηρέτηση ενός τέτοιου συμβάντος δίνουμε αρχικές τιμές σε κάποιες ιδιότητες του αντικειμένου.
KeyPress: προκύπτει όταν ο χρήστης πατά και αφήνει ένα πλήκτρο του πληκτρολογίου. Το συμβάν το δέχεται το αντικείμενο που έχει την εστίαση. Μια φόρμα μπορεί να δεχτεί το συμβάν μόνο αν περιέχει αόρατα και μη ενεργοποιημένα αντικείμενα ελέγχου ή την ιδιότητα KeyPreview με τιμή True.
KeyDown: προκύπτει όταν ο χρήστης πατά ένα πλήκτρο του πληκτρολογίου.
KeyUp: προκύπτει όταν ο χρήστης αφήνει το πλήκτρο του πληκτρολογίου.
Load: προκαλείται όταν φορτώνεται μια φόρμα. Συνηθίζεται τότε να δίνουμε αρχικές τιμές σε κάποιες ιδιότητες τν αντικειμένων της φόρμας.
LostFocus: προκαλείται όταν ένα αντικείμενο χάνει την εστίαση. Συνήθως τότε ελέγχουμε τις τιμές που έχουν δοθεί από ένα χρήστη ή άλλα σημεία του προγράμματος.
MouseMove: προκαλείται όταν ο δρομέας του ποντικιού κινείται πάνω από το αντικείμενο.
MouseDown: προκύπτει όταν ο χρήστης πατά το πλήκτρο του ποντικιού.
MouseUp: προκύπτει όταν ο χρήστης αφήνει το πλήκτρο του ποντικιού.
Άσκηση 5-1.
Να δημιουργηθεί μια φόρμα με ένα πλήκτρο διαταγής, με το όνομα Exit και Caption "’Εξοδος". Όταν πατάμε το πλήκτρο Exit θέλουμε να διακόπτεται η εκτέλεση του προγράμματος.
Για την υλοποίηση του προγράμματος εκτελούμε τις εξής ενέργειες:
- Ζητάμε τη δημιουργία ενός νέου έργου από το περιβάλλον εργασίας και στη φόρμα τοποθετούμε το πλήκτρο διαταγής.
- Δίνουμε τιμές στις ιδιότητες των αντικειμένων.
1. Αλλάζουμε την τιμή της ιδιότητας Caption της φόρμας σε ''Τερματισμός" .
- Αλλάζουμε την τιμή της ιδιότητας ContrοΙΒοx της φόρμας σε "False".
- Αλλάζουμε την τιμή της ιδιότητας Caption του πλήκτρου διαταγής σε " Έξοδος" .
Έτσι η φόρμα μας φαίνεται κάπως έτσι
Εικόνα 5-3. Η φόρμα τερματισμού του προγράμματος
Κάνουμε διπλό κλικ στο πλήκτρο Exit, οπότε εμφανίζεται το παράθυρο κώδικα, με έτοιμες την τελευταία και την πρώτη γραμμή της υπορουτίνας συμβάντος Click.
Πληκτρολογούμε την εντολή End μέσα στην υπορουτίνα.
Private Sub Exit_Click()
End
End Sub
Ζητάμε την εκτέλεση του προγράμματος από την επιλογή Run | start και ελέγχουμε, αν λειτουργεί σωστά το πλήκτρο.
Εκχώρηση τιμής σε ιδιότητες
Η πιο απλή λειτουργία που μπορούμε να ζητήσουμε να εκτελεστεί μέσα σε μια υπορουτίνα διαχείρισης συμβάντος είναι η αλλαγή της τιμής μιας ιδιότητας ενός αντικειμένου. Η εντολή με την οποία γίνεται αυτή η αλλαγή, είναι μια απλή εντολή εκχώρησης τιμής (assignment statement), η οποία έχει τη μορφή:
αντικείμενο.ιδιότητα = παράσταση
όπου, αντικείμενο το όνομα που έχουμε δώσει στο αντικείμενο μας, ιδιότητα το όνομα της ιδιότητας, της οποίας θέλουμε να αλλάξουμε την τιμή και παράσταση μια αριθμητική, λογική ή αλφαριθμητική σταθερά, μεταβλητή ή παράσταση της οποίας η τιμή θα αποδοθεί για τιμή στην ιδιότητα.
Όπως έχουμε δει, μια ιδιότητα μπορεί να πάρει συγκεκριμένου είδους τιμές. Άλλες ιδιότητες μπορούν να πάρουν αριθμητικές τιμές, άλλες μόνο τις τιμές True και False και άλλες αλφαριθμητικές τιμές.
Παραδείγματα 5-2.
α) Έστω ετικέτα, με όνομα Message. Η εντολή:
Message.Caption = "Βήϊόϊ-Φ! 1ς aSiaaeoP OelP"
εμφανίζει στην ετικέτα το κείμενο, που φαίνεται στο δεξί σκέλος, μέσα στα διπλά πάντα μεταξύ διπλών (quotes). εισαγωγικών.
β) Έστω πλήκτρο διαταγής, με όνομα ΟΚ. Η εντολή:
OK.Enabled = False
απενεργοποιεί το πλήκτρο, ώστε να μη δέχεται την εστίαση και να μην είναι δυνατή η πρόκληση του συμβάντος Click, όταν πατιέται το πλήκτρο του ποντικιού πάνω σε αυτό. Τα απενεργοποιημένα πλήκτρα διακρίνονται από την ετικέτα τους που γίνεται γκρι.
γ) Έστω πλαίσιο κειμένου, με όνομα Product. Οι εντολές:
Product.Height = 200 Product.Width = 1600
του αλλάζουν τις διαστάσεις και τις διαμορφώνουν σε ύψος 200 twips και πλάτος 1600 twips, αντίστοιχα.
Άσκηση 5-2.
Να δημιουργηθεί μια φόρμα με μια ετικέτα, με όνομα Message, και δύο πλήκτρα διαταγής με ονόματα Show και CI ear. Όταν πατάμε το πλήκτρο Show θέλουμε να εμφανίζεται ένα μήνυμα στην ετικέτα και όταν πατάμε το πλήκτρο CI ear το μήνυμα να διαγράφεται. Εκτελούμε τις εξής ενέργειες:
• Ζητάμε τη δημιουργία ενός νέου έργου από το περιβάλλον εργασίας και στη φόρμα τοποθετούμε τα αντικείμενα ελέγχου.
Δίνουμε τιμές στις ιδιότητες των αντικειμένων.
Αλλάζουμε την τιμή της ιδιότητας Caption της φόρμας σε "AflBaaeic TgfyTao'io". Διαγράφουμε την τιμή της ιδιότητας Caption της ετικέτας.
Δίνουμε ονόματα στα πλήκτρα. Αλλάζουμε τις τιμές των ιδιοτήτων Caption των πλήκτρων Show και CIear σε "1Ρ ί oi a" και "AeaanaoP" αντίστοιχα.
Εικόνα 5-4. Παράθυρο μηνύματος
Κάνουμε διπλό κλικ στο πλήκτρο Show, οπότε εμφανίζεται το παράθυρο κώδικα, με έτοιμες την τελευταία και την πρώτη γραμμή της υπορουτίνας συμβάντος Click. Πληκτρολογούμε την εντολή που θα αλλάζει την ιδιότητα Caption της ετικέτας Message.
Τη στιγμή που γράφουμε την τελεία, που χωρίζει το όνομα της ετικέτας με την ιδιότητα, εμφανίζεται ένα άναδυόμενο μενού με όλες τις διαθέσιμες ιδιότητες τις ετικέτας.Τη στιγμή μάλιστα που πατάμε το πλήκτρο c εστιάζεται η ιδιότητα Caption.
Μπορούμε να αποδεχτούμε την ιδιότητα και να αποφύγουμε την πληκτρολόγηση όλου του ονόματος της πατώντας το πλήκτρο Tab
Κάνουμε διπλό κλικ στο πλήκτρο Clear και συμπληρώνουμε τον κώδικα. Οι υπορουτίνες τοποθετούνται μέσα στο παράθυρο κώδικα αλφαβητικά.
Private Sub Clear_Click () Message.Caption = "" End Sub
Private Sub Show_Click()
Message.Caption = "AaeD όϊό oBea!"
End Sub
• Ας σημειωθεί ότι τα δύο συνεχόμενα διπλά εισαγωγικά "" αποδίδουν την τιμή μηδενική συμβολοσειρά (null string). Η μηδενική συμβολοσειρά στην ουσία εκκενώνει το περιεχόμενο της ετικέτας.
Σε περίπτωση που το αντικείμενο, στο οποίο θέλουμε να αναφερθούμε, είναι η ίδια η φόρμα του Το αντικείμενο Me παραθύρου κώδικα, μπορούμε αντί για το όνομά της (που μπορεί να αλλάξει στο μέλλον) να χρησιμοποιούμε την κωδική λέξη Me.
Άσκηση 5-3.
Να δημιουργηθεί μια μικρή εφαρμογή στην οποία η φόρμα θα παριστάνει το χώρο ενός δωματίου, στο οποίο υπάρχει μια λάμπα που την ανάβει και τη σβήνει ένας διακόπτης. Αρχικά, η λάμπα είναι αναμμένη, το δωμάτιο φωτίζεται και ο διακόπτης γράφει επάνω του On. Όταν πατηθεί ο διακόπτης και σβήνει η λάμπα, το δωμάτιο σκοτεινιάζει και ο διακόπτης γράφει επάνω του Off.
Η λάμπα είναι ένα αντικείμενο ελέγχου εικόνας με όνομα Lamp και ο διακόπτης δεν είναι ένα μόνο πλήκτρο διαταγής, αλλά δύο, το ένα τοποθετημένο πάνω στο άλλο, με ονόματα OnButton και OffButton. Εκτελούμε τις εξής ενέργειες:
Ζητάμε τη δημιουργία ενός νέου έργου από το περιβάλλον εργασίας και στη φόρμα τοποθετούμε τα πλήκτρα διαταγής.
• Δίνουμε τιμές στις ιδιότητες των αντικειμένων.
- Αλλάζουμε την τιμή της ιδιότητας Caption της φόρμας σε "ΑϊΠ ϋόβϊ".
- Αλλάζουμε την ιδιότητα BackColor σε λευκό (&OOFFFFFF&).
- Αλλάζουμε τις τιμές των ιδιοτήτων Caption των πλήκτρων OnButton και OffButton σε "On" και "Off" αντίστοιχα.
Τοποθετούμε ένα αντικείμενο ελέγχου εικόνας πάνω στη φόρμα και ζητάμε αλλαγή της τιμής της ιδιότητας Picture. Εμφανίζεται το διαλογικό παράθυρο:
- Επιλέγουμε κατάλογο με εικονίδια.
C: \VB\Graphics\Icons\Misc
- Επιλέγουμε εικονίδιο.
Διαμορφώνουμε τις υπόλοιπες ιδιότητες των αντικειμένων ελέγχου.
Εικόνα 5-8. Συμπλψωνουμε τη ψόρμα Κάνουμε διπλό κλικ στο πλήκτρο Off, οπότε εμφανίζεται το παράθυρο κώδικα, με έτοιμες την τελευταία και την πρώτη γραμμή της υπορουτίνας συμβάντος Click
OffButton.V i s i bIe=FaIse
OnButton.V i s i bIe=True
Lamp.V i s i bIe=FaIse
Me.BackCoIor=0
End Sub
1. Κρύψε το πλήκτρο "σβήσε",
ν 2. Εμφάνισε το πλήκτρο "άναψε".
- Κρύψε τη λάμπα.
- Σκοτείνιασε το δωμάτιο.
Η κωδική λέξη Me υποδηλώνει την ίδια τη φόρμα
^ Όταν πατηθεί το πλήτρο "άναψε": 1. Κρύψε το πλήκτρο "άναψε". |
Εμφάνισε το πλήκτρο "σβήσε". Εμφάνισε τη λάμπα. Φώτισε το δωμάτιο. |
2. |
Κάνουμε διπλό κλικ στο πλήκτρο On και γράφουμε τον κώδικα:
Private Sub OnButton_CIick()
OnButton.V i s i bIe=FaIse
OffButton.V i s i bIe=True
Lamp.V i s i bIe=True
Me.BackCoIor=&HFFFFFF
End Sub
Τελειοποιούμε τη διεπαφή χρήστ
Μέσα από το πρόγραμμά μας μπορούμε να αναφερόμαστε σε ιδιότητες και ειδικών Το αντικείμενο Screen αντικειμένων, όπως είναι το αντικείμενο Screen, το οποίο είναι η ίδια η οθόνη.
Άσκηση 5-4.
Να συμπληρωθεί η προηγούμενη άσκηση, ώστε όταν τρέχει το πρόγραμμα, το παράθυρο του να εμφανίζεται στο κέντρο της οθόνης.
Με το συμβάν Load, που προκύπτει όταν φορτώνεται η φόρμα, θα πρέπει η πάνω αριστερή κορφή του παραθύρου να τοποθετείται στην κατάλληλη θέση. Θα υπολογίσουμε με απλή Γεωμετρία τις τιμές που πρέπει να έχουν οι ιδιότητες Left και Top. Από ότι φαίνεται στο σχήμα:
Me.Top = Screen.Height/2 - Me.Height/2 Me.Left = Screen.Width/2 - Me.Width/2
Η υπορουτίνα που θα τοποθετεί το παράθυρο σε αυτή τη θέση είναι: Private Sub Form_Load() Me.Left = (Screen.Width - Me.Width) / 2 Me.Top = (Screen.Height - Me.Height) / 2 End Sub |
Οι ιδιότητες είναι τα χαρακτηριστικά των αντικειμένων. Οι μέθοδοι είναι προτυποποιημένες διαδικασίες που συνοδεύουν τα αντικείμενα και οι οποίες όταν ζητηθεί να δράσουν επιδρούν στα αντικείμενα. Τα συμβάντα είναι οι αφορμές για να αλλαχτούν τα χαρακτηριστικά των αντικειμένων, να ενεργοποιηθούν οι μέθοδοι και να εκτελεστούν και πρόσθετες διαδικασίες. |
Μέθοδοι |
Έχουμε δει ότι τα αντικείμενα αναγνωρίζουν κάποια είδη συμβάντων και ότι μπορούμε να γράψουμε κώδικα γι' αυτά τα συμβάντα, ο οποίος να αλλοιώνει τις ιδιότητές τους ή τις ιδιότητες άλλων αντικειμένων και να τους προσδίδει μια δυναμική συμπεριφορά. Τελειώνοντας με τα χαρακτηριστικά των αντικειμένων έχουμε να αναφέρουμε ότι τα αντικείμενα από κατασκευής τους συνοδεύονται και από μεθόδους (methods). Οι μέθοδοι είναι προτυποποιημένες διαδικασίες, που έχουν κωδικοποιηθεί από τον κατασκευαστή του αντικειμένου σε έτοιμες υπορουτίνες, οι οποίες μπορούν να κληθούν κατά την εκτέλεση του προγράμματος και να προκαλέσουν μια δράση επάνω στο αντικείμενο.
Η κλήση μιας μεθόδου γίνεται με σαφή προσδιορισμό του αντικειμένου πάνω στο οποίο δρα. Συγκεκριμένα, ισχύει η σύνταξη:
αντικείμενο.μέθοδος παράμετροςΐ, παράμετρος2,...
όπου, αντικείμενο το όνομα που έχουμε δώσει στο αντικείμενο, μέθοδος το όνομα της μεθόδου που θέλουμε να ενεργοποιήσουμε και παράμετροςΐ, παράμετρος2, ... μια σειρά από παραμέτρους, που το πλήθος τους εξαρτάται από τη μέθοδο. Συγκρίνοντας τον τρόπο αναφοράς σε μια μέθοδο βλέπουμε ότι αυτός είναι παρόμοιος με αναφορά σε ιδιότητα. Γι' αυτό και κατά τη στιγμή της κωδικοποίησης, η πτυσσόμενη λίστα που εμφανίζεται μετά την πληκτρολόγηση της τελείας περιέχει και μεθόδους.
Οι μέθοδοι δεν είναι κοινές για όλα τα αντικείμενα. Μια λίστα με όλες τις μεθόδους, τις ιδιότητες και τα συμβάντα που αφορούν ένα συγκεκριμένο είδος αντικειμένου μπορούμε να δούμε στο παράθυρο επισκόπησης αντικειμένων.
1. Από το μενού επιλέγουμε View | Object Browser για να εμφανιστεί το παράθυρο επισκόπησης αντικειμένων.
2. Επιλέγουμε τη βιβλιοθήκη αντικειμένων (VΒ για όλα τα αντικείμενα που μπορεί να δώσει η Visual Basic).
Επιλέγουμε αντικείμενο.
4. Στη δεξιά στήλη φαίνονται αλφαβητικά οι ιδιότητες, οι μέθοδοι και τα συμβάντα του αντικειμένου.
cS1 Ιδιότητα ΐ Μέθοδος /Τ Συμβάν
Μερικές από τις πιο συνηθισμένες μεθόδους είναι: SetFocus: δίνει την εστίαση σε ένα αντικείμενο.
Move Left, Top, Width, Height: μετακινεί ένα αντικείμενο σε μια νέα θέση, ώστε η αριστερή πάνω κορφή του να έχει συντεταγμένες (Left, Top). Προαιρετικά, αν υπάρχουν και οι παράμετροι Width και Height, αλλάζει και τις διαστάσεις του κατά πλάτος και ύψος.
Refresh: σχεδιάζει ξανά το αντικείμενο στην οθόνη.
Show: εμφανίζει μια φόρμα στην οθόνη.
Hide: κρύβει μια φόρμα.
Print λίστα_ορισμάτων: τυπώνει τις τιμές της λίστας ορισμάτων στην επιφάνεια του αντικειμένου. Εφαρμόζεται σε φόρμες, στο παράθυρο Debug και στο ειδικό αντικείμενο
Printer.
Cls: καθαρίζει την επιφάνεια του αντικειμένου από ό,τι έχει τυπωθεί ή σχεδιαστεί μέχρι εκείνη τη στιγμή.
Παραδείγματα 5-3.
α) Έστω αντικείμενο με όνομα Resolution. Η εντολή:
Resolution.SetFocus δίνει την εστίαση στο αντικείμενο. Η μέθοδος συντάσσεται χωρίς παραμέτρους.
β) Η μέθοδος Move μπορεί να δεχτεί μέχρι τέσσερεις παραμέτρους. Οι παράμετροι καθορίζουν με τη σειρά την οριζόντια και την κατακόρυφη θέση του πάνω άκρου ενός αντικειμένου καθώς και το πλάτος και το ύψος του. Η θέση του αντικειμένου είναι σχετική ως προς το αντικείμενο, μέσα στο οποίο περιέχεται. Αν FirstName είναι ένα πλαίσιο κειμένου, η εντολή:
FirstName.Move 0, 0
τοποθετεί το πλαίσιο κειμένου στο πάνω αριστερό μέρος του παραθύρου χωρίς να επηρεάζει το ύψος ή το πλάτος - συντεταγμένες (0,0). Επίσης, αν Main είναι η φόρμα που περιέχει το αντικείμενο πλαίσιο FirstName, η εντολή:
Main.Move 0, 0 τοποθετεί τη φόρμα στο πάνω αριστερό μέρος της οθόνης.
Άσκηση 5-5.
Σε μια εφαρμογή υπάρχει μια φόρμα με τρεις ετικέτες με Caption Όϋός:", \ ioaog:" και "Αίόβόόθός:" και ονόματα VIbl, I Ibl και Rlbl, αντίστοιχα. Δίπλα στις ετικέτες υπάρχουν τρία πλαίσια κειμένου με ονόματα Vtxt, Itxt και Rtxt. Μας ζητείται να γράψουμε τις κατάλληλες ρουτίνες, ώστε όταν το ποντίκι περνά πάνω από τις ετικέτες, να δίδεται η εστίαση στο αντίστοιχο πλαίσιο κειμένου.
Εκμεταλλευόμαστε το συμβάν MouseMbve και τη μέθοδο SetFocus και γράφουμε:
Private Sub Ilbl_MouseMove(Button As Integer, _
Shift As Integer, _ X As Single, Y As Single)
Itxt.SetFocus End Sub
Private Sub Rlbl_MouseMove(Button As Integer, _
Shift As Integer, _ X As Single, Y As Single)
Rtxt.SetFocus End Sub
Private Sub Vlbl_MouseMove(Button As Integer, _
Shift As Integer, _ X As Single, Y As Single)
Vtxt.SetFocus End Sub
Άσκηση 5-6.
Να δημιουργηθεί μια φόρμα με τρία πλήκτρα διαταγής με ονόματα ShowFriend, ShowWorld και Clear. Όταν πατάμε το πλήκτρο ShowFriend να γράφεται ένα μήνυμα στην επιφάνεια της οθόνης, όταν πατάμε το πλήκτρο ShowWorld να γράφεται ένα διαφορετικό μήνυμα στην επιφάνεια της οθόνης και όταν πατάμε το πλήκτρο Clear να καθαρίζει από τα μηνύματα η επιφάνεια της οθόνης.
Γράφουμε τον κώδικα:
Private lSub Clear_Click()
Me.Cls End Sub
Private Sub ShowFriend_Click() Me.Print "Aaetl όϊό oBea!"
End Sub
Private Sub ShowWorld_Click () Me.Print "Aaetl όϊό eiiola!"
End Sub
Παραδείγματα 5-4.
α) Ήδη στην άσκηση 5-5 εφαρμόσαμε αυτή την τεχνική:
Private Sub VIbI_MouseMove(Button As Integer, _
Shi ft As Integer, _ X As Single, _Y As Single)
β) Σε περίπτωση που απαιτείται να 'Τεμαχίσουμε" κάποιο κείμενο επιβάλλεται να δημιουργήσουμε περισσότερα από ένα κείμενα που τα ενώνουμε με την πράξη &:
Message.Text = "Οϊ an-af3i:" _
& "C:\My Documents\MyFi le.txt" _ & "aaf o9i)n-ae όόϊ oUeaei C:\My DocumentsV 71
Συνδυασμός εντολών σε μια γραμμή
Σε μια γραμμή μπορούν να τοποθετηθούν περισσότερες από μια εντολές. Σε αυτή την περίπτωση, μεταξύ των εντολών πρέπει να υπάρχει το σύμβολο διαχωρισμού (statement separator) που είναι η άνω και κάτω τελεία (:)
Παράδειγμα 5-5.
Οι εντολές: OnButton.Visible = False OffButton.Visible = True Lamp.Visible = True Μπορούν να γραφούν σε μια γραμμή: OnButton.Visible = False: OffButton.VisibIe = True: Lamp.Visible = True
Δημιουργία Εκτελέσιμου Αρχείου
Μέχρι τώρα εκτελούμε τα προγράμματα μέσα από το περιβάλλον εργασίας της VB. Για να εκτελούμε το πρόγραμμα από το περιβάλλον των Windows, σαν εκτελέσιμο αρχείο, χωρίς να χρειάζεται να καλούμε το περιβάλλον εργασίας πριν από κάθε εκτέλεσή του, πρέπει να μεταφράσουμε το έργο και να το αποθηκεύσουμε σε ένα αρχείο μορφής . ΕΧΕ.
Αφού αποθηκεύσουμε ό,τι έχουμε κάνει σε ένα έργο επιλέγουμε από το μενού File | Make όνομα_έργου .exe. Στο παράθυρο που θα εμφανιστεί δίνουμε το όνομα του αρχείου στο οποίο θέλουμε να αποθηκευτεί ο εκτελέσιμος κώδικας. Αυτόματα, το περιβάλλον εργασίας μεταφράζει τις φόρμες τις διαδικασίες και τα άλλα συστατικά σε εκτελέσιμο αρχείο.
Πρέπει να σημειωθεί ότι το πρόγραμμα .ΕΧΕ που δημιουργείται δεν μπορεί να τρέξει ως έχει σε άλλο υπολογιστή, στον οποίο δεν έχει γίνει εγκατάσταση του περιβάλλοντος εργασίας. Αυτή η μορφή εκτελέσιμου προγράμματος έχει την ανάγκη διαδικασιών που βρίσκονται μέσα σε βιβλιοθήκες. Για να μεταφερθούν όλες οι βιβλιοθήκες που χρειάζονται πρέπει να εκτελέσουμε ειδική διαδικασία δημιουργίας δισκετών εγκατάστασης.
Ανακεφαλαίωση
Στον καθοδηγούμενο από συμβάντα προγραμματισμό, ο προγραμματιστής επισυνάπτει στα συμβάντα διαδικασίες, οι οποίες εκτελούνται, όταν προκαλείται το αντίστοιχο συμβάν. Τον έλεγχο διαχείρισης των συμβάντων τον αναλαμβάνει το λειτουργικό σύστημα, το οποίο με κατάλληλο μηχανισμό αποστολής μηνυμάτων προκαλεί τη διέγερση και την εκτέλεση της κατάλληλης υπορουτίνας διαχείρισης συμβάντων της εφαρμογής.
Η πιο απλή λειτουργία που μπορούμε να ζητήσουμε να εκτελεστεί μέσα σε μια υπορουτίνα διαχείρισης συμβάντος είναι η αλλαγή της τιμής μιας ιδιότητας ενός αντικειμένου. Η εντολή με την οποία γίνεται αυτή η αλλαγή είναι μια απλή εντολή εκχώρησης τιμής, η οποία έχει τη μορφή:
αντικείμενο .ιδιότητα = παράσταση
Τα αντικείμενα από κατασκευής τους συνοδεύονται και από μεθόδους. Οι μέθοδοι είναι προτυποποιημένες διαδικασίες, που έχουν κωδικοποιηθεί από τον κατασκευαστή του αντικειμένου σε έτοιμες υπορουτίνες, οι οποίες μπορούν να κληθούν κατά την εκτέλεση του προγράμματος και να προκαλέσουν μια δράση επάνω στο αντικείμενο. Η κλήση μιας μεθόδου γίνεται με σαφή προσδιορισμό του αντικειμένου πάνω στο οποίο δρα. Συγκεκριμένα, ισχύει η σύνταξη:
αντικείμενο.μέθοδος παράμετροςΐ, παράμετρος2,...
Εργαστηριακές Ασκήσεις
- Δημιουργήστε ένα έργο για την άσκηση 5-1 και εκτελέστε την βήμα προς βήμα.
- Δημιουργήστε ένα έργο για την άσκηση 5-2 και εκτελέστε την βήμα προς βήμα. Κάντε στη συνέχεια τις κατάλληλες αλλαγές, ώστε αντί για ετικέτα να χρησιμοποιείται πλαίσιο κειμένου.
Υπόδειξη: Η ιδιότητα που αλλάζει το περιεχόμενο του πλαισίου κειμένου είναι η Text.
- Δημιουργήστε ένα έργο για την άσκηση 5-3 και εκτελέστε την βήμα προς βήμα. Τι πρόβλημα θα δημιουργηθεί αν αντί για αντικείμενο ελέγχου εικόνας χρησιμοποιηθεί πλαίσιο εικόνας;
- Σε μια φόρμα να τοποθετήσετε τέσσερα πλήκτρα διαταγής. Γράψτε κώδικα, ώστε το
πάτημα κάθε πλήκτρου να εμφανίζει και ένα από τα πρόσωπα: @©@®
- Δημιουργήστε ένα έργο για την άσκηση 5-4 και εκτελέστε την βήμα προς βήμα.
Τι αλλαγές χρειάζεται να γίνουν για να τοποθετηθεί το πάνω άκρο του παραθύρου στο 1/3 της οθόνης;
- Δημιουργήστε ένα έργο για την άσκηση 5-5 και εκτελέστε την βήμα προς βήμα.
- Δημιουργήστε ένα έργο για την άσκηση 5-6 και εκτελέστε την βήμα προς βήμα.
- Δημιουργήστε εφαρμογή που να μας αναφέρει τις διαστάσεις της οθόνης σε twips.
- Δημιουργήστε εκτελέσιμο αρχείο για την άσκηση 5-3.