ΚΕΝΤΡΟ ΠΛΗ.ΝΕ.Τ. Ν. ΦΛΩΡΙΝΑΣ

Χρήσιμες (Υποδείξεις) Tips στη Visual Basic

 

Διάφορα

Μπορούμε να γράψουμε και περισσότερες από μία εντολές στην ίδια γραμμή, χρησιμοποιώντας τον χαρακτήρα :, ως εξής :

            A = 0 : B = 1 : C = 10

Με τον χαρακτήρα _ μπορούμε να διασπάσουμε μια εντολή σε περισσότερες από μία γραμμές, ως εξής :

            X = "Select Code, Description, Price From Proion " &_

                        " Where Price > 1000"

Σε μια μεταβλητή τύπου ημερομηνίας μπορούμε να εκχωρήσουμε τιμή ως εξής :

            Date01 = #01/12/2001#

Σε μια μεταβλητή τύπου ημερομηνίας μπορούμε να προσθέσουμε ή να αφαιρέσουμε ένα πλήθος ημερών, ως εξής :

            Date02 = #01/12/2001# + 10

            Date03 = Date02 - 100

Η εκχώρηση μιας τυχαίας ακέραιας τιμής στο διάστημα από 1 έως 6, γίνεται ως εξής :

            a = Int(6 * Rnd + 1)

Το παράθυρο Form Layout μάς βοηθά να καθορίσουμε τις αρχικές θέσεις των φορμών στη οθόνη όταν εκτελείται η εφαρμογή και δεν είναι διαθέσιμο στη Visual Basic 4.0.

Στη Visual Basic όλα τα μεγέθη μετρώνται σε twips, όπου η κάθε στιγμή (point) έχει 20 twips. Έτσι, αφού η μια ίντσα έχει 72 στιγμές, υπάρχουν 1.440 twips σε κάθε ίντσα ή περίπου 567 ανά εκατοστό.

Μια φόρμα της Visual Basic μπορεί να χρησιμοποιηθεί σ’ οποιοδήποτε αριθμό έργων (projects). Αυτό προσφέρει ομοιομορφία μεταξύ των εφαρμογών και μειώνει τον όγκο της ανάπτυξης που πρέπει να γίνει.

Η αλλαγή της ιδιότητας Name μιας μη αποθηκευμένης φόρμας μπορεί να αλλάξει το προτεινόμενο όνομα του αρχείου, ενώ η αλλαγή του ονόματος του αρχείου δεν επηρεάζει την ιδιότητα Name της φόρμας.

Για να προσθέσουμε ένα υπάρχον αρχείο φόρμας σ’ ένα έργο, επιλέγουμε Add Form από το μενού Project, κάνουμε κλικ στο Existing και επιλέγουμε το αρχείο της φόρμας από τη λίστα των αρχείων.

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

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

Για να επιλέξουμε πολλά χειριστήρια, κάνουμε κλικ πάνω τους ενώ κρατάμε πατημένο το πλήκτρο Shift. Τα χειριστήρια αποκτούν λευκές λαβές μεγέθους.

            Οι κανόνες για τα ονόματα (ιδιότητα Name) των χειριστηρίων είναι οι εξής :

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

Το πλέγμα που χρησιμοποιούμε για τη στοίχιση των χειριστηρίων σε μια φόρμα, μπορούμε να το τροποποιήσουμε ή να το αφαιρέσουμε με την επιλογή Options του μενού Tools και κλικ στην καρτέλα Environment. Εκεί υπάρχει το πλαίσιο ελέγχου Show Grid, τα πλαίσια κειμένου Width και Height και το πλαίσιο ελέγχου Align Controls to Grid. Το διάστημα μεταξύ των γραμμών του πλέγματος είναι σε twips.

Το χρώμα φόντου ενός χειριστηρίου καθορίζεται από την ιδιότητα BackColor, ενώ για χειριστήρια που εμφανίζουν κείμενο ή γραφικά, υπάρχει και η ιδιότητα ForeColor που καθορίζει το χρώμα τους.

