Στοιχεία για την εμφάνιση γραφικών πληροφοριών. Παρουσίαση με θέμα «Εμφάνιση γραφικών πληροφοριών στους Δελφούς». Σύντομες πληροφορίες από τη θεωρία

Για την εμφάνιση γραφικών πληροφοριών, η βιβλιοθήκη Delphi παρέχει στοιχεία, η λίστα των οποίων δίνεται στον πίνακα. 6.

Πίνακας 6

Στοιχεία για την εμφάνιση γραφικών πληροφοριών

Συστατικό Σελίδα Περιγραφή
Εικόνα Πρόσθετος Χρησιμοποιείται για την εμφάνιση γραφικών
PaintBox (παράθυρο για σχέδιο) Σύστημα Χρησιμοποιείται για τη δημιουργία μιας περιοχής στη φόρμα με την οποία μπορείτε να σχεδιάσετε
DrawGrid (πίνακας σχεδίων) Πρόσθετος Χρησιμοποιείται για την εμφάνιση δεδομένων μη κειμένου σε σειρές και στήλες
Διάγραμμα (γραφήματα και γραφήματα) Πρόσθετος Το στοιχείο ανήκει στην οικογένεια στοιχείων TeeChart, τα οποία χρησιμοποιούνται για τη δημιουργία γραφημάτων και γραφημάτων
Chartfx (γραφήματα και γραφήματα) ActiveX Επεξεργαστής γραφημάτων και γραφημάτων
FIBook (σελίδες Excel) ActiveX Στοιχείο εισαγωγής και επεξεργασίας αριθμητικών πληροφοριών
VtChart (γραφήματα) ActiveX Παράθυρο διαγραμμάτων

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

Πίνακες εικόνας - Στοιχεία DrawGrid και StringGrid

Συστατικό DrawGridχρησιμοποιείται για τη δημιουργία πίνακα σε μια εφαρμογή που μπορεί να περιέχει γραφικές εικόνες. Αυτό το στοιχείο είναι παρόμοιο με το εξάρτημα StringGridαφού η τελευταία προέρχεται από DrawGrid.Επομένως σε DrawGridυπάρχουν όλες οι ιδιότητες, οι μέθοδοι, τα συμβάντα του στοιχείου StringGridεκτός από αυτά που σχετίζονται με το κείμενο, δηλ. εκτός από ακίνητα Κύτταρα, Στήλες, Σειρές, Αντικείμενα.Από αυτή την άποψη, το συστατικό StringGridέχει σημαντικά μεγαλύτερες δυνατότητες από DrawGridαφού μπορεί να αποθηκεύσει τόσο εικόνες όσο και κείμενα σε κελιά. Και αν θέλετε να εισάγετε κείμενο σε ορισμένα κελιά DrawGridτότε θα χρειαστεί να χρησιμοποιήσετε μεθόδους για την εμφάνιση κειμένου σε ένα περίγραμμα για αυτό, κάτι που δεν είναι πολύ βολικό.

Συστατικά DrawGrid και StringGridέχουν ένα περίγραμμα Καμβάς,στο οποίο μπορείτε να δημοσιεύσετε εικόνες.

Υπάρχει μέθοδος Cell-Rect,που επιστρέφει την περιοχή καμβά που έχει εκχωρηθεί για ένα δεδομένο κελί. Αυτή η μέθοδος ορίζεται ως

συνάρτηση CellRect(ACol, Arow: Longint): TRect;

Οπου ACol και Arow- δείκτες στηλών και σειρών που ξεκινούν από το 0, στη διασταύρωση των οποίων βρίσκεται το κελί. Η περιοχή που επιστρέφεται από αυτή τη συνάρτηση είναι η περιοχή καμβά στην οποία μπορεί να σχεδιαστεί η επιθυμητή εικόνα. Για παράδειγμα, ο χειριστής

DrawGridl.Canvas.CopyRect(DrawGridl.CellRect(1,1),

BitMap.Canvas,Rect(0,0,BitMap.Height,BitMap.Width));

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

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

Ένας βολικός τρόπος για να εισάγετε εικόνες σε κελιά DrawGridείναι η χρήση ενός προγράμματος χειρισμού συμβάντων OnDrawCell.Αυτά τα συμβάντα συμβαίνουν για κάθε κελί πίνακα τη στιγμή που επανασχεδιάζεται. Η κεφαλίδα του χειριστή μοιάζει με:

διαδικασία TForml.DrawGridlDrawCell(Αποστολέας: TObject;

ACol, Arow: Ακέραιος; Rect: TRect; Κατάσταση: TGridDrawState)

Παράμετρος κατάστασηδείχνει την κατάσταση του κελιού. Είναι ένα σύνολο που μπορεί να περιέχει τα ακόλουθα στοιχεία: gdΕπιλέχτηκε- επιλεγμένο κελί, gdFocused- το κύτταρο που είναι στο επίκεντρο, gd Διορθώθηκε- ένα κελί σε μια σταθερή περιοχή του πίνακα. Παράμετρος κατάστασημπορεί να χρησιμοποιηθεί για την εμφάνιση κελιών με διαφορετικό τρόπο σε διαφορετικές καταστάσεις.

Στοιχείο σχήματος

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

StRectangle – ορθογώνιο;

StSquare – τετράγωνο;

StRoundRect - ορθογώνιο με στρογγυλεμένες γωνίες.

StRouhdSquare - τετράγωνο με στρογγυλεμένες γωνίες.

StEllipse – έλλειψη;

StCircle - κύκλος.

Μια άλλη βασική ιδιότητα του εξαρτήματος είναι Βούρτσα(βούρτσα). Αυτή η ιδιότητα είναι αντικείμενο τύπου TBrush,έχει έναν αριθμό υπο-ιδιοτήτων, ιδιαίτερα το χρώμα (Βούρτσα. Χρώμα)και στυλ (Βούρτσα. Στυλ)γεμίζοντας το σχήμα. Μπορείτε να δείτε το γέμισμα για ορισμένες τιμές στυλ στο Σχ. 3.2. Η τρίτη ειδική ιδιότητα του στοιχείου Σχήμα- Στυλό(στυλό) που καθορίζει το στυλ γραμμής.

Στοιχείο γραφήματος

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

Συστατικό Διάγραμμαείναι ένα δοχείο με αντικείμενα Σειρά- κληρονόμοι της τάξης TChartSeries.Κάθε τέτοιο αντικείμενο αντιπροσωπεύει μια σειρά δεδομένων που χαρακτηρίζονται από ένα συγκεκριμένο στυλ εμφάνισης: ένα συγκεκριμένο γράφημα ή διάγραμμα. Κάθε συστατικό Διάγραμμαμπορεί να περιλαμβάνει πολλά επεισόδια. Εάν θέλετε να εμφανίσετε ένα γράφημα, τότε κάθε σειρά θα αντιστοιχεί σε μία καμπύλη στο γράφημα. Εάν θέλετε να εμφανίσετε γραφήματα, για ορισμένους τύπους γραφημάτων μπορείτε να επικαλύψετε πολλές διαφορετικές σειρές η μία πάνω στην άλλη, για άλλους (όπως γραφήματα πίτας) πιθανότατα θα φαίνεται άσχημο. Ωστόσο, ακόμα και σε αυτήν την περίπτωση, μπορείτε να ορίσετε ένα στοιχείο Διάγραμμαπολλές σειρές των ίδιων δεδομένων με διαφορετικούς τύπους γραφημάτων. Στη συνέχεια, ενεργοποιώντας ένα από αυτά κάθε φορά, μπορείτε να παρέχετε στον χρήστη την επιλογή του τύπου του γραφήματος που εμφανίζει τα δεδομένα που τον ενδιαφέρουν.

Τοποθετήστε ένα ή δύο εξαρτήματα Διάγραμμαστη φόρμα και δείτε τις ιδιότητες που ανοίγουν στο Object Inspector. Ακολουθούν μερικές εξηγήσεις μερικών από αυτές.

AllowPanning - καθορίζει την ικανότητα του χρήστη να κάνει κύλιση στο παρατηρούμενο τμήμα του γραφήματος κατά την εκτέλεση πατώντας το δεξί κουμπί του ποντικιού. Πιθανές τιμές: pm Καμία - η κύλιση απαγορεύεται, pmHori/ontal, pm Κάθετη ή pmBoth - η κύλιση επιτρέπεται, αντίστοιχα, μόνο στην οριζόντια κατεύθυνση, μόνο στην κατακόρυφη κατεύθυνση ή και στις δύο κατευθύνσεις.

AhowZoom - επιτρέπει στο χρήστη να αλλάξει το ζουμ μιας εικόνας κατά το χρόνο εκτέλεσης, κόβοντας τμήματα ενός γραφήματος ή γραφήματος με τον κέρσορα του ποντικιού. Εάν το πλαίσιο ενός θραύσματος σχεδιάζεται προς τα δεξιά και προς τα κάτω, τότε αυτό το τμήμα τεντώνεται για να καλύψει ολόκληρο το πεδίο του γραφήματος. Και αν το πλαίσιο είναι σχεδιασμένο και προς τα αριστερά, τότε η αρχική κλίμακα αποκαθίσταται.

Τίτλος - ορίζει τον τίτλο του διαγράμματος.

Πόδι - ορίζει τη λεζάντα κάτω από το διάγραμμα. Κανένα από προεπιλογή. Το κείμενο υπογραφής καθορίζεται από την υποιδιότητα Κείμενο.

Πλαίσιο - ορίζει το πλαίσιο γύρω από το διάγραμμα.

Δίπλα σε πολλές από τις αναφερόμενες ιδιότητες στο Object Inspector υπάρχουν κουμπιά με ελλείψεις που σας επιτρέπουν να καλέσετε τη μία ή την άλλη σελίδα του Επεξεργαστή γραφημάτων - ένα παράθυρο πολλών σελίδων που σας επιτρέπει να ορίσετε όλες τις ιδιότητες των γραφημάτων. Ο Επεξεργαστής Διαγράμματος μπορεί επίσης να κληθεί κάνοντας διπλό κλικ στο στοιχείο Διάγραμμαή κάνοντας δεξί κλικ πάνω του και επιλέγοντας την εντολή Edit Chart από το αναδυόμενο μενού.

Κάντε διπλό κλικ στο επάνω στοιχείο Διάγραμμα.Θα μεταφερθείτε στο παράθυρο Επεξεργαστής γραφημάτων στη σελίδα Γραφήματος, η οποία έχει πολλές καρτέλες. Πρώτα απ 'όλα, θα σας ενδιαφέρει η καρτέλα Σειρά σε αυτό. Κάντε κλικ στο κουμπί Προσθήκη - προσθέστε μια σειρά. Θα μεταφερθείτε σε ένα παράθυρο όπου μπορείτε να επιλέξετε τον τύπο του γραφήματος ή του γραφήματος. Σε αυτήν την περίπτωση, επιλέξτε Pie - ένα γράφημα πίτας. Χρησιμοποιώντας την καρτέλα Τίτλοι, μπορείτε να ορίσετε τον τίτλο του γραφήματος, η καρτέλα Υπόμνημα σάς επιτρέπει να ορίσετε παραμέτρους για την εμφάνιση του υπομνήματος του γραφήματος (λίστα συμβόλων) ή να το αφαιρέσετε εντελώς από την οθόνη, η καρτέλα Πίνακας καθορίζει την εμφάνιση του πίνακα στο όπου εμφανίζεται το γράφημα, η καρτέλα 3D σάς δίνει την ευκαιρία να αλλάξετε την εμφάνιση του γραφήματος σας: κλίση, μετατόπιση, πάχος κ.λπ.

Όταν εργάζεστε στο πρόγραμμα επεξεργασίας γραφημάτων και έχετε επιλέξει έναν τύπο γραφήματος, τα στοιχεία ΔιάγραμμαΗ φόρμα σας εμφανίζει την εμφάνισή της με τα δεδομένα υπό όρους που εισάγονται σε αυτήν. Επομένως, μπορείτε να δείτε αμέσως το αποτέλεσμα της εφαρμογής διαφόρων επιλογών στην εφαρμογή σας, κάτι που είναι πολύ βολικό.

Η σελίδα Σειρά, η οποία έχει επίσης πολλές καρτέλες, σας δίνει τη δυνατότητα να επιλέξετε πρόσθετες επιλογές εμφάνισης για τη σειρά. Ειδικότερα, για ένα γράφημα πίτας, στην καρτέλα Μορφή, είναι χρήσιμο να ενεργοποιήσετε την επιλογή Κυκλωμένη πίτα, η οποία θα διασφαλίσει ότι το γράφημα εμφανίζεται ως κύκλος σε οποιοδήποτε μέγεθος του στοιχείου του γραφήματος. Στην καρτέλα Σημάδια, τα κουμπιά της ομάδας Στυλ καθορίζουν τι θα γραφτεί στις ετικέτες που σχετίζονται με μεμονωμένα τμήματα του γραφήματος: Τιμή - τιμή, Ποσοστό - ποσοστά, Ετικέτα - ονόματα δεδομένων κ.λπ.

Μπορείτε, εάν θέλετε, να προσθέσετε μια άλλη πανομοιότυπη σειρά σε αυτό το στοιχείο γραφήματος κάνοντας κλικ στο κουμπί Clone στην καρτέλα Series της σελίδας Chart και, στη συνέχεια, για αυτό νέα σειράΚάντε κλικ στο κουμπί Αλλαγή και επιλέξτε έναν διαφορετικό τύπο γραφήματος, για παράδειγμα Γραμμή.

