ΚΕΦΑΛΑΙΟ 6 – ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΧΡΗΣΤΗ

 

 

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

 

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"

 

 

 

 

 

 

 

 

Στην περίπτωση που τοποθετήσουμε πάνω από ένα κουμπί στο παράθυρο μηνύματος, θα πρέπει ενδεχομένως να εκτελέσουμε διαφορετικές ενέργειες ανάλογα με την απάντηση του χρήστη. Θα πρέπει λοιπόν κατ’ αρχήν να ξέρουμε ποιο κουμπί πάτησε ο χρήστης. Σ’ αυτήν την περίπτωση θα χρησιμοποιήσουμε τη Msgbox σαν συνάρτηση για να μας επιστρέψει τιμή. Η μόνη διαφορά στη σύνταξη της MsgBox είναι ότι τα ορίσματα πρέπει να μπουν μέσα σε παρενθέσεις και η επιστρεφόμενη τιμή να αποθηκευθεί σε μια μεταβλητή. Οι δυνατές τιμές που μπορεί να επιστρέψει η Msgbox φαίνονται παρακάτω.

 

Τιμή           Σταθερά               Περιγραφή

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 <Μήνυμα>, <τίτλος>, <προεπιλεγμένη τιμή>

 

          Η προεπιλεγμένη τιμή εμφανίζεται στο παράθυρο εισόδου στη θέση που ο χρήστης εισάγει την πληροφορία που του ζητάμε και είναι χρήσιμο όταν μπορούμε να μαντέψουμε την απάντησή του. Ο χρήστης μπορεί να δώσει μέχρι και 255 χαρακτήρες και η απάντησή του αποθηκεύεται στην μεταβλητή που προηγείται της κλήσης της συνάρτησης. Τονίζεται ότι ο τύπος της μεταβλητής πρέπει να είναι String αφού η 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