Στο κεφάλαιο αυτό θα
αναφέρουμε κάποιες από τις δυνατότητες που προσφέρει η 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]
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