Βγείτε από το πρόγραμμα επεξεργασίας γραφημάτων, επιλέξτε το κάτω στοιχείο Chart στην εφαρμογή σας και επαναλάβετε τη ρύθμιση των ιδιοτήτων του χρησιμοποιώντας το Chart Editor. Σε αυτήν την περίπτωση, θα χρειαστεί να καθορίσετε δύο σειρές εάν θέλετε να εμφανίσετε δύο καμπύλες στο γράφημα και να επιλέξετε τον τύπο γραμμικού γραφήματος. Επειδή η μιλάμε γιασχετικά με τα γραφήματα, μπορείτε να χρησιμοποιήσετε τις καρτέλες Άξονας και Τείχη για να καθορίσετε τα χαρακτηριστικά συντεταγμένων των αξόνων και των τρισδιάστατων άκρων του γραφήματος.

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

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

Μέθοδος Σαφήδιαγράφει μια σειρά δεδομένων που έχουν εισαχθεί προηγουμένως.

Μέθοδος Προσθήκη:

Προσθήκη(Const AValue:Double; Const ALabel:String; AColor:TCcolor)

σας επιτρέπει να προσθέσετε ένα νέο σημείο στο διάγραμμα. Παράμετρος Μια αξίααντιστοιχεί στην προστιθέμενη αξία, παράμετρος Μία ετικέτα- μια ετικέτα που θα εμφανίζεται στο διάγραμμα και στο υπόμνημα, AColor- χρώμα. Παράμετρος Μία ετικέτα- προαιρετικό, μπορεί να οριστεί κενό: ‘ ’. Μέθοδος AddXY:

AddXY(Const AXValue, AYValue: Double; Const ALabel: String; AColor: TColor)

σας επιτρέπει να προσθέσετε ένα νέο σημείο στο γράφημα συνάρτησης. Επιλογές AXValueΚαι AYValueαντιστοιχούν σε όρισμα και συνάρτηση. Επιλογές ALabel και AColorτο ίδιο όπως στη μέθοδο Προσθήκη.

Έτσι, η διαδικασία για τη φόρτωση δεδομένων στο παράδειγμά μας θα μπορούσε να μοιάζει με:

const Al=155; A2=251; A3=203; A4=404; var i:word; αρχίζουν

Ξεκινήστε με τη σειρά

Add(Al"Workshop l",clYellow);

Add(A2"Workshop 2",clBlue);

Add(A3"Workshop 3",clRed);

Add(A4"Workshop 4",clPurple); τέλος;

Series2.Clear; SeriesS.Clear; για i:=0 έως 100 ξεκινούν

Series2.AddXY(0.02*Pi*i,sin(0.02*Pi*i)

SeriesS.AddXY(0.02*Pi*i,cos(0.02*Pi*i) end;

ClRed); ,clBlue);

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

Αυτό ολοκληρώνει την εισαγωγή μας στο στοιχείο Διάγραμμα.Είναι αλήθεια ότι έχουμε εξετάσει μόνο ένα μικρό μέρος των δυνατοτήτων του.

Εργασία με γραφικάστους Δελφούς δεν είναι μόνο γραμμές και σχέδια, αλλά και εκτύπωση έγγραφα κειμένου. Επομένως σε Οι Δελφοί στη δουλειάμε γραφικάπρέπει να αφιερώσετε λίγο χρόνο. Δουλεύω με γραφικά στους Δελφούςπεριλαμβάνει την πρόσβαση στον καμβά - την ιδιότητα Canvas των στοιχείων. Καμβάς ΔελφοίΑυτός είναι ένας καμβάς που επιτρέπει στον προγραμματιστή να έχει πρόσβαση σε κάθε σημείο του (pixel) και, όπως ένας καλλιτέχνης, να εμφανίζει αυτό που απαιτείται. Φυσικά, σχεδιάστε pixel-pixel για εργασία με γραφικάστους Δελφούς δεν είναι απαραίτητο, το σύστημα Δελφών παρέχει ισχυρό εργαλεία γραφικών, διευκολύνοντας το έργο του προγραμματιστή.

Όταν εργάζεται με γραφικά στους Δελφούς, ο προγραμματιστής έχει στη διάθεσή του ένα περίγραμμα (καμβάς, καμβάς - ιδιοκτησία Καμβάς Delphi components), μολύβι (ιδιότητα Στυλό), πινέλο (ιδιότητα πινέλου) του εξαρτήματος ή του αντικειμένου στο οποίο υποτίθεται ότι πρέπει να ζωγραφίσετε. Στο μολύβι Στυλόκαι βούρτσες Βούρτσαμπορείτε να αλλάξετε το χρώμα (ιδιότητα χρώματος) και το στυλ (ιδιότητα στυλ). Η πρόσβαση στις γραμματοσειρές παρέχεται από την ιδιοκτησία καμβά Γραμματοσειρά. Αυτά τα εργαλεία σάς επιτρέπουν να εμφανίζετε κείμενο και αρκετά σύνθετα γραφήματα μαθηματικού και μηχανικού περιεχομένου, καθώς και σχέδια. Εκτός, εργασία με γραφικάσας επιτρέπει να χρησιμοποιείτε τέτοιους πόρους στους Δελφούς Windowsόπως αρχεία γραφικών και βίντεο.

Φυσικά, δεν έχουν όλα τα συστατικά στους Δελφούς αυτές τις ιδιότητες. Στην καρτέλα Πρόσθετοςβρίσκεται ένα εξειδικευμένο εξάρτημα ΤΙΜΕ, ειδικά σχεδιασμένο για σχέδιο, αλλά και το ακίνητο Καμβάςέχουν, για παράδειγμα, στοιχεία όπως ListBox, ComboBox, StringGrid, καθώς και την ίδια τη Φόρμα, που τοποθετεί τα στοιχεία μας! Επιπλέον, για την εκτύπωση εγγράφων, οι Delphi έχουν πρόσβαση στην ιδιότητα Canvas ενός αντικειμένου όπως ο εκτυπωτής.

Η κύρια ιδιότητα ενός αντικειμένου όπως το Canvas Delphi είναι Pixelsτύπος TColor, δηλαδή είναι ένας δισδιάστατος πίνακας σημείων (pixel) που προσδιορίζονται από το χρώμα τους. Το σχέδιο στον καμβά πραγματοποιείται τη στιγμή της ανάθεσης ενός συγκεκριμένου χρώματος σε οποιοδήποτε σημείο του καμβά. Σε κάθε pixel μπορεί να εκχωρηθεί οποιοδήποτε χρώμα διαθέσιμο για Windows. Για παράδειγμα, εκτέλεση της δήλωσης

Image1.Canvas.Pixels:=clRed;

Θα έχει ως αποτέλεσμα να σχεδιάσετε μια κόκκινη κουκκίδα με συντεταγμένες. Μπορείτε να μάθετε το χρώμα ενός pixel με αντίστροφη ανάθεση:

Χρώμα:=Εικόνα1.Καμβάς.Εικονοστοιχεία;

Τύπος TColorορίζεται ως μακρύς ακέραιος (LongInt). Τα τέσσερα byte του περιέχουν πληροφορίες σχετικά με τις αναλογίες των χρωμάτων μπλε (B), πράσινου (G) και κόκκινου (R). Σε δεκαεξαδικό σύστημα μοιάζει με αυτό: $00BBGGRR. Η αναλογία κάθε χρώματος μπορεί να κυμαίνεται από 0 έως 255. Επομένως, για να εμφανιστεί το μέγιστο κόκκινο σημείο, πρέπει να αντιστοιχιστεί χρώμα $000000 FF.
Για τυπικά χρώματα στους Δελφούς ορίζεται ένα σύνολο σταθερών κειμένου. Μπορείτε να το δείτε ανοίγοντας την ιδιότητα Color, για παράδειγμα, της ίδιας φόρμας στον Επιθεωρητή αντικειμένων.

Ο παρακάτω πίνακας περιέχει ορισμένες ιδιότητες και μεθόδους καμβά:

Διαδικασία TextOut(X, Y: Integer; συνθΚείμενο: WideString);
Παράγει μια έξοδο συμβολοσειράς Κείμενοξεκινώντας από (X, Y) - το επάνω αριστερό pixel του κειμένου.
Πλάτος κειμένου ιδιότητας( varΚείμενο: Συμβολοσειρά): Ακέραιος;
Περιέχει το μήκος της χορδής Κείμενοσε pixel.
Ύψος κειμένου ιδιότητας( varΚείμενο: Συμβολοσειρά): Ακέραιος;
Περιέχει το ύψος της γραμμής Κείμενοσε pixel.
Διαδικασία MoveTo(X, Y: Integer);
Μετακινεί τη θέση στο pixel με διεύθυνση (X, Y).
Procedure LineTo(X, Y: Integer);
Σχεδιάζει μια ευθεία γραμμή από το σημείο της τρέχουσας θέσης στο pixel με τη διεύθυνση (X, Y). Η διεύθυνση (X, Y) γίνεται το σημείο της τρέχουσας θέσης.
Διαδικασία FillRect( συνθ Rect: TRect);
Γεμίζει ένα ορθογώνιο Rectστον καμβά χρησιμοποιώντας το τρέχον πινέλο. Μπορεί να χρησιμοποιηθεί, μεταξύ άλλων, για τη διαγραφή μέρους μιας εικόνας στον καμβά.

Ας γράψουμε, χρησιμοποιώντας μόνο αυτές τις μεθόδους καμβά, μια εφαρμογή για μια εικόνα στον καμβά συνιστωσών Εικόνακείμενο που εισάγεται στο στοιχείο Σημείωμα:

Το πρώτο πράγμα που θα κάνουμε είναι να αρχικοποιήσουμε τις μεταβλητές όταν ξεκινά το πρόγραμμα. Είναι απαραίτητο να προσδιοριστεί το μέγεθος της περιοχής σχεδίασης (θα δημιουργήσουμε μια καθολική μεταβλητή Rect τύπου TRect για αυτό) και να ορίσουμε το χρώμα φόντου Εικόναάσπρο:

διαδικασία TForm1.FormCreate(Αποστολέας: TObject);
αρχίζουν
Rect.Left:=0;
Rect.Top:=0;
Rect.Right:=Image1.Width;
Rect.Bottom:=Εικόνα1.Ύψος;
Image1.Canvas.Brush.Color:=clΛευκό;
τέλος;

Στη συνέχεια σχεδιάστε ένα πλαίσιο στις πλευρές της Εικόνας:

διαδικασία TForm1.page;
αρχίζουν
μεΕικόνα 1. Καμβάς κάνω
αρχίζουν
MoveTo(0, 0);
LineTo(Image1.Width-1, 0);
LineTo(Εικόνα1.Πλάτος-1, Εικόνα1.Ύψος-1);
LineTo(0, Image1.Height-1);
LineTo(0, 0);
τέλος;
τέλος;

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

διαδικασία TForm1.clearing;
αρχίζουν
Image1.Canvas.FillRect(Rect); //Ορθογώνιο παραλληλόγραμμο Rectγεμίζει με λευκό και η εικόνα διαγράφεται.
τέλος;

Τώρα είναι η σειρά της ίδιας της διαδικασίας εξόδου κειμένου. Ας αρχίσουμε να σχεδιάζουμε κείμενο από το σημείο (3, 3) - την επάνω αριστερή γωνία του φύλλου, με μια μικρή εσοχή 3 pixel. Κάθε επόμενη γραμμή θα αντισταθμίζεται από το ύψος της γραμμής:

διαδικασία TForm1.prn;
var i: Ακέραιος αριθμός;
αρχίζουν
μεΕικόνα 1. Καμβάς κάνω
Για i:=1 προς τηνΥπόμνημα1.Γραμμές.Αριθμός κάνω
TextOut(3, 3+(i-1)*TextHeight("A"), Memo1.Lines);
τέλος;

Τώρα όλα είναι έτοιμα για έξοδο κειμένου. Θα το κάνουμε αυτό χρησιμοποιώντας το συμβάν OnChange:

διαδικασία TForm1.Memo1Change(Αποστολέας: TObject);
αρχίζουν
ξέφωτο;
prn;
σελίδα;
τέλος;

Και τέλος, η διαδικασία για την αλλαγή του μεγέθους της γραμματοσειράς:

διαδικασία TForm1.Edit1Change(Αποστολέας: TObject);
αρχίζουν
Memo1.Font.Size:=UpDown1.Position;
Image1.Canvas.Font.Size:=UpDown1.Position;
Memo1Change(Αποστολέας);
τέλος;

Μπορείτε να τροποποιήσετε αυτό το πρόγραμμα για να εκτυπώσετε κείμενο. Για να εργαστείτε με τον εκτυπωτή πρέπει να συνδέσετε τη μονάδα Εκτυπωτές:

μονάδαΜονάδα 1;

Διεπαφή

χρήσεις
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Διάλογοι, StdCtrls, Εκτυπωτές ;

Όταν εργάζεστε με τον εκτυπωτή ως καμβά, η μέθοδος καλείται να ξεκινήσει την εκτύπωση BeginDoc, τότε το έγγραφο εξάγεται, η εκτύπωση ολοκληρώνεται καλώντας τη μέθοδο EndDoc:

Printer.BeginDoc;
μεΕκτυπωτής.Καμβάς κάνω
αρχίζουν
...Εκτύπωση εγγράφου...
τέλος;
Printer.EndDoc;

Το πλάτος και το ύψος του ιστού του εκτυπωτή είναι διαθέσιμα μέσω των ιδιοτήτων Printer.PageWidthΚαι Printer.PageHeight. Μπορείτε να ολοκληρώσετε την εκτύπωση σε μια σελίδα και να ξεκινήσετε την εκτύπωση σε μια άλλη χρησιμοποιώντας τη μέθοδο Εκτυπωτής.ΝέαΣελίδα.

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΕΡΓΑΣΙΕΣ

ΘΕΜΑ: « Γραφικά σεΔελφοί– κατασκευή του απλούστερου
γεωμετρικά σχήματα"

Σύντομες πληροφορίες από τη θεωρία

Η Delphi παρέχει στον προγραμματιστή τρεις τρόπους εμφάνισης γραφικών:

    σχεδίαση ενώ εκτελείται το πρόγραμμα

    χρήση προ-δημιουργημένων γραφικών

    δημιουργία εικόνων με χρήση γραφικών στοιχείων

Για τη δημιουργία γραφημάτων, έχουν δημιουργηθεί ειδικές κλάσεις που παρέχουν εργαλεία και μεθόδους σχεδίασης: τα εργαλεία περιγράφονται σε τρεις κατηγορίες - Tfont, Tpen, Tbrush. Η περιοχή σχεδίασης και οι μέθοδοι παρέχονται από την κλάση Tcanvas.

ΤάξηTfont– καθορίζει τα χαρακτηριστικά της γραμματοσειράς που χρησιμοποιείται για την εμφάνιση κειμένου στον καμβά. Οι ιδιότητες της κλάσης περιγράφονται στην ενότητα «Βασικές ιδιότητες διαθέσιμες για τα περισσότερα στοιχεία».

ΤάξηTpen– καθορίζει τα χαρακτηριστικά του στυλό (μολύβι) με το οποίο σχεδιάζονται οι γραμμές.

Ιδιότητεςτάξη Tpen:

Χρώμα:Tcolor – χρώμα γραμμής (προεπιλογή – μαύρο)

Πλάτος:integer – πάχος γραμμής σε pixel;

Στυλ = (psSolid, psDash, psDot, psdashDot, psClear) – ορίζει το στυλ γραμμής (συμπαγής, διακεκομμένη, διακεκομμένη, παύλα, αόρατη)

ΤάξηTbrush– ορίζει τα χαρακτηριστικά του πινέλου που χρωματίζει την επιφάνεια της εικόνας.

Ιδιότητεςτάξη Tbrush:

Χρώμα:Tcolor – χρώμα πινέλου (προεπιλογή – λευκό)

Στυλ– σχέδιο πινέλου, μπορεί να λάβει τις ακόλουθες τιμές:

BsSolid – συμπαγής χρωματισμός

BsClear – έλλειψη σκίασης

BsΚάθετες – κάθετες γραμμές

BsBdiagonal – δεξιές διαγώνιες γραμμές

BsDiagCross – λοξό κελί

BsΟριζόντιες – οριζόντιες γραμμές

BsFdiagonal – αριστερές διαγώνιες γραμμές

BsCross – κλουβί

ΤάξηTcanvas– καθορίζει την επιφάνεια στην οποία τοποθετείται η δημιουργημένη εικόνα και τα εργαλεία με τα οποία δημιουργείται η εικόνα: γραμματοσειρά, μολύβι, πινέλο.

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

Ιδιότητεςτάξη Tcanvas:

Καμβάς:Tcanvas – ορίζει την περιοχή σχεδίασης

Βούρτσα:Tbrush – πινέλο για βάψιμο κλειστών σχημάτων

Γραμματοσειρά:Tfont – γραμματοσειρά για την εμφάνιση κειμένου στον καμβά

Στυλό:Tpen – μολύβι (στυλό) για σχέδιο

PenPos:Tpoint – τρέχουσα θέση του αόρατου δρομέα στον καμβά

Σχόλιο : Τύπος Tpoint – ορίζεται ως εξής:

Τύπος Σημείο = εγγραφή

Pixel: Tcolor - ορίζει τα χρώματα των pixel του καμβά, X, Y - συντεταγμένες pixel. Η ιδιότητα Pixels είναι βολική στη χρήση για τη δημιουργία γραφημάτων χρησιμοποιώντας σημεία του επιλεγμένου χρώματος.

Βασικές μέθοδοι της κλάσης TCanvas

    διαδικασία Μετακομίζω κάπου(x,y:ακέραιος); - μετακινεί το στυλό χωρίς να χαράξει γραμμή σε σημείο με συντεταγμένες (x, y).

    Διαδικασία LineTo(x,y:ακέραιος); - σχεδιάζει μια ευθεία από το τρέχον σημείο στο σημείο με συντεταγμένες (x, y).

Παράδειγμα : Σχεδιάστε μια διαγώνια μπλε γραμμή στο σχήμα από την επάνω αριστερή γωνία του σχήματος μέχρι την κάτω δεξιά γωνία.

Pen.color:= cblue;

MoveTo(0,0); LineTo(ClientWidth, ClientHeight);

    διαδικασία Ορθογώνιο παραλληλόγραμμο(x1,y1,x2,y2:ακέραιος); - σχεδιάζει ένα ορθογώνιο: x1,y1 – συντεταγμένες της πάνω αριστερής γωνίας. x2, y2 είναι οι συντεταγμένες της κάτω δεξιάς γωνίας.

Παράδειγμα : Σχεδιάστε ένα κίτρινο τετράγωνο με μια πλευρά 60 pixel στη μέση του σχήματος.

var Xc,Yc: ακέραιος; //

Xc:=ClientWidth div 2;

Xy:=ClientHeight div 2;

Canvas.Brush.color:=clyellow;

Canvas.rectangle(xc-30,Yc-30,xc+30,Yc+30);

    διαδικασία Ελλειψη(x1,y1,x2,y2:ακέραιος); - σχεδιάζει μια έλλειψη εγγεγραμμένη σε ορθογώνιο με τις καθορισμένες συντεταγμένες.

Παράδειγμα : σχεδιάστε μια έλλειψη εγγεγραμμένη στο στοιχείο PaintBox.

PaintBox1.Canvas.Pen.Width:=4; //πλάτος γραμμής = 4 pixel

PaintBox1.Canvas.Ellipse(0,0, PaintBox1. ClientWidth, PaintBox1. ClientHeight);

    διαδικασία Πολύγωνο() - σχεδιάζει ένα κλειστό πολύγωνο που καθορίζεται από έναν πίνακα συντεταγμένων.

Παράδειγμα : σχεδιάστε ένα γεμάτο διαμάντι που συνδέει τα μεσαία σημεία των πλευρών του σχήματος

Var Xc,Yc:ακέραιος; // συντεταγμένες του κέντρου της περιοχής πελάτη της φόρμας

Xc:=ClientWidth div 2;

Xy:=ClientHeight div 2;

Canvas.Brush.Color:=Rgb(275,140,70); // πορτοκάλι χρώμα σκίαση

Canvas.Polygon();

τέλος;

    Διαδικασία Τόξο(x1,y1,x2,y2,x3,y3,x4,y4:ακέραιος); - εμφανίζει το τόξο μιας έλλειψης που οριοθετείται από ένα ορθογώνιο (x1, y1, x2, y2). Το τόξο εμφανίζεται από ένα σημείο με συντεταγμένες (x3,y3) σε ένα σημείο με συντεταγμένες (x4,y4) κατάδεξιόστροφος.

Παράδειγμα : σχεδιάστε ένα τόξο έλλειψης που συνδέει το μέσο της επάνω πλευράς του εξαρτήματος
PaintBox με τη μέση της δεξιάς πλευράς.

Διαδικασία Tform1.Button1Click(Sender:Tobject);

Var X3,y3,x4,y4: Ακέραιος αριθμός;

Με το PaintBox1 κάντε

Canvas.Pen.Color:= clΛευκό;

Canvas.Pen.Width:= 3;

Canvas.rectangle(0, 0, PaintBox1.ClientWidth, PaintBox1.ClientHeight);

X3:= ClientWidth div 2;

X4:= Πλάτος πελάτη;

Y4:= ClientHeight div 2;

Canvas.Pen.Color:= clMaroon;

Canvas.ARC(0, 0, PaintBox1.ClientWidth, PaintBox1.ClientHeight, x3, y3, x4, y4);

Τέλος;

    διαδικασία Χορδή(x1,y1,x2,y2,x3,y3,x4,y4:ακέραιος); - σχεδιάζει μια χορδή - μια ευθεία γραμμή που συνδέει 2 σημεία της έλλειψης: ένα σημείο με συντεταγμένες (x3, y3) με ένα σημείο (x4, y4).

Παράδειγμα : Αντικαταστήστε τη μέθοδο Chord στο παράδειγμα που δίνεται με τη μέθοδο ARC και λάβετε το ακόλουθο αποτέλεσμα.

    διαδικασία Πίτα(x1,y1,x2,y2,x3,y3,x4,y4:ακέραιος); - σχεδιάζει ένα τμήμα έλλειψης που συνδέει το κέντρο της έλλειψης με τις συντεταγμένες (x3,y3) και (x4,y4).

Παράδειγμα : Στο παράδειγμα που δίνεται για τη μέθοδο ARC, φανταστείτε τη μέθοδο PIE και λάβετε αυτό το αποτέλεσμα.

    διαδικασία TextOut(x,y:ακέραιος;Κείμενο:string); - εξάγει τη συμβολοσειρά που έχει περάσει στην παράμετρο Text σε ένα ορθογώνιο του οποίου η επάνω αριστερή γωνία έχει καθοριστεί συντεταγμένες x,y. Τα χαρακτηριστικά γραμματοσειράς ορίζονται από το εργαλείο γραμματοσειράς.

Παράδειγμα : γράψτε το όνομα του γραφήματος στο κάτω μέρος της φόρμας.

Καμβάς.Γραμματοσειρά.Ύψος:=20 ; //Ύψος χαρακτήρων 20 pixel

Canvas.Font.Color:=club;

Canvas.TextOut(10, ClientHeight-24, «γράφημα συνάρτησης SIN(X)»);

Γραφικά στοιχεία

Η Delphi προσφέρει μια σειρά από έτοιμα εξαρτήματα που σας επιτρέπουν να βελτιωθείτε διεπαφή χρήστη. Αυτά τα στοιχεία βρίσκονται στη σελίδα ΠρόσθετοςΚαι Σύστημαπαλέτες συστατικών.

ΣυστατικόΕικόνα(ΤάξηΤιμάγε) – δημιουργήθηκε για την εμφάνιση γραφικών εικόνων αποθηκευμένων σε εξωτερικά αρχεία με επεκτάσεις:

    Εικονίδιο (εικονίδιο, εικονόγραμμα);

    Bmp (bitmap, bitmap);

    Wmf, .emf (μεταφίλο);

    Jpg, .jpeg (συμπιεσμένη εικόνα JPEG).

Βασικός ιδιότητες :

Αυτόματο μέγεθος:boolean – όταν οριστεί σε true, το στοιχείο προσαρμόζει τις διαστάσεις του στο μέγεθος της φορτωμένης εικόνας. η προεπιλογή είναι ψευδής.

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

Καμβάς:Tcanvas – χρησιμοποιείται για σχεδίαση στο εσωτερικό του στοιχείου κατά την εκτέλεση του προγράμματος.

Εικόνα:Tpicture - Καθορίζει την εικόνα που τοποθετείται στο στοιχείο.

Βασικός μεθόδουςτάξη Εικόνα:

Διαδικασία LoadFromFile(Όνομα αρχείου:string); - φορτώνει μια εικόνα από ένα αρχείο που ονομάζεται Όνομα αρχείου στο στοιχείο.

Διαδικασία SaveToFile(Όνομα αρχείου:string); -αποθηκεύει την εικόνα από το στοιχείο σε ένα αρχείο με το όνομα Filename.

ΣυστατικόPaintBox - ορίζει μια ορθογώνια περιοχή σχεδίασης. Το κύριο ακίνητο είναι Καμβάς, όλες οι μέθοδοι της κλάσης Tcanvas είναι διαθέσιμες, δεν έχει ανεξάρτητες ιδιότητες.

Παράδειγμα : σχεδιάστε μια κίτρινη έλλειψη εγγεγραμμένη στο στοιχείο PaintBox1.

Διαδικασία Tform1Button1Click(sender:Tobject);

Με το PaintBox1.Canvas do

Βούρτσα.Χρώμα:=κίτρινο;

Ellipse(0,0,PaintBox1.ClientWidth, PaintBox1.ClientHeight);

τέλος;

ΣυστατικόBitBtnκουμπί ράστερ

Το κουμπί BitBtn, σε αντίθεση με το τυπικό, μπορεί, εκτός από τον τίτλο (Λεζάντα), να περιέχει μια εικόνα που καθορίζεται από την ιδιότητα Γλύφος. Υπάρχει ένα σύνολο τυπικών κουμπιών BitBtn, με προκαθορισμένες ιδιότητες (με συγκεκριμένη εικόνα, επιγραφή και σκοπό) - ο τύπος του τυπικού κουμπιού επιλέγεται μέσω της ιδιότητας Είδος. Είδος=(bkCustom, bkAbort,bkCancel, bkClose…)

Εργασία Νο. 1

Δημιουργήστε μια εφαρμογή που περιέχει δύο στοιχεία εικόνας και 4 κουμπιά στην κύρια φόρμα ("Φόρτωση εικόνας", "Δημιουργία γεωμετρικού σχήματος", "Αλλαγή χρώματος", "Έξοδος") και σας επιτρέπει:

α) φορτώστε στο στοιχείο Image1 που έχει επιλέξει ο χρήστης γραφική εικόναέτσι ώστε η εικόνα να καταλαμβάνει ολόκληρη την περιοχή του στοιχείου Εικόνα.

β) κάτω από το στοιχείο Image1 εμφανίστε την επιγραφή "Αυτή είναι μια εικόνα από ένα αρχείο.