Η σειρά με την οποία μεταφέρεται η εστίαση (focus) από χειριστήριο σε χειριστήριο όταν πατάμε το πλήκτρο Tab καθορίζεται από τις ιδιότητες TabStop και TabIndex. Η ιδιότητα TabStop καθορίζει αν ένα χειριστήριο μπορεί να έχει την εστίαση ή όχι (True, False αντίστοιχα), ενώ η ιδιότητα TabIndex είναι μια αριθμητική τιμή που καθορίζει τη σειρά εστίασης των χειριστηρίων. Δεν μπορούν δύο χειριστήρια στην ίδια φόρμα να έχουν την ίδια τιμή στην ιδιότητα TabIndex.

Μπορούμε να προσθέσουμε κι άλλα χειριστήρια εκτός από τα ήδη υπάρχοντα, που ονομάζονται χειριστήρια ActiveX, με την επιλογή Components του μενού Project.

  

Τα Πλήκτρα Εντολής (Command Buttons)

Το κείμενο που εμφανίζεται σ’ ένα πλήκτρο εντολής βρίσκεται στην ιδιότητα Caption. Η ιδιότητα Default καθορίζει ότι το πλήκτρο εντολής θα ενεργοποιηθεί όταν πατήσουμε το Enter. Μόνο ένα πλήκτρο εντολής μπορεί να έχει σε μια φόρμα την τιμή True για την ιδιότητα Default και όλα τα άλλα πλήκτρα εντολής πρέπει να έχουν την τιμή False.

 Η ιδιότητα Cancel καθορίζει ότι το πλήκτρο εντολής θα ενεργοποιηθεί όταν πατήσουμε το Esc. Μόνο ένα πλήκτρο εντολής μπορεί να έχει σε μια φόρμα την τιμή True για την ιδιότητα Cancel και όλα τα άλλα πλήκτρα εντολής πρέπει να έχουν την τιμή False.

Η ιδιότητα Value, που μπορεί να ορισθεί μόνο κατά τη διάρκεια εκτέλεσης, καθορίζει αν το πλήκτρο έχει πατηθεί. Ορίζοντάς την σαν True, προϋποθέτουμε το πάτημα του πλήκτρου.

 

Τα Πλαίσια Κειμένου (Text Boxes)

Η ιδιότητα MaxLength θέτει ένα όριο στον αριθμό των χαρακτήρων που μπορούν να καταχωρηθούν σ’ ένα πλαίσιο κειμένου. Αν έχει την τιμή 0, που είναι και η προκαθορισμένη, δεν υπάρχει όριο στον αριθμό των χαρακτήρων.

Μπορούμε να χρησιμοποιήσουμε την ιδιότητα PasswordChar για να καταχωρούμε συνθηματικά. Ο χαρακτήρας που ορίζουμε σαν τιμή για την ιδιότητα αυτή θα εμφανίζεται ανεξάρτητα από αυτό που καταχωρεί ο χρήστης, αλλά το πραγματικό κείμενο θα βρίσκεται στην ιδιότητα Text.

Με τον χρονοδιακόπτη (timer) μπορούμε να δημιουργούμε συμβάντα σε προκαθορισμένες χρονικές στιγμές, τις οποίες μπορούμε να ρυθμίσουμε με την ιδιότητα Interval σε χιλιοστά του δευτερολέπτου.

Για ένα πλήκτρο εντολής ή πλήκτρο επιλογής, το συμβάν Click δημιουργείται και όταν δώσουμε στην ιδιότητα Value την τιμή True μέσα στο πρόγραμμα. Για ένα πλαίσιο ελέγχου, το συμβάν Click δημιουργείται αν κάνουμε οποιαδήποτε αλλαγή στην ιδιότητα Value μέσα στο πρόγραμμα.

Το συμβάν Click αποτελείται από άλλα δύο συμβάντα : MouseDown (πλήκτρο ποντικιού πατημένο) και MouseUp (πλήκτρο ποντικιού ελεύθερο).

Καθώς συμπληρώνουμε μια γραμμή κώδικα, η Visual Basic προσπαθεί να μας βοηθήσει εμφανίζοντας ένα πλαίσιο με τους πιθανούς τρόπους συμπλήρωσης της δήλωσης.

Μπορούμε να συνδυάσουμε αντικείμενα κειμένοιυ με το σύμβολο &.

Εκτός από τις ιδιότητες Height και Width μιας φόρμας υπάρχουν και οι ιδιότητες ScaleHeight και ScaleWidth που καθορίζουν τις εσωτερικές διαστάσεις της φόρμας χωρίς τη γραμμή τίτλου και το περίγραμμα. Οι ιδιότητες Height και Width καθορίζουν τις συνολικές διαστάσεις της φόρμας.

