ΚΕΦΑΛΑΙΟ 7 – ΑΛΛΕΣ ΔΥΝΑΤΟΤΗΤΕΣ

 

          Στο κεφάλαιο αυτό θα αναφέρουμε κάποιες από τις δυνατότητες που προσφέρει η Visual Basic στον προγραμματιστή.

 

 

7.1 Γραφικά

 

          Η δημιουργία γραφικών μπορεί να πραγματοποιηθεί  είτε πάνω σε μια φόρμα είτε – συνιστάται – σε ένα ειδικό γι’ αυτό το σκοπό αντικείμενο, το Picture Box. Η Visual Basic μας εφοδιάζει με τρεις μεθόδους για γραφικά. Αυτές είναι οι Pset, Line και Circle με τις οποίες σχεδιάζουμε σημεία, γραμμές και κύκλους αντίστοιχα.

 

-         Pset

 

Η μέθοδος Pset συντάσσεται ως εξής :

 

[αντικείμενο]. Pset) [,χρώμα]

 

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

 

Π.χ.        Picture1.Pset(50,70)

                  Picture1.Pset(50,70) , RGB(0,0,255)

    

     Αν θέλουμε να διαγράψουμε ένα σημείο, τότε χρησιμοποιούμε πάλι την Pset με χρώμα αυτό του φόντου της εικόνας :

 

                  Picture1.Pset(50,70) , Picture1.BackColor

 

     Μία μέθοδος που συνδέεται με την Pset είναι και η Point, που μας επιστρέφει το χρώμα κάποιου σημείου :

 

                  PointColor=Picture1.Point(50,70)

 

-         Line

 

Η μέθοδος Line συντάσσεται ως εξής :

 

[αντικείμενο].Line [Step] (x1, y1) [Step] (x2, y2), [χρώμα], [B][F]

 