(για οποιαδήποτε μέτρηση του μεγέθους και της θέσης του εξαρτήματοςΕικόνα1 επιγραφή πρέπει
βρίσκεται αυστηρά κάτω από το εξάρτημα).

γ) σχεδιάστε ένα γεωμετρικό σχήμα μέσα στο στοιχείο Image2: ένα γεμάτο έλλειψη τμήματος που συνδέει το μέσο του στοιχείου Image με το μέσο της κάτω και δεξιάς πλευράς του στοιχείου Image.

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

δ) αλλάξτε το χρώμα της γραμμής ενός σχήματος που σχεδιάστηκε στο Image2 κατόπιν αιτήματος του χρήστη χρησιμοποιώντας το στοιχείο ColorDialog.

Εργασία Νο. 2

Δημιουργήστε μια εφαρμογή που σας επιτρέπει να τοποθετείτε τυχαία πολλές ετικέτες (για παράδειγμα, τη λέξη "Hurray!") στο στοιχείο Image. Για την υλοποίηση, χρησιμοποιήστε μια γεννήτρια τυχαίους αριθμούςΤυχαία και η συνάρτηση Τυχαία.

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

Εργασία Νο. 3

Δημιουργήστε μια εφαρμογή που σας επιτρέπει να επιλέξετε το όνομα ενός γεωμετρικού σχήματος από ένα ListBox και να σχεδιάσετε το επιλεγμένο σχήμα στο στοιχείο Image. Το χρώμα του σχήματος επιλέγεται από το στοιχείο RadioGroup.

Εργασία Νο. 4

Διαχωρίστε το στοιχείο PaintBox1 σε 4 ίσα μέρη, βάψτε κάθε μέρος με διαφορετικό χρώμα, για παράδειγμα: μπλε, κίτρινο, πράσινο, κόκκινο.

Δίπλα σε κάθε γωνία του PaintBox1, γράψτε τις συντεταγμένες αυτής της γωνίας (σε σχέση με την προέλευση της φόρμας στην οποία βρίσκεται το στοιχείο PaintBox1).

Εργασία Νο. 5

ΜΕ

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

Εργασία Νο. 6

Δημιουργήστε μια εφαρμογή που επιτρέπει στο χρήστη να ορίσει τις διαστάσεις του στοιχείου PaintBox1 (σε pixel).

Διαχωρίστε το στοιχείο PaintBox1 σε 2 ίσα μέρη, μέσα σε κάθε μέρος σχεδιάστε μια έλλειψη, γεμάτη με το χρώμα που έχει επιλέξει ο χρήστης στο ColorDialog.

Εργασία Νο. 7

ΜΕ Δημιουργήστε μια εφαρμογή που σας επιτρέπει να:

επιλέξτε το όνομα ενός γεωμετρικού σχήματος από το ListBox και σχεδιάστε το επιλεγμένο σχήμα στο στοιχείο Image. Το σχήμα θα πρέπει να γεμίσει με το χρώμα που έχει επιλέξει ο χρήστης στο στοιχείο ColorDialog εάν έχει επιλεγεί Ναι στο στοιχείο RadioGroup.

Εργασία Νο. 8

Δημιουργήστε μια εφαρμογή που επιτρέπει στο χρήστη να ορίσει τις διαστάσεις του στοιχείου PaintBox1 (σε pixel).

Διαχωρίστε το στοιχείο PaintBox1 σε 4 ίσα μέρη, μέσα σε κάθε μέρος σχεδιάστε ένα διαφορετικό γεωμετρικό σχήμα (έλλειψη, ρόμβος, τρίγωνο και ορθογώνιο). Το χρώμα κάθε σχήματος επιλέγεται από τον χρήστη στο ColorGrid.

Εργασία Νο. 9

επιλέξτε το όνομα του γεωμετρικού σχήματος από το ListBox
σχήματα (έλλειψη, ρόμβος, ορθογώνιο) και σχεδίαση
το επιλεγμένο σχήμα στο στοιχείο Εικόνα. Τοποθεσία
σχήματα στο στοιχείο εικόνας (I τέταρτο, II τρίμηνο,

III ή IV τρίμηνο) και επιλέγεται το χρώμα του σχήματος
από στοιχεία RadioGroup.

Εργασία Νο. 10

Δημιουργήστε μια εφαρμογή που επιτρέπει στο χρήστη να ορίσει τις διαστάσεις του στοιχείου PaintBox1 (σε pixel).

Προσέξτε ότι το μέγεθος της πλευράς δεν μπορεί να είναι κείμενο, δεν μπορεί να είναι αρνητικός αριθμός και δεν μπορεί να υπερβαίνει το μικρότερο μέγεθος φόρμας.

Διαχωρίστε το στοιχείο PaintBox1 σε 4 ίσα μέρη, μέσα σε κάθε μέρος σχεδιάστε ένα γεωμετρικό σχήμα που έχει επιλέξει ο χρήστης στο Combobox (έλλειψη, ρόμβος, τρίγωνο και ορθογώνιο). Το χρώμα του σχήματος επιλέγεται από το χρήστη στο ColorBox.

Εργασία Νο. 11

Δημιουργήστε μια εφαρμογή που σας επιτρέπει να:

επιλέξτε από το στοιχείο Radiogroup τη θέση του σχεδίου

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

Εργασία Νο. 12

Δημιουργήστε μια εφαρμογή που επιτρέπει στο χρήστη να ορίσει τις διαστάσεις του στοιχείου PaintBox1 (σε pixel).

Προσέξτε ότι το μέγεθος της πλευράς δεν μπορεί να είναι κείμενο, δεν μπορεί να είναι αρνητικός αριθμός και δεν μπορεί να υπερβαίνει το μικρότερο μέγεθος φόρμας.

Διαχωρίστε το στοιχείο PaintBox1 σε 2 ίσα μέρη, μέσα σε ένα από τα μέρη σχεδιάστε ένα γεωμετρικό σχήμα που έχει επιλέξει ο χρήστης στο Combobox (έλλειψη, ρόμβος, τρίγωνο και ορθογώνιο). Το χρώμα του σχήματος επιλέγεται από το χρήστη στο ColorBox.

Για παράδειγμα, μπορείτε να αλλάξετε το χρώμα της φόρμας ως εξής:

form1.Color:= ColorBox1.Colors;

Εργασία Νο. 13

Δημιουργήστε μια εφαρμογή που σας επιτρέπει να:

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

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

Εργασία Νο. 14

Δημιουργήστε μια εφαρμογή που επιτρέπει στο χρήστη να ορίσει τις διαστάσεις του στοιχείου PaintBox1 (σε pixel).

Προσέξτε ότι το μέγεθος της πλευράς δεν μπορεί να είναι κείμενο, δεν μπορεί να είναι αρνητικός αριθμός και δεν μπορεί να υπερβαίνει το μικρότερο μέγεθος φόρμας.

Διαχωρίστε το στοιχείο PaintBox1 σε 2 ίσα μέρη, μέσα στο ένα μέρος σχεδιάστε έναν ρόμβο και μέσα στο άλλο μέρος σχεδιάστε οποιοδήποτε τρίγωνο. Το χρώμα του σχήματος επιλέγεται από το χρήστη στο ColorBox.

Για παράδειγμα, μπορείτε να αλλάξετε το χρώμα της φόρμας ως εξής:

form1.Color:= ColorBox1.Colors;

Εργασία Νο. 15

Δημιουργήστε μια εφαρμογή που σας επιτρέπει να:

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

(υπό την προϋπόθεση ότι το μέγεθος της πλευράς δεν μπορεί να είναι κείμενο, δεν μπορεί να είναι αρνητικός αριθμός και δεν μπορεί να υπερβαίνει το μικρότερο μέγεθος φόρμας)

β) διαιρέστε το στοιχείο Εικόνα σε 4 ίσα τετράγωνα με δύο μπλε γραμμές.

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

Εργασία Νο. 16

Δημιουργήστε μια εφαρμογή που επιτρέπει στο χρήστη να ορίσει τις διαστάσεις του στοιχείου PaintBox1 (σε pixel).

Προσέξτε ότι το μέγεθος της πλευράς δεν μπορεί να είναι κείμενο, δεν μπορεί να είναι αρνητικός αριθμός και δεν μπορεί να υπερβαίνει το μικρότερο μέγεθος φόρμας.

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

Για παράδειγμα, μπορείτε να αλλάξετε το χρώμα της φόρμας ως εξής:

form1.Color:= ColorBox1.Colors;

Εργασία Νο. 17

Τοποθετήστε δύο στοιχεία εικόνας και τέσσερα κουμπιά στη φόρμα: Χρώμα γραμμής, Χρώμα γεμίσματος, ΟΚ και Έξοδος. και το στοιχείο Επεξεργασία.

Όταν κάνετε κλικ στο κουμπί OK, σχεδιάζεται ένα τετράγωνο με πλευρά Χ στην Εικόνα1 και ένα ορθογώνιο τρίγωνο με ίσα σκέλη, καθένα από τα οποία έχει μήκος Χ, σχεδιάζεται στην Εικόνα2.

Η κορυφή του τριγώνου συμπίπτει με την αρχή της Εικόνας2. Μία από τις κορυφές του τετραγώνου συμπίπτει με την προέλευση της Εικόνας1.

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

X – επιλέγει τυχαία χρησιμοποιώντας τη συνάρτηση Random και η τιμή του X θα πρέπει να εμφανίζεται στο στοιχείο Edit.

Εργασία Νο. 18

Δημιουργήστε μια εφαρμογή που επιτρέπει στο χρήστη να ορίσει τις διαστάσεις του στοιχείου PaintBox1 (σε pixel).

Διαχωρίστε το στοιχείο PaintBox1 σε 4 ίσα μέρη· μέσα στο τμήμα που έχει επιλέξει ο χρήστης, πρέπει να δημιουργηθεί ένας γεμάτος κύκλος, το μέγεθος του οποίου ορίζεται από τον χρήστη. Ο χρήστης επιλέγει το χρώμα πλήρωσης στο ColorBox.

Για παράδειγμα, μπορείτε να αλλάξετε το χρώμα της φόρμας ως εξής:

form1.Color:= ColorBox1.Colors;

Λίστα εξαρτημάτων για την εμφάνιση γραφικών πληροφοριών

Για την εμφάνιση γραφικών πληροφοριών, η βιβλιοθήκη Delphi παρέχει στοιχεία, η λίστα των οποίων δίνεται στον Πίνακα 4.1.

Πίνακας 4.1 Στοιχεία απεικόνισης γραφικών πληροφοριών Εικονόγραμμα

Συστατικό

Σελίδα

Περιγραφή

Εικόνα

Χρησιμοποιείται για την εμφάνιση γραφικών: εικονίδια, bitmaps και μετα-αρχεία.


PaintBox (παράθυρο για σχέδιο)

Χρησιμοποιείται για τη δημιουργία μιας περιοχής στη φόρμα με την οποία μπορείτε να σχεδιάσετε.


DrawGrid (πίνακας σχεδίων)

Χρησιμοποιείται για την εμφάνιση δεδομένων μη κειμένου σε σειρές και στήλες.


Διάγραμμα (γραφήματα και γραφήματα)

Το στοιχείο ανήκει στην οικογένεια στοιχείων TChart, τα οποία χρησιμοποιούνται για τη δημιουργία γραφημάτων και γραφημάτων.


Επιπλέον, μπορείτε να εμφανίσετε και να εισαγάγετε πληροφορίες γραφικών στην επιφάνεια οποιωνδήποτε γραφικών προβολής σε καμβά.

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

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

Κάθε σημείο του περιγράμματος έχει συντεταγμένες ΧΚαι Υ. Το σύστημα συντεταγμένων του καμβά, όπως και αλλού στους Δελφούς, έχει την αρχή του στην επάνω αριστερή γωνία του καμβά. Συντεταγμένη Χαυξάνεται όταν μετακινείται από αριστερά προς τα δεξιά και η συντεταγμένη Υ- όταν μετακινείστε από πάνω προς τα κάτω. Οι συντεταγμένες μετρώνται σε pixel. Ένα pixel είναι το μικρότερο στοιχείο της επιφάνειας ενός σχεδίου που μπορεί να χειριστεί. Η πιο σημαντική ιδιότητα ενός pixel είναι το χρώμα του.

Ο καμβάς έχει την ιδιότητα Pixels. Αυτή η ιδιότητα είναι ένας δισδιάστατος πίνακας που είναι υπεύθυνος για τα χρώματα του καμβά. Για παράδειγμα, Καμβάς. Pixelsταιριάζει με το χρώμα του εικονοστοιχείου 10ο από αριστερά και 20ο από πάνω. Μπορείτε να χειριστείτε έναν πίνακα pixel όπως οποιαδήποτε ιδιότητα: αλλάξτε το χρώμα δίνοντας στο pixel μια νέα τιμή ή προσδιορίστε το χρώμα του από μια τιμή που είναι αποθηκευμένη σε αυτό. Για παράδειγμα, Καμβάς. Pixel:=0ή Καμβάς. Pixels:=clBlack- αυτό γίνεται για να ρυθμίσετε το pixel σε μαύρο.

Ιδιοκτησία Pixelsμπορεί να χρησιμοποιηθεί για σχέδιο σε καμβά. Ας προσπαθήσουμε να σχεδιάσουμε ένα γράφημα pixel προς pixel ενός ημιτονοειδούς στο περίγραμμα της φόρμας. Για να το κάνετε αυτό, στο πρόγραμμα χειρισμού συμβάντων φόρμας OnPaint(σχέδιο) μπορείτε να εισάγετε τον ακόλουθο κώδικα:

TForm1. FormPaint(Αποστολέας: TObject);

var,Y:πραγματικό; // συντεταγμένες συνάρτησης,PY: longint; // συντεταγμένες pixel

