Ένα μεγάλο μέρος κάθε εφαρμογής αφορά την συνεχή
επαφή με το χρήστη. Η επικοινωνία είναι αμφίδρομη, αφού και η εφαρμογή πρέπει
να παρέχει πληροφορίες προς τους χρήστες σχετικά με την κατάσταση εκτέλεσης και
τα αποτελέσματα των ενεργειών τους αλλά και ο χρήστης να δίνει εντολές και
οδηγίες στην εφαρμογή. Το κύριο μέσο αυτής της επικοινωνίας είναι φυσικά οι
φόρμες και τα διάφορα στοιχεία ελέγχου που τοποθετούνται σ’ αυτές. Πολλές φορές
όμως είναι απαραίτητη η άμεση προσοχή του χρήστη στην ανταλλαγή μηνυμάτων με
την εφαρμογή. Στις περιπτώσεις αυτές χρησιμοποιούνται το παράθυρο μηνυμάτων και
το παράθυρο εισόδου που θα δούμε παρακάτω.
6.1
Παράθυρο μηνυμάτων (Msgbox)
Στην απλή του μορφή, το
παράθυρο μηνυμάτων δεν είναι τίποτα άλλο από μία μικρή φόρμα που περιέχει
κάποιο μήνυμα προς το χρήστη και ένα τουλάχιστον κουμπί εντολής. Προαιρετικά,
μπορεί να περιέχει κάποιο εικονίδιο, γραμμή τίτλου και περισσότερα από ένα
κουμπιά ώστε να επιτρέπει την λήψη κάποιας απόφασης από το χρήστη. Τα παράθυρα
μηνυμάτων είναι ενσωματωμένα στη Visual Basic
και η μοναδική δουλειά του προγραμματιστή είναι να δηλώσει ποιες παραμέτρους
θέλει να χρησιμοποιήσει.
Η
εμφάνιση ενός παραθύρου μηνύματος γίνεται με την εντολή MsgBox, η πλήρης σύνταξης της οποίας είναι η
Msgbox <Μήνυμα>, <κουμπιά>, <τίτλος>,
<αρχείο βοηθείας>,<περιεχόμενο>
όπου
:
-
Μήνυμα : Είναι το κείμενο που εμφανίζεται μέσα στο παράθυρο και είναι τποχρεωτικό.
-
Κουμπιά : αριθμός που δηλώνει ποιο εικονίδιο και ποια κουμπιά θέλουμε
να εμφανιστούν στο παράθυρό μας, ποιο θα είναι προεπιλεγμένο και άλλες
παραμέτρους του . Προαιρετικό.
-
Τίτλος : το caption του παραθύρου μηνύματος. Προαιρετικό.
-
Αρχείο βοηθείας : δήλωση του αρχείου που περιέχει επεξηγήσεις για την
περίπτωση που τοποθετήσουμε κουμπί βοήθειας στο παράθυρο. Προαιρετικό.
-
Περιεχόμενο : αριθμός που δηλώνει το τμήμα του αρχείου βοηθείας που
θέλουμε να εμφανιστεί. Χρησιμοποιείται μόνο αν χρησιμοποιείται αρχείο βοήθειας
και είναι προαιρετικό.
Η δημιουργία του δεύτερου
ορίσματος (κουμπιά) είναι και το μόνο λεπτό σημείο χρήσης της Msgbox. Για παράδειγμα, ο αριθμός 16 αντιστοιχεί στο
γνωστό κόκκινο εικονίδιο ”Χ” λάθους, ο 32 στο εικονίδιο ερώτησης, ο 2 στην
ομάδα κουμπιών Abort/Retry/Cancel και λοιπά. Δεν χρειάζεται
φυσικά να αποστηθίσετε όλα αυτά τα νούμερα, αφού η Visual Basic
παρέχει εύκολες σταθερές για κάθε περίπτωση και ένα φυσικό τρόπο να συνδυάσουμε
διάφορες επιλογές. Δείτε τον παρακάτω πίνακα.
Τιμή Σταθερά Αποτέλεσμα
0 vbOKOnly Κουμπί ΟΚ
1 vbOKCancel Κουμπιά OK και Cancel.
2 vbAbortRetryIgnore -//- Abort, Retry και
Ignore.
3 vbYesNoCancel -//-
Yes, No και Cancel.
4 vbYesNo -//-
Yes και No.
5 vbRetryCancel -//-
Retry και Cancel.
16 vbCritical Εικονίδιο λάθους.
32 vbQuestion -//- ερώτησης.
48 vbExclamation -//- προειδοποίησης.
64 vbInformation -//- πληροφορίας.
0 vbDefaultButton1 Προεπιλεγμένο το 1ο κουμπί.
256 vbDefaultButton2 Προεπιλεγμένο το 2ο κουμπί.
512 vbDefaultButton3 Προεπιλεγμένο το 3ο κουμπί.
768 vbDefaultButton4 Προεπιλεγμένο το 4ο κουμπί.
0 vbApplicationModal Σταματά
την εφαρμογή μας μέχρι να
αποκριθεί ο χρήστης στο μήνυμα.
4096 vbSystemModal Σταματά όλες τις
εφαρμογές μέχρι να αποκριθεί ο
χρήστης στο μήνυμα.
16384 vbMsgBoxHelpButton Προσθέτει το κουμπί Βοήθεια
Ο πίνακας είναι χωρισμένος σε ομάδες, ανάλογα με το
χαρακτηριστικό που καθορίζει η κάθε τιμή. Προσθέτοντας τιμές από διαφορετικές
ομάδες μπορούμε να συνδυάσουμε διαφορετικά χαρακτηριστικά. Παραδείγματα :
MsgBox ”Αλήθεια το λές;”, vbYesNo+ vbQuestion,”Test ”
MsgBox "Το σύστημα έχει τις μαύρες του",_
vbCritical+vbRetryCancel,"Big Problem"
Τιμή Σταθερά Περιγραφή
1 vbOK Ο χρήστης πάτησε OK
2 vbCancel Ο χρήστης πάτησε Cancel
3 vbAbort Ο χρήστης πάτησε Abort
4 vbRetry Ο χρήστης πάτησε Retry
5 vbIgnore Ο χρήστης πάτησε Ignore
6 vbYes Ο χρήστης πάτησε Yes
7 vbNo Ο χρήστης πάτησε No
Παράδειγμα:
Private Sub cmdExit_Click()
Dim Answer As
Integer
Answer
= MsgBox("Θες στ' αλήθεια να φύγεις;", vbYesNo + vbQuestion,
"Κρίμα")
If Answer = vbYes Then
End
End If
End Sub
6.2
Παράθυρο εισόδου (InputBox)
Το παράθυρο εισόδου είναι
ένας εύκολος τρόπος να πάρουμε κάποια πληροφορία από το χρήστη άμεσα, τη στιγμή
που η εφαρμογή τη χρειάζεται άμεσα για να συνεχίσει την εκτέλεσή της. Το
παράθυρο εισόδου εμφανίζεται με τη χρήση της συνάρτησης InputBox, η χρήση και η σύνταξη της
οποίας είναι παρόμοια με αυτή της συνάρτησης MsgBox :
Μεταβλητή=Inputbox <Μήνυμα>, <τίτλος>, <προεπιλεγμένη τιμή>
Το
παράθυρο εισόδου έχει πάντα δύο κουμπιά, το Ok και το Cancel.
Σε περίπτωση που ο χρήστης πατήσει το Cancel, η InputBox επιστρέφει την κενή συμβολοσειρά (””), ανεξάρτητα
από το αν ο χρήστης έχει εισάγει κάτι στο παράθυρο εισόδου ή όχι. Χρειάζεται
προσοχή λοιπόν όταν χρησιμοποιούμε αυτή τη συνάρτηση να ελέγχουμε πάντα την
απάντηση του χρήστη για δύο πράγματα : πρώτον αν απάντησε με κάτι και δεύτερον
αν απάντησε σωστά (οι χρήστες γενικά είναι φημισμένοι για τους αμέτρητους
τρόπους που διαθέτουν να δίνουν λάθος δεδομένα). Χρήσιμες για τον έλεγχο της απάντησης
του χρήστη είναι οι συναρτήσεις IsNumeric και IsDate που επιστρέφουν true αν το όρισμά τους είναι
κείμενο που αντιστοιχεί σε αριθμό ή ημερομηνία αντίστοιχα. Ακολουθεί
παράδειγμα.
Private Sub Command1_Click()
Dim Age As
Integer, Answer As String
Answer
= InputBox("Ποια είναι η ηλικία σας;",
"Ερώτηση")
If IsNumeric(Answer) Then
Age = Val(Answer)
If Age <= 0 Then
MsgBox "Όχι αρνητικό!"
Else
MsgBox
"Συγχαρητήρια!"
End If
Else
MsgBox "Δώστε αριθμό!"
End If
End Sub