Δεν μπορούμε να αλλάξουμε τις ιδιότητες Height και Width του αντικειμένου οθόνης Screen, αλλά μπορούμε να τις χρησιμοποιήσουμε σ’ άλλες εκφράσεις.

Οι True και False αποτελούν σταθερές της Visual Basic με καθορισμένες αριθμητικές τιμές. Η τιμή 0 αντιστοιχεί στο False και μια οποιαδήποτε άλλη τιμή θεωρείται True. Αν χρησιμοποιήσουμε την True σε μια αριθμητική έκφραση, θα θεωρηθεί ίση με –1.

Μέσα στις διαδικασίες ενός αντικειμένου, μπορούμε να παραλείψουμε το όνομα του χειριστηρίου για το συγκεκριμένο αντικείμενο. Για παράδειγμα, οι δύο επόμενες δηλώσεις είναι ίδιες, αν εμφανίζονται μέσα στη διαδικασία cmdSave_Click() :

            cmdSave.Enabled = False

            Enabled = False

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

Για παράδειγμα, η επόμενη δήλωση απενεργοποιεί ένα πλήκτρο εντολής στη φόρμα frm02 :

            frm02.cmdSave.Enabled = False

Τα ονόματα μπορούν να παραλείπονται αν αντιστοιχούν στην τρέχουσα φόρμα ή στο τρέχον χειριστήριο.

Για να φορτώσουμε και να εμφανίσουμε μια φόρμα, χρησιμοποιούμε τη μέθοδο Show, ως εξής :

            Private Sub cmdDetails_Click()

                        frmDetails.Show

            End Sub

Μπορούμε να ορίσουμε τη φόρμα που θα εμφανίζεται πρώτη σε μια εφαρμογή (φόρμα εκκίνησης, startup form) με την επιλογή Properties του μενού Project. Στην καρτέλα General και στην πτυσσόμενη λίστα Startup Object επιλέγουμε τη φόρμα εκκίνησης.

Μπορούμε να χρησιμοποιήσουμε τη δήλωση Load για να μεταφέρουμε μια φόρμα στη μνήμη χωρίς να την εμφανίσουμε, όπως για παράδειγμα

            Load frmDetails

Όταν μια φόρμα έχει μεταφερθεί στη μνήμη, η μέθοδος Show έχει το ίδιο αποτέλεσμα με το να θέσουμε την ιδιότητα Visible της φόρμας σε True. Μπορούμε να αποκρύψουμε μια φόρμα με τη μέθοδο Hide, ως εξής :

            frmDetails.Hide

που είναι το ίδιο με το να θέσουμε την ιδιότητα Visible σε False.

Όταν έχουμε αποκρύψει μια φόρμα, αυτή συνεχίζει να υπάρχει στη μνήμη. Για να απελευθερώσουμε τη μνήμη που δεσμεύει η φόρμα, χρησιμοποιούμε τη δήλωση Unload, ως εξής :

            Unload frmDetails

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

Τα ονόματα των μεταβλητών πρέπει να ακολουθούν τους εξής κανόνες :

Κάθε φόρμα διαθέτει ένα αντικείμενο General στο πάνω μέρος της λίστας αντικειμένων στο παράθυρο Code. Το κάθε αντικείμενο General έχει ένα τμήμα Declarations στο πάνω μέρος της λίστας Procedure. Στο σημείο αυτό μπορούμε να ορίσουμε μεταβλητές που να τις αναγνωρίζουν όλα τα αντικείμενα και οι διαδικασίες της φόρμας.

Οι μεταβλητές εύρους φόρμας ορίζονται στο τμήμα Declarations χρησιμοποιώντας τη λέξη κλειδί Private, ως εξής :

            Private i As Integer

Αυτές οι μεταβλητές μπορούν να χρησιμοποιηθούν από οποιαδήποτε διαδικασία σε μια φόρμα. Μπορούμε να χρησιμοποιήσουμε και τη λέξη κλειδί Dim αντί της Private, με το ίδιο αποτέλεσμα.

Με τη λέξη κλειδί Const μπορούμε να ορίσουμε σταθερές, ως εξής :

            Const Maximum = 100

            Const Poli = "Florina"

            Const DateStart = #23/11/2001#