αρχίζουν:=clΛευκό;

Για PX:=0 προς τηνΠλάτος πελάτη κάνω

(Το X είναι το όρισμα του γραφήματος,

:=PX*4*Pi/ClientWidth;:=Sin(X);

(PY - συντεταγμένες pixel,

: =trunc (ClientHeight - (Y+1) *ClientHeight/2);

(Ρυθμίζει το χρώμα του επιλεγμένου

pixel (Σχετικά με τη φωτεινότητα). Pixel: = 0;

τέλος;

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

Καμβάς - αντικείμενο κλάσης TCanvasέχει πολλές μεθόδους που σας επιτρέπουν να σχεδιάζετε γραφήματα, γραμμές, σχήματα χρησιμοποιώντας την ιδιότητα Στυλό- φτερό. Αυτή η ιδιότητα είναι ένα αντικείμενο, το οποίο με τη σειρά του έχει μια σειρά από ιδιότητες. Ένα από αυτά είναι ένα ακίνητο που ήδη γνωρίζετε Χρώμα- το χρώμα με το οποίο εφαρμόζεται το σχέδιο. Δεύτερη ιδιοκτησία - Πλάτος(πλάτος γραμμής). Το πλάτος καθορίζεται σε pixel. Το προεπιλεγμένο πλάτος είναι 1.

Ιδιοκτησία Στυλκαθορίζει τον τύπο της γραμμής. Αυτή η ιδιότητα μπορεί να λάβει τις ακόλουθες τιμές:

Ο καμβάς έχει την ιδιότητα PenPosτύπος TPoint(εκ .). Αυτή η ιδιότητα καθορίζει την τρέχουσα θέση του στυλό σε συντεταγμένες καμβά. Κινώντας το στυλό χωρίς να χαράξουμε γραμμή, δηλ. αλλαγή PenPos, που παράγεται με τη μέθοδο του καμβά Μετακίνηση σε (Χ, Υ).Εδώ ( Χ, Υ) -συντεταγμένες του σημείου στο οποίο κινείται η πένα. Αυτό το τρέχον σημείο γίνεται το σημείο εκκίνησης, από το οποίο η μέθοδος LineTo (X,Y)μπορείτε να σχεδιάσετε μια γραμμή σε ένα σημείο με συντεταγμένες ( Χ, Υ).Σε αυτήν την περίπτωση, το τρέχον σημείο μετακινείται στο τελικό σημείο της γραμμής και σε μια νέα κλήση LineToθα αντλήσει ένα σημείο από αυτό το νέο τρέχον σημείο.

Ας προσπαθήσουμε να σχεδιάσουμε το ημιτονογράφημα από το προηγούμενο παράδειγμα με ένα στυλό. Σε αυτήν την περίπτωση, ο χειριστής συμβάντων φόρμας OnPaintμπορεί να μοιάζει με:

διαδικασία TForm1. FormPaint(Αποστολέας: TObject);

var,Y:πραγματικό; // συντεταγμένες συνάρτησης,PY: longint; // συντεταγμένες pixel

αρχίζουν: =clΛευκό;. MoveTo(0,ClientHeight div 2);

Για PX: =0 προς τηνΠλάτος πελάτη κάνω

(Το X είναι το όρισμα του γραφήματος,

που αντιστοιχεί στο εικονοστοιχείο με συντεταγμένη РΧ):=PX*4*Pi/ClientWidth;:=Sin(X);

(PY - συντεταγμένες pixel,

που αντιστοιχεί στη συντεταγμένη Υ):=trunc(ClientHeight - (Y+1) *ClientHeight/2);

(Στο γράφημα σχεδιάζεται μια γραμμή). LineTo(PX,PY);

Μπορείτε να δείτε το αποτέλεσμα της εφαρμογής σε αυτήν την έκδοση στο Σχ. 4.1 β. Όπως μπορείτε να δείτε, η ποιότητα των γραφικών έχει βελτιωθεί σημαντικά.

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

διαδικασία Ellipse(X1, Y1, X2, Y2: Integer);

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

Ellipse(10, 40, 20, 50);

θα σχεδιάσει έναν κύκλο με διάμετρο 10 και κέντρο συντεταγμένες (15, 45).

Στη γενική περίπτωση, οι εικόνες σχεδιάζονται όχι κενές, αλλά συμπληρώνονται χρησιμοποιώντας την ιδιότητα καμβά Βούρτσα- πινέλο. Ιδιοκτησία Βούρτσαείναι ένα αντικείμενο που με τη σειρά του έχει μια σειρά από ιδιότητες. Ιδιοκτησία Χρώμαορίζει το χρώμα πλήρωσης. Ιδιοκτησία Στυλορίζει το σχέδιο πλήρωσης (σκίαση). Προεπιλεγμένη τιμή Στυλισοδυναμεί bsΣτερεό, που σημαίνει συμπαγής χρωματισμός Χρώμα.

Στο στυλό ΣτυλόΥπάρχει ακόμη ένα ακίνητο που δεν έχουμε ακόμη εξετάσει. Αυτή η ιδιοκτησία είναι Τρόπος(τρόπος). Προεπιλεγμένη τιμή Λειτουργία = pmΑντιγραφή. Αυτό σημαίνει ότι οι γραμμές σχεδιάζονται με το χρώμα που καθορίζεται στην ιδιότητα Χρώμα. Αλλά είναι δυνατές και άλλες λειτουργίες, στις οποίες δεν λαμβάνεται υπόψη μόνο το χρώμα Χρώμα, αλλά και το χρώμα των αντίστοιχων pixel φόντου. Το πιο ενδιαφέρον από αυτά τα modes είναι το pmNotXor- προσθήκη με φόντο χρησιμοποιώντας αντίστροφο αποκλειστικό Ή. Εάν έχει οριστεί αυτή η λειτουργία, τότε σχεδιάζοντας ξανά την ίδια εικόνα στο ίδιο σημείο στον καμβά αφαιρείται η προηγουμένως σχεδιασμένη εικόνα και επαναφέρονται τα χρώματα των εικονοστοιχείων που ήταν πριν από την πρώτη εικόνα του σχήματος.

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

Δοκιμάστε να φτιάξετε μόνοι σας ένα απλό κινούμενο σχέδιο - έναν κινούμενο κύκλο. Ξεκινήστε μια νέα εφαρμογή και μεταβείτε στο εκτέλεσηεισαγωγή αγγελίας

X,Y: ακέραιος;

Αυτό θα εισάγει καθολικές μεταβλητές ΧΚαι Υ- τρέχουσες συντεταγμένες εικόνας.

Στην εκδήλωση της μορφής OnPaintεισάγετε δηλώσεις

Βούρτσα. Χρώμα:=clΛευκό;:=clΛευκό;. Στυλό. Λειτουργία:=pmNotXor;

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

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

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

Μπορείτε να το παρακολουθήσετε εκεί Λεπτομερής περιγραφή. Προς το παρόν, ορίστε την ιδιότητά του Διάστημαίσο, για παράδειγμα, με 30 (αυτός είναι ο χρόνος έκθεσης σε χιλιοστά του δευτερολέπτου, αλλά πραγματικός χρόνοςη ταχύτητα κλείστρου θα είναι μεγαλύτερη - βλέπε ενότητα 5.7) και ορίστε την ιδιότητα Ενεργοποιημένοίσος ψευδής(αυτό σημαίνει ότι το χρονόμετρο δεν θα ξεκινήσει αυτόματα κατά την εκκίνηση της εφαρμογής).

Σε περίπτωση χειρισμού συμβάντων αυτού του στοιχείου OnTimerεισάγετε δηλώσεις

// Διαγραφή της προηγούμενης εικόνας. Ellipse (X-5, Y, X+5, Y-1Q);(X);

// Σχεδιάστε μια νέα εικόνα. Ellipse (Χ-5, Υ, Χ+5, Υ-10);

// Σταματήστε όταν φτάσετε στο τέλος της φόρμας

αν(X >= ClientWidth-20) έπειτα. Ενεργοποιημένο: = false;

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

Ο τελευταίος χειριστής σταματά την εικόνα στην άκρη της φόρμας.

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

Χ: =10;: =100;. Έλειψη (Χ-5, Υ, Χ+5, Υ-10);. Ενεργοποιημένο: =true;

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

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

Ο καμβάς μπορεί να εμφανίζει όχι μόνο εικόνες που έχουν δημιουργηθεί μέσω προγραμματισμού, αλλά και εικόνες που είναι αποθηκευμένες σε αρχεία γραφικών. Μόνο ο ίδιος ο καμβάς δεν έχει μέθοδο για τη φόρτωση μιας εικόνας από ένα αρχείο. Επομένως, το αρχείο πρέπει να φορτωθεί σε κάποιο άλλο αντικείμενο γραφικών που μπορεί να λάβει πληροφορίες από αρχεία γραφικών. Και στη συνέχεια ξαναγράψτε την εικόνα από αυτό το αντικείμενο στον καμβά χρησιμοποιώντας τη μέθοδο καμβά Σχεδιάζω. Η περιγραφή του:

Draw(X, Y: Integer; Graphic: TGraphic);

Εδώ είναι οι παράμετροι ΧΚαι Υπροσδιορίστε τις συντεταγμένες της επάνω αριστερής γωνίας της τοποθέτησης της εικόνας στον καμβά, α Γραφικός- ένα αντικείμενο που αποθηκεύει πληροφορίες. Ένα τέτοιο αντικείμενο μπορεί να είναι, για παράδειγμα, ένα αντικείμενο τύπου TBitMap, σχεδιασμένο να αποθηκεύει πίνακες bit. Ας δούμε πώς φαίνονται όλα αυτά στην πράξη.

Ανοίξτε μια νέα εφαρμογή, σύρετε ένα στοιχείο στη φόρμα OpenPictureDialogαπό τη σελίδα διαλόγων (αυτό είναι ένα στοιχείο του διαλόγου για το άνοιγμα αρχείων γραφικών - βλ. ενότητα 8.2 ) και κουμπί Κουμπί. Θέση OpenPictureDialogοπουδήποτε στη φόρμα, καθώς αυτό το στοιχείο δεν είναι οπτικό, και τοποθετήστε το κουμπί στο κάτω μέρος της φόρμας. Προσθέστε τον ακόλουθο κώδικα στο πρόγραμμα χειρισμού κλικ κουμπιού:

διαδικασία TForm1. Button1Click(Αποστολέας: TObject);

var: TBitMap;

// Επιλογή χρήστη αρχείο γραφικών

αν OpenPictureDialog1. Εκτέλεση έπειτα

// Δημιουργία αντικειμένου BitMap τύπου TBitMap: =TBitMap. Δημιουργώ;

// Μεταφέρετε την εικόνα στον καμβά της φόρμας. Draw(10, 10, BitMap);

//Καταστροφή του αντικειμένου BitMap. Ελεύθερος;

τέλος;

Αυτός ο κώδικας δημιουργεί ένα προσωρινό αντικείμενο τύπου TBitMapΜε όνομα BitMap. Στη συνέχεια καλείται το παράθυρο διαλόγου για το άνοιγμα ενός αρχείου γραφικών OpenPictureDialog1και, εάν ο χρήστης έχει επιλέξει ένα αρχείο, τότε γίνεται λήψη του σε BitMapμέθοδος LoadFromFile. Στη συνέχεια, χρησιμοποιώντας τη μέθοδο Σχεδιάζωη φορτωμένη εικόνα αντιγράφεται στον καμβά στην περιοχή με τις συντεταγμένες της επάνω αριστερής γωνίας (10,10). Μετά από αυτό το προσωρινό αντικείμενο BitMapκαταστρέφεται.

Εκκινήστε την εφαρμογή σας και κάντε κλικ στο κουμπί της. Θα δείτε ότι μπορείτε να ανεβάσετε οποιοδήποτε τύπο αρχείου γραφικών. bmpκαι θα εμφανίζεται στο περίγραμμα της φόρμας (βλ. Εικ. 4.2 α). Μπορείτε να βρείτε αρχεία γραφικών στον κατάλογο Εικόνες. Στους Δελφούς 5 και 4 συνήθως βρίσκεται σε έναν κατάλογο. \program files\Common Files\Borland Shared. Στους Δελφούς 3 βρίσκεται σε έναν κατάλογο. \program files\Borland\Delphi 3, και στους Delphi 1 - στον κατάλογο Delphi 16. Στον κατάλογο Images υπάρχει, συγκεκριμένα, ένας υποκατάλογος \Images\Splash\16Color\, ο οποίος αποθηκεύει το αρχείο που έχει φορτωθεί στο παράδειγμα στο Σχ. 4.2

Έχετε δημιουργήσει μια καλή εφαρμογή για την προβολή αρχείων γραφικών. Αλλά τώρα ας προσπαθήσουμε να δούμε το σημαντικό του μειονέκτημα. Χωρίς να κλείσετε την αίτησή σας, μεταβείτε σε κάποιο άλλο πρόγραμμα, για παράδειγμα, επιστρέψτε στους Δελφούς. Στη συνέχεια, χωρίς να κάνετε τίποτα εκεί, επιστρέψτε στην τρέχουσα εφαρμογή σας. Εάν το παράθυρο του προγράμματος στο οποίο μπήκατε μπλοκάρει εντελώς το παράθυρο της εφαρμογής σας, τότε όταν επιστρέψετε σε αυτό θα δείτε ότι η εικόνα στο παράθυρο έχει εξαφανιστεί. Εάν το παράθυρο της αίτησής σας επικαλύπτονταν μόνο μερικώς, τότε όταν επιστρέψετε στην εφαρμογή σας, ενδέχεται να δείτε ένα αποτέλεσμα παρόμοιο με αυτό που φαίνεται στην Εικ. 4.2 β.

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

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

Μπορεί να γίνει επανασχεδιασμός διαφορετικοί τρόποιανάλογα με την εφαρμογή. Στο παράδειγμά μας, θα ήταν δυνατό να δηλώσουμε μια μεταβλητή BitMap(χειριστής var BitMap: TBitMap) πέρα ​​από την παραπάνω διαδικασία, δηλ. Κάντε αυτή τη μεταβλητή καθολική τοποθετώντας την απευθείας στην ενότητα εκτέλεση. Χειριστής BitMap. Ελεύθεροςθα μπορούσε να μετακινηθεί στο πρόγραμμα χειρισμού συμβάντων φόρμας OnDestroy, που εμφανίζεται όταν η εφαρμογή είναι κλειστή. Στη συνέχεια, κατά τη διάρκεια ολόκληρης της εκτέλεσης της εφαρμογής σας θα έχετε ένα αντίγραφο της εικόνας στο στοιχείο BitMapκαι πρέπει απλώς να εισέλθετε στο πρόγραμμα χειρισμού συμβάντων OnPaintαπό τη μορφή υπάρχει μόνο ένας τελεστής:

Draw(10, 10, BitMap);

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

Εκτός από την εξεταζόμενη μέθοδο Σχεδιάζωτο περίγραμμα έχει επίσης μια μέθοδο αντιγραφής CopyRect:

CopyRect(Dest: TRect; Καμβάς: TCanvas; Πηγή: TRect);

Η μέθοδος αντιγράφει την καθορισμένη παράμετρο Πηγήπεριοχή εικόνας στον καμβά πηγής εικόνας Καμβάςστην καθορισμένη παράμετρο Destπεριοχή αυτού του καμβά. Τύπος TRect, που χαρακτηρίζει ορθογώνιες περιοχές ΠηγήΚαι Dest, που ήδη περιγράφηκε στην ενότητα 3.2 .

Για παράδειγμα, ο χειριστής

CopyRect(MyRect2, Bitmap. Canvas, MyRect1);

αντίγραφα στο περίγραμμα της φόρμας στην περιοχή MyRect2εικόνα από την περιοχή MyRect1συστατικό καμβά Bitmap.

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

Θα περιοριστούμε σε αυτές τις βασικές πληροφορίες σχετικά με την εμφάνιση γραφικών πληροφοριών στον καμβά. Στην ενότητα 3.2 δόθηκαν πληροφορίες σχετικά με την παραγωγή του κειμένου στο περίγραμμα. Γενικά, ο καμβάς είναι ένα σύνθετο αντικείμενο που έχει πολλές περισσότερες ιδιότητες και μεθόδους. Αλλά αυτό απαιτεί μια εκτεταμένη συζήτηση πέρα ​​από το πεδίο αυτού του βιβλίου. Το επόμενο βιβλίο της σειράς Όλα για τους Δελφούς θα διερευνήσει αυτά τα ζητήματα με περισσότερες λεπτομέρειες.

Ένα στοιχείο παραθύρου που έχει την ιδιότητα Καμβάς- καμβάς.

Στοιχεία εικόνας και PaintBox

Συστατικά ΕικόναΚαι PaintBoxαντιπροσωπεύουν κάποια περιορισμένη επιφάνεια με έναν καμβά στον οποίο μπορούν να γραφτούν εικόνες, όπως περιγράφεται στην ενότητα 4.2 . Στην περίπτωση αυτή, το συστατικό PaintBox, αυστηρά μιλώντας, δεν παρέχει κάτι νέο σε σύγκριση με τη σχεδίαση μιας φόρμας σε καμβά. Αντλωντας απο PaintBoxαντί για φόρμα, δεν έχει κανένα πλεονέκτημα, εκτός ίσως από κάποια ανακούφιση στη διάταξη ενός ή περισσότερων σχεδίων στην περιοχή του παραθύρου.

Εκτός όμως από αυτές τις δυνατότητες, το εξάρτημα ΕικόναΥπάρχουν ιδιότητες που σας επιτρέπουν να εργαστείτε διάφοροι τύποιαρχεία γραφικών Υποστηρίζει τρεις τύπους αρχείων - πίνακες bit, εικονίδια και μετα-αρχεία. Και οι τρεις τύποι αρχείων αποθηκεύουν εικόνες. η διαφορά έγκειται μόνο στον τρόπο που αποθηκεύονται μέσα στα αρχεία και στα μέσα πρόσβασης σε αυτά. Matrix bit (αρχείο με επέκταση . bmp) εμφανίζει το χρώμα κάθε pixel στην εικόνα. Σε αυτήν την περίπτωση, οι πληροφορίες αποθηκεύονται με τέτοιο τρόπο ώστε οποιοσδήποτε υπολογιστής να μπορεί να εμφανίσει μια εικόνα με ανάλυση και αριθμό χρωμάτων που αντιστοιχούν στη διαμόρφωσή του.

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

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

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

Εικ.4.3Παράθυρο επεξεργασίας εικόνας


Για να εξοικειωθείτε με αυτήν την ιδιότητα, ανοίξτε μια νέα εφαρμογή και σύρετε ένα στοιχείο στη φόρμα Εικόνα. Τεντώστε το ή ορίστε την ιδιότητά του Ευθυγραμμίζωίσος alClientέτσι ώστε να καταλαμβάνει ολόκληρη την περιοχή πελάτη της φόρμας. Κάντε κλικ στο κουμπί με την έλλειψη δίπλα στο ακίνητο Εικόναστο παράθυρο του Object Inspector ή απλά κάντε διπλό κλικ Εικόνα. Το παράθυρο Picture Editor θα ανοίξει μπροστά σας (Εικ. 4.3), επιτρέποντάς σας να φορτώσετε στην ιδιοκτησία Εικόνακάποιο αρχείο γραφικών (κουμπί φόρτωσης) και επίσης αποθήκευση άνοιγμα αρχείουμε νέο όνομα ή σε νέο κατάλογο. Κάντε κλικ στο Load για να φορτώσετε το αρχείο γραφικών. Θα δείτε ένα παράθυρο για το άνοιγμα ενός αρχείου γραφικών, όπως φαίνεται στην Εικ. 4.4 Καθώς μετακινείτε τον κέρσορα στη λίστα των αρχείων γραφικών, οι εικόνες που περιέχουν εμφανίζονται στο δεξιό παράθυρο και πάνω από αυτές υπάρχουν αριθμοί που χαρακτηρίζουν το μέγεθος της εικόνας . Μπορείτε να επιλέξετε οποιοδήποτε είδος αρχείου γραφικών θέλετε. Να σας υπενθυμίσουμε ότι μπορείτε να βρείτε τα αρχεία γραφικών που παρέχονται με το Delphi στον κατάλογο Εικόνες. Στους Δελφούς 5 και 4 συνήθως βρίσκεται σε έναν κατάλογο. \program files\Common Files\Borland Shared. Στους Δελφούς 3 βρίσκεται σε έναν κατάλογο. \program files\Borland\Delphi 3 και στους Delphi 1 - στον κατάλογο Delphi 16. Μόλις φορτωθεί το αρχείο, κάντε κλικ στο OK στο παράθυρο του Picture Editor και στο στοιχείο σας ΕικόναΘα εμφανιστεί η εικόνα που επιλέξατε. Μπορείτε να ξεκινήσετε την εφαρμογή σας και να τη θαυμάσετε. Ωστόσο, βλέπετε ήδη την εικόνα χωρίς καν να εκτελέσετε την εφαρμογή.

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

Ας επιστρέψουμε στην εξέταση των ιδιοτήτων του στοιχείου Εικόνα.

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

Ένα άλλο ακίνητο - Τέντωμασας επιτρέπει να προσαρμόσετε όχι το στοιχείο στο μέγεθος της εικόνας, αλλά την εικόνα στο μέγεθος του στοιχείου. Εγκαθιστώ Αυτόματο Μέγεθος V ψευδής, τεντώστε ή συρρικνώστε το μέγεθος του εξαρτήματος Εικόνακαι εγκαταστήστε Τέντωμα V αληθής. Θα δείτε ότι το σχέδιο θα καταλαμβάνει ολόκληρη την περιοχή του στοιχείου, αλλά επειδή είναι απίθανο να προσδιορίσει ρεαλιστικά τις διαστάσεις Εικόναακριβώς ανάλογα με το μέγεθος της εικόνας, η εικόνα θα παραμορφωθεί. Εγκαθιστώ Τέντωμα V αληθήςμπορεί να έχει νόημα μόνο για ορισμένα μοτίβα, αλλά όχι για εικόνες. Ιδιοκτησία Τέντωμαδεν επηρεάζει τις εικόνες εικονιδίων που δεν μπορούν να αλλάξουν μέγεθος.

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

Ας εξετάσουμε ένα ακόμη ακίνητο - Διαφανής(διαφάνεια). Αν Διαφανήςισοδυναμεί αληθής, μετά η εικόνα Εικόναγίνεται διαφανής. Αυτό μπορεί να χρησιμοποιηθεί για την επικάλυψη εικόνων η μία πάνω στην άλλη. Τοποθετήστε το δεύτερο συστατικό στη φόρμα Εικόνακαι φορτώστε μια άλλη εικόνα σε αυτό. Απλώς προσπαθήστε να τραβήξετε μια αραιά γεμάτη, περίγραμμα εικόνα. Μπορείτε, για παράδειγμα, να τραβήξετε μια φωτογραφία ανάμεσα σε αυτές που συνήθως τοποθετούνται στα κουμπιά, για παράδειγμα, ένα βέλος (αρχείο.\αρχεία προγράμματος\κοινά αρχεία\borland shared\images\buttons\arrow1l. bmp). Μετακινήστε το δικό σας Εικόναέτσι ώστε να επικαλύπτονται μεταξύ τους και στο επάνω σετ εξαρτημάτων Διαφανήςίσος αληθής. Θα δείτε ότι η επάνω εικόνα δεν κρύβει πλέον την κάτω. Μία από τις πιθανές χρήσεις αυτής της ιδιότητας είναι η επικάλυψη σε μια εικόνα επιγραφών που γίνονται με τη μορφή μήτρας bit. Αυτές οι επιγραφές μπορούν να γίνουν χρησιμοποιώντας το πρόγραμμα Image Editor που είναι ενσωματωμένο στο Delphi.

Παρακαλείστε να σημειώσετε ότι το κατάλυμα Διαφανήςεπηρεάζει μόνο πίνακες bit. Σε αυτήν την περίπτωση, το χρώμα του κάτω αριστερού εικονοστοιχείου της μήτρας bit γίνεται διαφανές από προεπιλογή (δηλαδή, αντικαθίσταται από το χρώμα της εικόνας που βρίσκεται κάτω από αυτό).

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

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

Ενα αντικείμενο Εικόνακαι τις ιδιότητες του Bitmap, Εικόνισμα, ΜετααρχείοΚαι Γραφικόςέχουν μεθόδους ανάγνωσης και εγγραφής αρχείων LoadFromFileΚαι SaveToFile:

διαδικασία LoadFromFile( συνθΟνομα αρχείου: σειρά);

διαδικασία SaveToFile( συνθΟνομα αρχείου: σειρά);

Για ακίνητα Εικόνα. Bitmap, Εικόνα. ΕικόνισμαΚαι Εικόνα. ΜετααρχείοΗ μορφή αρχείου πρέπει να αντιστοιχεί στην κλάση αντικειμένου: bit matrix, icon, metafile. Κατά την ανάγνωση ενός αρχείου στο ακίνητο Εικόνα. Γραφικόςτο αρχείο πρέπει να είναι σε μορφή μετα-αρχείου. Και για το ίδιο το αντικείμενο ΕικόναΟι μέθοδοι ανάγνωσης και εγγραφής προσαρμόζονται αυτόματα στον τύπο του αρχείου. Ας το εξηγήσουμε αυτό με ένα παράδειγμα.

Ας δημιουργήσουμε μια εφαρμογή παρόμοια με το παράδειγμα της προβολής αρχείων γραφικών που συζητήθηκε στην ενότητα 4.2. Για ποικιλία, μπορείτε να το ελέγξετε χρησιμοποιώντας κάτι διαφορετικό από ένα κουμπί Κουμπίκαι το μενού. Τοποθετήστε ένα εξάρτημα στη φόρμα Εικόνα. Τεντώστε το ή ορίστε την ιδιότητά του Ευθυγραμμίζωίσος alClientέτσι ώστε να καταλαμβάνει ολόκληρη την περιοχή πελάτη της φόρμας. Σύρετε το στοιχείο διαλόγου ανοίγματος αρχείου γραφικών στη φόρμα OpenPictureDialog(βλ. ενότητα 8.2 ). Τοποθετήστε επίσης ένα στοιχείο του κύριου μενού στη φόρμα Κυρίως μενού(βλ. ενότητα 6.1 ) και ορίστε μια ενότητα σε αυτό - Αρχείο. Στο πρόγραμμα χειρισμού αυτής της ενότητας, γράψτε τη δήλωση

(OpenPictureDialog1.Execute) έπειτα. Εικόνα. LoadFromFile(.FileName);

Αυτός ο χειριστής θα καλέσει ένα παράθυρο διαλόγου για το άνοιγμα ενός αρχείου γραφικών (βλ. Εικ. 4.4) και θα το φορτώσει στο στοιχείο Εικόνα 1εικόνα από ένα αρχείο που έχει επιλέξει ο χρήστης (βλ. Εικ. 4.5). Επιπλέον, το αρχείο μπορεί να είναι οποιουδήποτε τύπου: bit matrix, εικονίδιο ή μετααρχείο.

Εικ.4.5Εικόνα σε συνιστώσα Εικόναμήτρα bit (α) και εικονόγραμμα (6)



Σε αυτή την εφαρμογή η μέθοδος LoadFromFileεφαρμόζεται σε Εικόνα 1. Εικόνα. Εάν ανοίγουν μόνο αρχεία μήτρας bit, τότε ο τελεστής φόρτωσης αρχείων μπορεί να αντικατασταθεί με

Εικόνα. Bitmap LoadFromFile(.FileName);

Για εικονογράμματα, θα μπορούσε να χρησιμοποιηθεί ένας τελεστής. Εικόνα. Εικόνισμα. LoadFromFile(.FileName);

και για τα metafiles - ο χειριστής. Εικόνα. Μετααρχείο. LoadFromFile(.FileName);

ή. Εικόνα. Γραφικός. LoadFromFile(.FileName);

Αλλά σε όλες αυτές τις περιπτώσεις, εάν η μορφή αρχείου δεν ταιριάζει με την προβλεπόμενη, θα προκύψει σφάλμα. Η μέθοδος λειτουργεί παρόμοια SaveToFileμε τη διαφορά που ίσχυε για Εικόναή να Εικόνα. Γραφικόςαποθηκεύει μια εικόνα οποιασδήποτε μορφής σε ένα αρχείο. Για παράδειγμα, εάν επεκτείνετε την εφαρμογή σας με ένα παράθυρο διαλόγου SavePictureDialog(βλ. ενότητα 8.2 ), εισάγετε την ενότητα Αποθήκευση ως στο μενού και τοποθετήστε τον χειριστή στον χειριστή του

SavePictureDialog1. Εκτέλεση έπειτα. Εικόνα. SaveToFile(SavePictureDialog1. Όνομα αρχείου);

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

Το πρόγραμμα θα λειτουργήσει απολύτως πανομοιότυπα για εικόνες οποιασδήποτε μορφής εάν αντικαταστήσετε τον τελεστή αποθήκευσης με

Εικόνα. Γραφικός. SaveToFile(.FileName);

χρησιμοποιώντας ιδιοκτησία Εικόνα. Γραφικός. Και αν γνωρίζετε τη μορφή του τι είναι αποθηκευμένο στο στοιχείο Εικόναεικόνες, τότε μπορείτε να εφαρμόσετε τη μέθοδο SaveToFileσε ακίνητα Εικόνα. Bitmap, Εικόνα. ΕικόνισμαΚαι Εικόνα. Μετααρχείο.

Για όλα τα θεωρούμενα αντικείμενα Εικόνα, Εικόνα. Bitmap, Εικόνα. ΕικόνισμαΚαι Εικόνα. ΜετααρχείοΟι μέθοδοι για την εκχώρηση τιμών αντικειμένων ορίζονται:

Assign(Πηγή: TPersistent);

Ωστόσο, για BitMap, ΕικόνισμαΚαι ΜετααρχείοΜπορείτε να εκχωρήσετε μόνο τιμές ομοιογενών αντικειμένων: αντίστοιχα, πίνακες bit, εικονίδια, μετααρχεία. Μια εξαίρεση γίνεται όταν προσπαθείτε να εκχωρήσετε τιμές σε ετερογενή αντικείμενα EConvertError. Ενα αντικείμενο Εικόνα- καθολική, μπορεί να του αποδοθούν οι τιμές των αντικειμένων οποιασδήποτε από τις άλλες τρεις κατηγορίες. Και το νόημα Εικόναμπορεί να εκχωρηθεί μόνο σε ένα αντικείμενο του οποίου ο τύπος ταιριάζει με τον τύπο του αντικειμένου που είναι αποθηκευμένο σε αυτό.

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

Εκχώρηση (Εικόνα1.Εικόνα);

θα αποθηκεύσει την εικόνα που είναι αποθηκευμένη στο πρόχειρο στο πρόχειρο Εικόνα 1. Παρόμοιος χειριστής

Εφαρμογή εικόνας γραφικών delphi

Εικόνα 1. Εικόνα. Εκχώρηση (Πρόχειρο);

διαβάστε μέσα Εικόνα 1μια εικόνα στο πρόχειρο. Επιπλέον, μπορεί να είναι οποιαδήποτε εικόνα και ακόμη και κείμενο.

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

Επιστροφή στις ιδιότητες του στοιχείου Εικόνα, μπορούμε να σημειώσουμε ένα εγγενές μειονέκτημα της δοκιμαστικής μας εφαρμογής, που φαίνεται στο Σχ. 4.5 Κατά τη φόρτωση διαφορετικών εικόνων, το μέγεθος του παραθύρου της εφαρμογής μπορεί να είναι είτε πολύ μικρό και, στη συνέχεια, θα δείτε μόνο μέρος της εικόνας ή πολύ μεγάλο, και τότε η εικόνα θα τοποθετηθεί μη ελκυστικά στην επάνω αριστερή γωνία της φόρμας, αφήνοντας πολύ κενό χώρο. Αυτό το μειονέκτημα μπορεί να εξαλειφθεί χρησιμοποιώντας τις ιδιότητες Υψος(ύψος) και Πλάτος(πλάτος) συστατικό Εικόνα. Με περιουσία Αυτόματο Μέγεθοςεγκατεστημένος σε αληθήςδιαστάσεις Εικόναρυθμίζονται αυτόματα στο ίδιο μέγεθος με τη μεταφορτωμένη εικόνα. Και αυτές οι διαστάσεις μπορούν να χρησιμοποιηθούν για να αλλάξετε το μέγεθος της φόρμας ανάλογα. Για παράδειγμα, ο προηγούμενος κώδικας για τη φόρτωση μιας εικόνας από ένα αρχείο μπορεί να αντικατασταθεί με τον ακόλουθο:

OpenPictureDialog1. Εκτέλεση έπειτα

αρχίζουν. Εικόνα. LoadFromFile(.FileName); Ύψος πελάτη: = Εικόνα1. Ύψος+10;. Κορυφή:=Φόρμα1. ClientRect. Μπλουζα

+ (Form1. ClientHeight - Image1. Height) div 2;. ClientWidth:=Εικόνα1. Πλάτος+10;. Αριστερά: = Φόρμα1. ClientRect. Αριστερά

+ (Form1. ClientWidth - Image1. Width) div 2;

τέλος;

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

Στοιχείο σχήματος

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

Παραδείγματα αυτών των μορφών φαίνονται στο Σχ. 4.7

Εικ.4.7Παραδείγματα εξαρτημάτων Σχήμα


Μια άλλη βασική ιδιότητα του εξαρτήματος είναι Βούρτσα(βούρτσα). Αυτή η ιδιότητα είναι αντικείμενο τύπου TBrush, το οποίο έχει έναν αριθμό υποιδιοτήτων, ιδίως: χρώμα ( Βούρτσα. Χρώμα) και στυλ ( Βούρτσα. Στυλ) συμπληρώστε το σχήμα. Γέμισμα σε κάποιες τιμές Στυλμπορείτε να δείτε στο Σχ. 4.7 Η τρίτη από τις συγκεκριμένες ιδιότητες του στοιχείου Σχήμα - Στυλό(στυλό) που καθορίζει το στυλ γραμμής. Αυτή η ιδιοκτησία είναι σαν ιδιοκτησία Βούρτσα, έχουν ήδη συζητηθεί στην ενότητα 4.2 . Μπορείτε να βρείτε δεδομένα αναφοράς για αυτές τις ιδιότητες στο Κεφάλαιο 10*.

Στοιχείο γραφήματος

Τώρα ας δούμε το στοιχείο Διάγραμμα. Αυτό το στοιχείο σας επιτρέπει να δημιουργήσετε διάφορα γραφήματα και γραφήματα που φαίνονται πολύ εντυπωσιακά (Εικ. 4.8). Συστατικό Διάγραμμαέχει πολλές ιδιότητες, μεθόδους, γεγονότα, έτσι ώστε αν τα θεωρούσαμε όλα, θα έπρεπε να αφιερώσουμε ένα ολόκληρο κεφάλαιο σε αυτό. Ως εκ τούτου, θα περιοριστούμε να εξετάσουμε μόνο τα κύρια χαρακτηριστικά Διάγραμμα. Μπορείτε να βρείτε τα υπόλοιπα στην ενσωματωμένη βοήθεια του Delphi ή απλώς να τα δοκιμάσετε πειραματιζόμενοι με τα διαγράμματα.

Συστατικό Διάγραμμαείναι ένα δοχείο με αντικείμενα Σειράτύπος TChartSeries- σειρά δεδομένων που χαρακτηρίζονται από διαφορετικά στυλ εμφάνισης. Κάθε στοιχείο μπορεί να περιλαμβάνει πολλές σειρές. Εάν θέλετε να εμφανίσετε ένα γράφημα, τότε κάθε σειρά θα αντιστοιχεί σε μία καμπύλη στο γράφημα. Εάν θέλετε να εμφανίσετε γραφήματα, για ορισμένους τύπους γραφημάτων μπορείτε να επικαλύψετε πολλές διαφορετικές σειρές η μία πάνω στην άλλη, για άλλους (όπως γραφήματα πίτας) πιθανότατα θα φαίνεται άσχημο. Ωστόσο, και σε αυτήν την περίπτωση μπορείτε να ορίσετε ένα στοιχείο Διάγραμμαπολλές σειρές των ίδιων δεδομένων με διαφορετικούς τύπους γραφημάτων. Στη συνέχεια, ενεργοποιώντας ένα από αυτά κάθε φορά, μπορείτε να παρέχετε στον χρήστη την επιλογή του τύπου του γραφήματος που εμφανίζει τα δεδομένα που τον ενδιαφέρουν.

Τοποθετήστε ένα ή δύο (αν θέλετε να αναπαραγάγετε το Σχ. 4.8) εξαρτήματα Διάγραμμαστη φόρμα και δείτε τις ιδιότητες που ανοίγουν στο Object Inspector. Ακολουθούν μερικές εξηγήσεις μερικών από αυτές.

Καθορίζει εάν ο χρήστης μπορεί να πραγματοποιήσει κύλιση στο παρατηρούμενο τμήμα του γραφήματος κατά την εκτέλεση κάνοντας κλικ στο δεξί κουμπί του ποντικιού. Πιθανές τιμές: pm Καμία - η κύλιση απαγορεύεται, pmΟριζόντια, pmΚάθετη ή pmΚαι τα δύο - η κύλιση επιτρέπεται, αντίστοιχα, μόνο στην οριζόντια κατεύθυνση, μόνο στην κατακόρυφη κατεύθυνση ή και στις δύο κατευθύνσεις.

Επιτρέπει στο χρήστη να αλλάξει την κλίμακα της εικόνας κατά την εκτέλεση, κόβοντας τμήματα ενός γραφήματος ή γραφήματος με τον κέρσορα του ποντικιού (Εικ. 4.8 β παρακάτω δείχνει τη στιγμή προβολής ενός τμήματος του γραφήματος, που παρουσιάζεται εξ ολοκλήρου στο Σχ. 4.8 α).

Καθορίζει τον τίτλο του γραφήματος.

Καθορίζει την ετικέτα για το γράφημα. Κανένα από προεπιλογή. Το κείμενο υπογραφής καθορίζεται από την υποιδιότητα Κείμενο.

Ορίζει ένα περίγραμμα γύρω από το διάγραμμα.

Το υπόμνημα του διαγράμματος είναι μια λίστα συμβόλων.

MarginLeft, MarginRight, MarginTop, MarginBottom

Τιμές περιθωρίου αριστερά, δεξιά, πάνω και κάτω.

BottomAxis, LeftAxis, RightAxis

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

LeftWall, BottomWall, BackWall

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

Λίστα με τις σειρές δεδομένων που εμφανίζονται στο στοιχείο.

Ενεργοποιεί ή απενεργοποιεί την προβολή γραφήματος 3D.

Χαρακτηριστικά της τρισδιάστατης απεικόνισης.

Τρισδιάστατη κλίμακα (για την Εικ. 4.8 αυτό είναι το πάχος του διαγράμματος και το πλάτος των λωρίδων γραφήματος).


Δίπλα σε πολλές από τις αναφερόμενες ιδιότητες στο Object Inspector υπάρχουν κουμπιά με ελλείψεις που σας επιτρέπουν να καλέσετε τη μία ή την άλλη σελίδα του Επεξεργαστή γραφημάτων - ένα παράθυρο πολλών σελίδων που σας επιτρέπει να ορίσετε όλες τις ιδιότητες των γραφημάτων. Ο Επεξεργαστής Διαγράμματος μπορεί επίσης να κληθεί κάνοντας διπλό κλικ στο στοιχείο Διάγραμμαή κάνοντας δεξί κλικ πάνω του και επιλέγοντας την εντολή Edit Chart από το αναδυόμενο μενού.

Εάν θέλετε να προσπαθήσετε να αναπαράγετε την εφαρμογή που φαίνεται στην Εικόνα 4.8, κάντε διπλό κλικ στο επάνω στοιχείο Διάγραμμα. Θα μεταφερθείτε στο παράθυρο Chart Editor (Εικ. 4.9) στη σελίδα Chart, η οποία έχει πολλές καρτέλες. Πρώτα απ 'όλα, θα σας ενδιαφέρει η καρτέλα Σειρά σε αυτό. Κάντε κλικ στο κουμπί Προσθήκη - προσθέστε μια σειρά. Θα μεταφερθείτε σε ένα παράθυρο (Εικ. 4.10), στο οποίο μπορείτε να επιλέξετε τον τύπο γραφήματος ή γραφήματος. Σε αυτήν την περίπτωση, επιλέξτε Pie - ένα γράφημα πίτας. Χρησιμοποιώντας την καρτέλα Τίτλοι, μπορείτε να ορίσετε τον τίτλο του γραφήματος, η καρτέλα Υπόμνημα σάς επιτρέπει να ορίσετε παραμέτρους για την εμφάνιση του υπομνήματος του γραφήματος (λίστα συμβόλων) ή να το αφαιρέσετε εντελώς από την οθόνη, η καρτέλα Πίνακας καθορίζει την εμφάνιση του πίνακα στο όπου εμφανίζεται το γράφημα, η καρτέλα 3D σάς δίνει την ευκαιρία να αλλάξετε την εμφάνιση του γραφήματος σας: κλίση, μετατόπιση, πάχος κ.λπ.

Όταν εργάζεστε στο πρόγραμμα επεξεργασίας γραφημάτων και έχετε επιλέξει έναν τύπο γραφήματος, τα στοιχεία ΔιάγραμμαΗ φόρμα σας εμφανίζει την εμφάνισή της με τα δεδομένα υπό όρους που εισάγονται σε αυτήν (βλ. Εικ. 4.11).

Εικ.4.10Επιλογή τύπου γραφήματος στο πρόγραμμα επεξεργασίας γραφημάτων


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

Η σελίδα Σειρά, η οποία έχει επίσης πολλές καρτέλες, σας δίνει τη δυνατότητα να επιλέξετε πρόσθετες επιλογές εμφάνισης για τη σειρά. Ειδικότερα, για ένα γράφημα πίτας στην καρτέλα Μορφή είναι χρήσιμο να ενεργοποιήσετε την επιλογή Κυκλωμένη πίτα, η οποία θα διασφαλίσει ότι, σε οποιοδήποτε μέγεθος του στοιχείου, Διάγραμμαεμφανίστε το γράφημα σε μορφή κύκλου. Στην καρτέλα Σημάδια, τα κουμπιά της ομάδας Στυλ καθορίζουν τι θα γραφτεί στις ετικέτες που σχετίζονται με μεμονωμένα τμήματα του γραφήματος: Τιμή - τιμή, Ποσοστό - ποσοστά, Ετικέτα - ονόματα δεδομένων κ.λπ. Στο παράδειγμα στην Εικόνα 4.8, το κουμπί Ποσοστό είναι ενεργοποιημένο και στην καρτέλα Γενικά, έχει οριστεί ένα πρότυπο ποσοστού για να διασφαλιστεί ότι εμφανίζονται μόνο ακέραιες τιμές.

Μπορείτε, αν θέλετε, να προσθέσετε σε αυτό το στοιχείο Διάγραμμαάλλη πανομοιότυπη σειρά κάνοντας κλικ στο κουμπί Κλωνοποίηση στην καρτέλα Σειρά της σελίδας Γράφημα και, στη συνέχεια, για αυτήν τη νέα σειρά κάνοντας κλικ στο κουμπί Αλλαγή και επιλέγοντας έναν διαφορετικό τύπο γραφήματος, για παράδειγμα, Μπάρα. Φυσικά δύο ΔΙΑΦΟΡΕΤΙΚΟΙ ΤΥΠΟΙτα διαγράμματα σε μία εικόνα θα φαίνονται άσχημα. Αλλά μπορείτε να απενεργοποιήσετε την ένδειξη για αυτήν τη νέα σειρά στην καρτέλα Σειρά και, στη συνέχεια, να αφήσετε τον χρήστη να επιλέξει έναν ή άλλο τύπο εμφάνισης γραφήματος (θα δείξουμε πώς γίνεται αυτό παρακάτω).

Βγείτε από το πρόγραμμα επεξεργασίας διαγραμμάτων, επιλέξτε το κάτω στοιχείο στην εφαρμογή σας Διάγραμμακαι επαναλάβετε τις ιδιότητες ρύθμισης για αυτό χρησιμοποιώντας τον Επεξεργαστή Διαγράμματος. Σε αυτήν την περίπτωση, θα χρειαστεί να καθορίσετε δύο σειρές εάν θέλετε να εμφανίσετε δύο καμπύλες στο γράφημα και να επιλέξετε τον τύπο γραμμικού γραφήματος. Επειδή μιλάμε για γραφήματα, μπορείτε να χρησιμοποιήσετε τις καρτέλες Άξονας και Τείχη για να καθορίσετε τα χαρακτηριστικά συντεταγμένων των αξόνων και τις τρισδιάστατες ακμές του γραφήματος.

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

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

Μέθοδος Σαφήδιαγράφει μια σειρά δεδομένων που έχουν εισαχθεί προηγουμένως.

Μέθοδος Προσθήκη:

(Const AValue: Double; Const ALabel: String;: TColor)

σας επιτρέπει να προσθέσετε ένα νέο σημείο στο διάγραμμα. Παράμετρος Μια αξίααντιστοιχεί στην προστιθέμενη αξία, παράμετρος Μία ετικέτα- το όνομα που θα εμφανίζεται στο διάγραμμα και στο υπόμνημα, AColor- χρώμα. Παράμετρος Μία ετικέτα- προαιρετικό, μπορεί να οριστεί κενό: "".

Μέθοδος AddXY:(Const AXValue, AYValue: Double; ALabel: String; AColor: TColor)

σας επιτρέπει να προσθέσετε ένα νέο σημείο στο γράφημα συνάρτησης. Επιλογές AXValueΚαι AYValueαντιστοιχούν σε όρισμα και συνάρτηση. Επιλογές Μία ετικέταΚαι AColorτο ίδιο όπως στη μέθοδο Προσθήκη.

Έτσι, η διαδικασία για τη φόρτωση δεδομένων στο παράδειγμά μας θα μπορούσε να μοιάζει με:

155;=251;=203;=404;

var: λέξη;

αρχίζουνΣειρά 1 κάνω

αρχίζουν;(A1, "Workshop 1", clYellow);(A2, "Workshop 2", clBlue);(A3, "Workshop 3", clRed);(A4, "Workshop 4", clPurple);

τέλος;. Σαφή;. Σαφή;

Για i: =0 προς την 100 κάνω

αρχίζουν. AddXY (0,02*Pi*i, sin (0,02*Pi*i), "", clRed);. AddXY (0.02*Pi*i, cos (0.02*Pi*i), "", clBlue);

Εάν, για παράδειγμα, έχετε δώσει τα δεδομένα που εμφανίζονται σε ένα γράφημα, δύο σειρές Σειρά 1Και Σειρά 4ΔΙΑΦΟΡΕΤΙΚΟΙ ΤΥΠΟΙ - ΠίταΚαι Μπαρ, τότε μπορείτε να εισαγάγετε μια διαδικασία που αλλάζει τον τύπο του διαγράμματος σύμφωνα με το αίτημα του χρήστη. Αυτή η διαδικασία μπορεί να εισαχθεί σε ένα συμβάν Στο κλικκάποιο κουμπί, μια εντολή μενού ή, για παράδειγμα, απλώς επεξεργασία ενός κλικ σε ένα στοιχείο Διάγραμμα. Για να φορτώσετε δεδομένα σε Σειρά 4και κάνετε αυτό το διάγραμμα αόρατο την πρώτη στιγμή, μπορείτε να εισαγάγετε τους τελεστές στο τέλος της προηγούμενης διαδικασίας

Εκχώρηση (Σειρά 1); Ενεργό: =false;

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

Ενεργός: = δενΣειρά 1. Ενεργός;. Ενεργός: = δενΣειρά 4. Ενεργός;

Στο Σχ. 4.8 β μπορείτε να δείτε το αποτέλεσμα της αλλαγής του χρήστη σε άλλη προβολή διαγράμματος.

"Εμφάνιση γραφικών πληροφοριών στους Δελφούς"
Σχέδιο θέματος:
1. Γραφικές μέθοδοι εξόδου
πληροφορίες στους Δελφούς.
2. Εμφάνιση εικόνων.
3. Γεωμετρική απεικόνιση
φιγούρες.

1. Μέθοδοι για την εμφάνιση γραφικών πληροφοριών.
Υπάρχουν διάφοροι τρόποι στους Δελφούς
έξοδος γραφικών πληροφοριών:
Έξοδος προπαρασκευασμένων
εικόνες (Στοιχεία εικόνας,
Σχήμα);
Κατασκευή γραφημάτων και διαγραμμάτων
(Στοιχείο γραφήματος, κ.λπ.);
Απεικόνιση
προγραμματικά (αντικείμενο
Καμβάς).

2. Εμφάνιση εικόνων.
Εμφάνιση εικόνων με χρήση
Εξετάσαμε το στοιχείο Image in
ένα από τα προηγούμενα θέματα.
Εδώ θα δούμε ένα παράδειγμα
υλοποίηση απλών κινούμενων εικόνων
με περιοδική αλλαγή
εμφανιζόμενη εικόνα σε
Στοιχεία εικόνας.
Πηγαίνετε στο παράδειγμα.


Εμφάνιση πρωτοζώων
γεωμετρικά σχήματα στη φόρμα
παρέχει το στοιχείο Shape.

3. Εμφάνιση γεωμετρικών σχημάτων.
Βασικές ιδιότητες του στοιχείου Shape:
Βούρτσα
Στυλό
Σχήμα
Χρώμα (.Color) και στυλ (.Style) για
γεμίζοντας το σχήμα.
Χρώμα (.Color), στυλ (.Style), πλάτος
(.Width) και μέθοδος εξόδου (.Mode) των γραμμών
φιγούρες.
Τύπος γεωμετρικού σχήματος.

3. Εμφάνιση γεωμετρικών σχημάτων.
Από πολλά στοιχεία Shape
Μπορείτε να δημιουργήσετε απλά σχέδια.
Προγραμματικά αλλαγή θέσης
(.Αριστερά, .Επάνω) μέγεθος (.Πλάτος, .Ύψος) και
χρώμα (Brush.Color) των στοιχείων Shape
στο σχέδιο είναι δυνατή η υλοποίηση
στοιχεία απλού animation.
Εξετάστε ένα παράδειγμα.

4. Κατασκευή γραφημάτων και διαγραμμάτων.
Τα διαγράμματα είναι για
περισσότερη οπτική αναπαράσταση
πίνακες αριθμητικών δεδομένων, τους
οπτική απεικόνιση και ανάλυση.
Παράδειγμα.
Για να δημιουργήσετε διαγράμματα στους Δελφούς
υπάρχουν διάφορα συστατικά
ένα από αυτά είναι το στοιχείο Chart (ενότητα
TeeChart Std).

4. Κατασκευή γραφημάτων και διαγραμμάτων.
Προβολή του στοιχείου του γραφήματος μετά από αυτό
Ρυθμίσεις στη φόρμα:

4. Κατασκευή γραφημάτων και διαγραμμάτων.
Εκτός από τον Επιθεωρητή Αντικειμένων, πρόσβαση σε
ιδιότητες του στοιχείου του γραφήματος μπορεί να είναι
λάβετε ανοίγοντας ένα ειδικό παράθυρο
παράθυρο διαλόγου (δεξί κουμπί στο στοιχείο \
Επεξεργασία γραφήματος...)
Προσθήκη
σειρές δεδομένων
Αλλαγή τύπου
διαγράμματα

4. Κατασκευή γραφημάτων και διαγραμμάτων.
Επιλογή τύπου γραφήματος:

4. Κατασκευή γραφημάτων και διαγραμμάτων.
Ρύθμιση ιδιοτήτων για άξονες συντεταγμένων
(Αξονας):

4. Κατασκευή γραφημάτων και διαγραμμάτων.
Τα δεδομένα εμφάνισης είναι συνήθως
μεταφέρθηκε στο γράφημα μέσω προγραμματισμού,
παράδειγμα:
Series1.Clear; (καθαρή σειρά)
για i:=1 έως N κάνω
Series1.addxy(i, A[i], '', clGreen);
Τιμή από
Άξονας Χ
Τιμή από
Άξονας Υ
Υπογραφή
Άξονας Χ
Χρώμα δεδομένων
στο διάγραμμα
Εξετάστε ένα παράδειγμα κατασκευής
γράφημα της συνάρτησης y = Sin(x)

Περαιτέρω:
Εργαστηριακές εργασίες № 13.1.
"Εμφάνιση εικόνων και γεωμετρικών
φιγούρες, τα κινούμενα σχέδια τους».
Ασκηση:
1) Αναπτύξτε μια εφαρμογή για εφαρμογή
απλούστερο animation από περιοδικό
αλλάζει την εικόνα που εμφανίζεται
Στοιχεία εικόνας. (Ο αριθμός των εικόνων δεν είναι
λιγότερο από τρεις, επιλέξτε φωτογραφίες
μόνος του).

Ασκηση:
2) Σκεφτείτε και σχεδιάστε μια εικόνα από
Συστατικά σχήματος. Προγραμματικά
αλλαγή θέσης, μεγέθους ή χρώματος
Σχηματίστε εξαρτήματα σε ένα σχέδιο
εφαρμόστε τα στοιχεία του απλούστερου
κινουμένων σχεδίων.

Περαιτέρω:
Εργαστηριακή εργασία Νο. 13.2.
«Δημιουργία γραφημάτων και διαγραμμάτων».
Ασκηση:
1) Τροποποιήστε την εφαρμογή από
εργαστηριακή εργασία Νο. 9 (Προβολή
δεδομένα στον πίνακα). Προσθέστε μια ευκαιρία
εμφανίζει ορισμένα δεδομένα από έναν πίνακα
σε ιστόγραμμα ή γράφημα πίτας.
2) Κατασκευάστε μια γραφική παράσταση της δεδομένης συνάρτησης.


Μπλουζα