Τα x1,y1,x2,y2 ορίζουν τα δύο σημεία ανάμεσα στα οποία θα σχεδιαστεί η γραμμή. Εάν χρησιμοποιηθεί το όρισμα Step τότε οι συντεταγμένες του σημείου δεν είναι απόλυτες αλλά σχετικές (του πρώτου ως προς την πάνω αριστερή γωνία του αντικειμένου και του δεύτερου ως προς το πρώτο. Τα ορίσματα B και F είναι επίσης προαιρετικά. Η χρήση του Β έχει σαν αποτέλεσμα να σχεδιαστεί ένα ορθογώνιο αντί για γραμμή, με γέμισμα που καθορίζεται από τις ιδιότητες FillColor και FillStyle του αντικειμένου. Το F (που χρησιμοποιείται πάντα μόνο σε συνδυασμό με το Β), έχει σαν αποτέλεσμα το ορθογώνιο να γεμίσει με το ίδιο χρώμα που χρησιμοποιήθηκε για το περίγραμμά του. Το παρακάτω παράδειγμα σχεδιάζει ένα ορθογώνιο γεμάτο με πράσινο χρώμα :

 

Forecolor = RGB(0,255,0)

Line (0,0)-(50,50), , BF

 

-         Circle

 

Η μέθοδος Circle συντάσσεται ως εξής :

 

[αντικείμενο].Circle [Step] (x, y), ακτίνα, [χρώμα, αρχή, τέλος, εκκεντρότητα]

 

Με x και y δηλώνουμε το κέντρο του κύκλου, ενώ με Step, ;oπως και στις προηγούμενες μεθόδους δηλώνουμε ότι οι συντεταγμένες αυτές είναι σχετικές και όχι απόλυτες. Η ακτίνα είναι υποχρεωτική, ενώ τα προαιρετικά ορίσματα αρχή και τέλος χρησιμοποιούνται όταν θέλουμε να σχεδιάσουμε ένα τόξο και όχι ολόκληρο  τον κύκλο. Οι τιμές τους δίνονται σε ακτίνια. Τέλος, το προαιρετικό όρισμα εκκεντρότητα έχει σαν αποτέλεσμα να σχεδιαστεί μια έλλειψη αντί για κύκλο.

 

          Κατά τη σχεδίαση γραφικών με τη χρήση των παραπάνω μεθόδων, μπορούμε να ελέγξουμε τα αποτελέσματα ορίζοντας κατάλληλα τις ιδιότητες ForeColor, BackColor, FillColor, FillStyle, και DrawWidth του αντικειμένου πάνω στο οποίο σχεδιάζουμε. Οι ForeColor και BackColor καθορίζουν τα default χρώματα σχεδίασης και φόντου, οι FillColor και FillStyle καθορίζουν τον τρόπο με τον οποίο γίνεται το γέμισμα ενός κλειστού γραφικού ενώ η DrawWidth καθορίζει το πάχος της γραμμής σχεδίασης.

          Τέλος, μία πολύ σημαντική μέθοδος είναι η Scale με την οποία αλλάζουμε το σύστημα συντεταγμένων του αντικειμένου πάνω στο οποίο σχεδιάζουμε. Η χρήση της είναι πρακτικά απαραίτητη για να ξέρουμε πού σχεδιάζουμε τα διάφορα σχήματα. Το παρακάτω παράδειγμα ορίζει ότι η πάνω αριστερή γωνία της εικόνας έχει συντεταγμένες (0,100) και η κάτω δεξιά (100,0) :

 

Picture1.Scale (0, 100)-(100, 0)

 

 

 

 

7.2 Μέτρηση χρόνου

 

          Ο έλεγχος  του χρόνου μέσα στα προγράμματα της Visual Basic γίνεται με δύο τρόπους. Μπορούμε είτε να προσθέσουμε το αντικείμενο Timer στη φόρμα μας είτε να χρησιμοποιήσουμε τη συνάρτηση timer της Ωισθαλ Βασιψ.

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

 

 

          Δύο από τις ιδιότητες του αντικειμένου timer είναι σημαντικές και πρέπει να τους αποδώσουμε τιμές, είτε κατά τη σχεδίαση είτε με κώδικα μέσα στο πρόγραμμά μας :

-         Enabled : καθορίζει αν ο χρονοδιακόπτης είναι ενεργοποιημένος ή όχι.

-         Interval : εκφράζει σε χιλιοστά του δευτερολέπτου το χρονικό διάστημα ενεργοποίησης του χρονοδιακόπτη. Οι δυνατές τιμές είναι από 0 μέχρι 65.535. Η τιμή 0 σημαίνει απενεργοποίηση του χρονοδιακόπτη, ενώ η μέγιστη τιμή αντιστοιχεί σε μόλις ένα λεπτό περίπου.

Το γεγονός (event) που χρησιμοποιείται με το αντικείμενο timer είναι το Timer. Το γεγονός αυτό συμβαίνει κάθε φορά που ενεργοποιείται ο χρονοδιακόπτης. Εδώ λοιπόν μπορούμε να γράψουμε εντολές που θα εκτελούνται ανά τακτά χρονικά διαστήματα. Η διάρκεια αυτών των διαστημάτων είναι ακριβώς αυτό που ορίζει η ιδιότητα interval. Στο ακόλουθο παράδειγμα, το αντικείμενο picture1 μετακινείται προς τα δεξιά κατά 10 twips κάθε ένα δέκατο του δευτερολέπτου (αφού έχουμε ορίσει interval=100) :

 

Private Sub Form_Load()

  Timer1.Enabled = True

  Timer1.Interval = 100

End Sub

 

Private Sub Timer1_Timer()

  Picture1.Left = Picture1.Left + 10

End Sub

 

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

 

Private Sub Command1_Click()

Dim Start As Single

Start = Timer

' Εκτέλεση κάποιας ενέργειας

MsgBox "Η παραπάνω ενέργεια πήρε " & Str(Timer - Start) & " δεύτερα"

End Sub