Όταν δίνουμε συγκεκριμένη τιμή σε μια μεταβλητή ημερομηνίας πρέπει να την περικλείσουμε με τους χαρακτήρες #.

Για να βρούμε το ακέραιο πηλίκο μιας διαίρεσης χρησιμοποιούμε τον τελεστή \ και για να βρούμε το ακέραιο υπόλοιπο τον τελεστή Mod.

 

Οι Αριθμητικές Συναρτήσεις

Η Visual Basic περιλαμβάνει τις ακόλουθες αριθμητικές συναρτήσεις :

 

Οι Αλφαριθμητικές Συναρτήσεις

Η Visual Basic περιλαμβάνει τις ακόλουθες αλφαριθμητικές συναρτήσεις ή συναρτήσεις συμβολοσειράς :

             π.χ. Left("Florina", 2) =  "Fl"

                 π.χ. Right("Florina", 3) = "ina"

      π.χ. Mid("Florina", 2, 3) = "lor"ενώ αν δεν δηλώσουμε το μήκος των χαρακτήρων, επιστρέφεται όλη η υπόλοιπη συμβολοσειρά μέχρι το τέλος,  π.χ. Mid("Florina", 2) = "lorina"

                π.χ. Len("Florina") = 7

       π.χ. LTrim("   Florina") = "Florina"

            π.χ. RTrim("Florina   ") = "Florina"

        π.χ. Trim("  Florina   ") = "Florina"

        π.χ. String(3, "F") = "FFF"

            π.χ. UCase("Florina") = "FLORINA"

                π.χ. LCase("Florina") = "florina"

            π.χ. InStr(2, "Florina", "n") = 6

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

        π.χ. Chr(65) = ’A’

        π.χ. Asc(‘A’) = 65

        π.χ. Str(35) = "35"

            π.χ. Val("Arrianou 11") = 11

      Ψάχνει να βρει τον πρώτο αριθμητικό χαρακτήρα.

      π.χ. IsNull("Arrianou 11") = No

 

Χειρισμός Ημερομηνίας και Ώρας

Η μεταβλητή Date δέχεται έναν αριθμό κινητής υποιδιαστολής που αντιστοιχεί σ’ έναν συνδυασμό ημερομηνίας και ώρας. Το ακέραιο μέρος του αριθμού επιστρέφει την ημερομηνία και αντιστοιχεί στον αριθμό των ημερών από την 30 Δεκεμβρίου 1899.

Έτσι, το 1 αντιστοιχεί στην 31 Δεκεμβρίου 1899, το 2 στην 1 Ιανουαρίου 1900 και το 36526 στην 1 Ιανουαρίου 2000. Οι αρνητικοί αριθμοί αντιστοιχούν σε ημερομηνίες πριν από την 30 Δεκεμβρίου 1899 και είναι ακριβείς μέχρι το 1752 που άρχισε να χρησιμοποιείται το Γρηγοριανό ημερολόγιο. Οι ημερομηνίες στη Visual Basic φθάνουν μέχρι το έτος 9999.

Το δεκαδικό μέρος της τιμής ημερομηνίας/ώρας αντιστοιχεί στην ώρα, η οποία εκφράζεται σαν ποσοστό της ημέρας που έχει περάσει. Έτσι, η 6 π.μ. αντιστοιχεί στο 0.25, η 12 μεσημέρι στο 0.50 και τα μεσάνυχτα στο 0.

Ο συνδυασμός του ακεραίου και του δεκαδικού μέρους δίνει τη συνολική ημερομηνία και ώρα. Έτσι, το 36526.25 αντιστοιχεί στις 6 π.μ. της 1ης Ιανουαρίου 2000.

Με τις συναρτήσεις Day(), Month() και Year() μπορούμε να πάρουμε τις αντίστοιχες τιμές ημέρας, μήνα και έτους από μια τιμή ημερομηνίας/ώρας. Επίσης, με τις συναρτήσεις Hour(), Minute() και Second() μπορούμε να πάρουμε τις αντίστοιχες τιμές της ώρας, των λεπτών και των δευτερολέπτων.

Η συνάρτηση Weekday() επιστρέφει την ημέρα της εβδομάδας σαν αριθμό, όπου το 1 αντιστοιχεί στην Κυριακή, το 2 στη Δευτέρα κοκ. Η συνάρτηση DateValue() μετατρέπει μια συμβολοσειρά χαρακτήρων σε τιμή ημερομηνίας, όπως για παράδειγμα DateValue(“31 Dec, 1999”) που επιστρέφει την τιμή ημερομηνίας ‘31/12/99’.

Η αντίστοιχη συνάρτηση TimeValue() μετατρέπει μια συμβολοσειρά χαρακτήρων σε τιμή ώρας, όπως για παράδειγμα TimeValue(“6:00 PM”) και TimeValue(“18:00”) που επιστρέφουν και οι δύο την τιμή ώρας ’18:00:00’.

Οι συναρτήσεις DateSerial() και TimeSerial() επιστρέφουν αντίστοιχες τιμές αλλά δέχονται τρεις παραμέτρους : έτος, μήνα και ημέρα ή ώρα, λεπτά και δευτερόλεπτα, όπως για παράδειγμα DateSerial(1999, 12, 31) και TimeSerial(18, 0, 0) αντίστοιχα, για τις προηγούμενες τιμές.

Οι συναρτήσεις Date() και Time() επιστρέφουν τιμές ημερομηνίας/ώρας που αντιστοιχούν στην τρέχουσα ημερομηνία και ώρα συστήματος αντίστοιχα. Η συνάρτηση Now() επιστρέφει μια τιμή που αντιστοιχεί στην τρέχουσα ημερομηνία και ώρα. Και οι τρεις παραπάνω συναρτήσεις δεν δέχονται παραμέτρους.

Σαν συμπέρασμα, πρέπει να χρησιμοποιούμε τις συναρτήσεις DateValue() και TimeValue() όταν έχουμε να κάνουμε με ημερομηνίες που εισήχθησαν από τον χρήστη σαν συμβολοσειρές και τις συναρτήσεις DateSerial() και TimeSerial() όταν γνωρίζουμε τα ξεχωριστά τμήματα ημερομηνίας/ώρας.

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

 

Οι Πίνακες (Arrays)

Για να ορίσουμε έναν πίνακα στη Visual Basic, δηλώνουμε τον τύπο δεδομένων του πίνακα και μέσα σε παρένθεση τον μεγαλύτερο δείκτη του, ως εξής :

            Dim A(10) As Integer

Η παραπάνω δήλωση ορίζει έναν πίνακα με 11 ακέραια στοιχεία και με αρίθμηση από το 0 έως το 10.

Εξ ορισμού, η τιμή του πρώτου δείκτη είναι το 0, ενώ για να την ορίσουμε ίση με 1, πρέπει να κάνουμε την εξής δήλωση :

            Option Base 1

Μπορούμε επίσης να ορίσουμε τον μικρότερο και τον μεγαλύτερο δείκτη του κάθε πίνακα χωριστά, ως εξής :

            Dim B(1 To 10) As Integer

            Dim MyYear(1990 To 2000) As Integer

Μπορούμε να ορίσουμε και πίνακες με περισσότερες από μία διαστάσεις, ως εξής :

            Dim Names(1 To 10, 1 To 20) As String

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

Μπορούμε να δημιουργήσουμε πίνακες χειριστηρίων, έτσι ώστε να τοποθετούμε παρόμοια χειριστήρια σ’ ένα παράθυρο. Για να γίνει αυτό, κάνουμε αντιγραφή και επικόλληση ενός χειριστηρίου και στην ερώτηση απαντάμε Ναι. Θα δημιουργηθεί ένα δεύτερο, ίδιο χειριστήριο που θα έχει την ίδια τιμή στην ιδιότητα Name και τιμή στην ιδιότητα Index ίση με 1, ενώ το αρχικό έχει τιμή στην ιδιότητα Index ίση με 0.

Αντί να τοποθετούμε πολλά χειριστήρια ένα-ένα, μπορούμε να δημιουργήσουμε το αρχικό, να θέσουμε την ιδιότητά του Index ίση με 0 και μετά με τη δήλωση Load να δημιουργήσουμε και τα υπόλοιπα χειριστήρια του πίνακα.

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

 

Οι Ενότητες(Modules)

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

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

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

Αυτό παρουσιάζεται γραφικά παρακάτω.

Πλαίσιο κειμένου: Φόρμα1
Πλαίσιο κειμένου: Διαδικασία1
Πλαίσιο κειμένου: Διαδικασία2
Πλαίσιο κειμένου: Φόρμα2
Πλαίσιο κειμένου: Διαδικασία1
Πλαίσιο κειμένου: Διαδικασία2
Πλαίσιο κειμένου: Ενότητα1
Πλαίσιο κειμένου: Διαδικασία1
Πλαίσιο κειμένου: Διαδικασία2
Πλαίσιο κειμένου: Ενότητα2
Πλαίσιο κειμένου: Διαδικασία1
Πλαίσιο κειμένου: Διαδικασία2

 

 

 

 

 

 

 

 

 

 

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

Για να δημιουργήσουμε μια νέα ενότητα κώδικα, επιλέγουμε Add Module από το μενού Project και κάνουμε κλικ στο εικονίδιο Module. Θα εμφανισθεί το γνωστό παράθυρο Code. Τα αρχεία ενότητας κώβδικα αποθηκεύονται με την επέκταση .bas. Οι ενότητες εμφανίζονται στο παράθυρο Project Explorer μαζί με τις φόρμες.

Για να προσθέσουμε μια ήδη υπάρχουσα ενότητα κώδικα, επιλέγουμε Add Module από το μενού Project και κάνουμε κλικ στην καρτέλα Existing. Μετά επιλέγουμε ένα αρχείο με επέκταση .bas.

Για να αφαιρέσουμε μια ενότητα από μια εργασία, κάνουμε κλικ στο όνομά της στο παράθυρο του Project Explorer και επιλέγουμε Remove από το μενού Project. Αν αφαιρέσουμε μια ενότητα από μια εργασία, το αρχείο .bas της ενότητας θα συνεχίσει να υπάρχει κανονικά στον δίσκο.

Για να προσθέσουμε μια διαδικασία γενικού σκοπού σε μια ενότητα κώδικα, εμφανίζουμε το παράθυρο Code της ενότητας και παρατηρούμε ότι το μόνο αντικείμενο που είναι διαθέσιμο για μια ενότητα κώδικα είναι το General.

Επιλέγουμε Add Procedure από το μενού Tools για να εμφανισθεί το παράθυρο Add Procedure. Στο πλαίσιο κειμένου Name γράφουμε το όνομα της διαδικασίας, από την ομάδα επιλογών Type επιλέγουμε τον τύπο της, δηλ. Sub ή Function, και από την ομάδα επιλογών Scope επιλέγουμε την εμβέλειά της, δηλ. Public ή Private.

Μόλις δώσουμε ένα όνομα για τη νέα διαδικασία, κάνουμε τις επιλογές μας και κλείσουμε το πλαίσιο διαλόγου, θα εμφανισθεί το παράθυρο Code με τις γραμμές Sub … End Sub ή Function … End Function ήδη συμπληρωμένες.

Για να επεξεργαστούμε αργότερα τη διαδικαδία, μπορούμε να την επιλέξουμε με το όνομά της από την πτυσσόμενη λίστα Procedure στο παράθυρο Code.

Για να προσθέσουμε μια διαδικασία γενικού σκοπού σε μια ενότητα φόρμας, ανοίγουμε το παράθυρο Code της φόρμας και επιλέγουμε General από την πτυσσόμενη λίστα Object, οπότε στην πτυσσόμενη λίστα Procedure εμφανίζονται όλες οι γενικού σκοπού διαδικασίες της φόρμας.

Με την επιλογή Add Procedure του μενού Tools μπορούμε να προσθέσουμε μια νέα διαδικασία όπως και προηγουμένως. Μόνο στο αντικείμενο General μπορούμε να προσθέσουμε γενικού σκοπού διαδικασίες. Όλα τα άλλα αντικείμενα μπορούν να έχουν μόνο διαδικασίες συμβάντων.

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

Θα πρέπει να έχουμε υπόψη μας ότι μέσα σε μια ενότητα, οποιαδήποτε αναφορά σε χειριστήριο, θα πρέπει να καθορίζει το όνομα της φόρμας.

 

Δημόσιες και Μεταβιβαζόμενες Μεταβλητές

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

Οι ενότητες έχουν επίσης ένα τμήμα Declarations, όπου μπορούμε να δηλώσουμε μεταβλητές επιπέδου ενότητας ή καθολικές μεταβλητές με την εξής μορφή :

            Private Variable1 As String

            Public Variable2 As Integer

Οι μεταβλητές Private είναι διαθέσιμες σ’ ολόκληρη την ενότητα αλλά όχι σ’ άλλες ενότητες ή φόρμες, ενώ οι μεταβλητές Public είναι διαθέσιμες σ’ ολόκληρη την εργασία.

 

Οι Σταθερές

Στο τμήμα Declarations μιας ενότητας μπορούμε να δηλώσουμε και σταθερές οι οποίες είναι διαθέσιμες σ’ όλες τις διαδικασίες της ενότητας. Μπορούμε επίσης να δηλώσουμε δημόσιες σταθερές που η τιμή τους να είναι διαθέσιμη σ’ όλες τις διαδικασίες της εργασίας, ως εξής :

            Public Const Name = "Florina"

            Public Const FPA = 18

 

Οι Συναρτήσεις (Functions)

            Οι οριζόμενες από τον χρήστη συναρτήσεις δημιουργούνται παρόμοια με τις διαδικασίες. Επιλέγουμε Add Procedure από το μενού Tools και κάνουμε κλικ στο Function αντί στο Sub. Θα εμφανισθούν η πρώτη και η τελευταία γραμμή του κώδικα της συνάρτησης, δηλ. τα Function και End Function. Οι συναρτήσεις επιστρέφουν μία μόνο τιμή, η οποία υπολογίζεται σε μια μεταβλητή που έχει το ίδιο όνομα και τύπο δεδομένων με τη συνάρτηση.

 

Οι Λογικοί Τελεστές

            Μπορούμε να συνδυάσουμε εκφράσεις συμβολοσειρών με τους εξής λογικούς τελεστές :

 

Η Δήλωση Do … Loop

Υπάρχουν οι εξής πέντε παραλλαγές της δήλωσης DoLoop :

            Do

                        δηλώσεις

            Loop

Επαναλαμβάνεται μέχρι να βρεθεί μια δήλωση Exit Do ή μέχρι ο χρήστης να πατήσει τα πλήκτρα Control+Break.

            Do While συνθήκη

                        δηλώσεις

            Loop

Επαναλαμβάνεται όσο είναι αληθής η συνθήκη.

            Do

                        δηλώσεις

            Loop While συνθήκη

Επαναλαμβάνεται όσο είναι αληθής η συνθήκη. Η επανάληψη εκτελείται τουλάχιστον μία φορά.

            Do Until συνθήκη

                        δηλώσεις

            Loop

Επαναλαμβάνεται μέχρι να γίνει αληθής η συνθήκη.

            Do

                        δηλώσεις

            Loop Until συνθήκη

Επαναλαμβάνεται μέχρι να γίνει αληθής η συνθήκη. Η επανάληψη εκτελείται τουλάχιστον μία φορά.

 

Τα Μενού

Με τον επεξεργαστή μενού (menu editor) μπορούμε να προσθέσουμε πτυσσόμενα μενού σε φόρμες. Επιλέγουμε Menu Editor από το μενού Tools ή πατάμε τα πλήκτρα Control+E για να εμφανισθεί ο επεξεργαστής μενού. Το πάνω μισό του παραθύρου εμφανίζει τις ιδιότητες ενός στοιχείου του μενού και το κάτω μισό εμφανίζει όλα τα στοιχεία των μενού της τρέχουσας φόρμας.

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

Το κλειδί πρόσβασης εισάγεται με τη χρήση του χαρακτήρα & στην ετικέτα (caption) ενός στοιχείου μενού και ενεργοποιείται με το πλήκτρο Alt, ενώ το κλειδί συντόμευσης το επιλέγουμε από την πτυσσόμενη λίστα Shortcut του παραθύρου του Menu Editor και ενεργοποιείται με συνδυασμό άλλων πλήκτρων (Shift, Control, Alt, F1-F12).

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

            Ο προσωρινός χώρος αποθήκευσης (Πρόχειρο, Clipboard) διαθετει τις εξής χρήσιμες μεθόδους :

Οι μέθοδοι του προχείρου μπορούν να χρησιμοποιηθούν σε συνδυασμό με τις εξής ιδιότητες των πλαισίων κειμένου :

 

back.gif (9867 bytes)

Επιστροφή