Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Οπτικός Προγραμματισμός  Κληρονομείται από την κλάση TCanvas. Επιτρέπει την σχεδίαση γραφι- κών στο Image Component. Επίσης υπάρχει στις φόρμες, σε compo-

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Οπτικός Προγραμματισμός  Κληρονομείται από την κλάση TCanvas. Επιτρέπει την σχεδίαση γραφι- κών στο Image Component. Επίσης υπάρχει στις φόρμες, σε compo-"— Μεταγράφημα παρουσίασης:

1 Οπτικός Προγραμματισμός  Κληρονομείται από την κλάση TCanvas. Επιτρέπει την σχεδίαση γραφι- κών στο Image Component. Επίσης υπάρχει στις φόρμες, σε compo- nents που αποτελούν visual containers (Panels, Toolbars, StatusBars, κ.λ.π.) στο TBitmap και στο TPrinter. Περιέχει μεγάλο αριθμό ρουτινών για σχεδίαση γραφικών (γραμμές, σχήματα, πολύγωνα, κείμενο με διάφορα fonts, αλλαγή χρωμάτων, είδους πένας, είδους βούρτσας κ.λ.π.) Ιδιότητες (Properties) :  Brush (TBrush*) : object που καθορίζει το χρώμα και το pattern ή bitmap που θα χρησιμοποιηθεί για γέμισμα περιοχών του Canvas.  CanvasOrientation (LeftToRight, RightToLeft) : καθορίζει την θέση του σημείου (0,0) πάνω/αριστερά ή πάνω/δεξιά καθώς και τη φορά του άξονα των χ.  ClipRect (TRect) : η περιοχή του Canvas που χρειάζεται επανασχεδί- αση. Τμήματα εκτός του ClipRect δεν επανασχεδιάζονται σε OnPaint ρουτίνες.  CopyMode(int) : καθορίζει τον τρόπο με τον οποίο θα αντιγραφεί μία νέα εικόνα πάνω στην παλιά (με τη μέθοδο CopyRect).

2 Οπτικός Προγραμματισμός  Παραδείγματα τιμών για το CopyMode : 1.cmSrcCopy : αντιγράφει κανονικά τη νέα εικόνα στο Canvas. 2.cmMergeCopy : συνδυάζει την νέα εικόνα με την παλιά με λογικό AND 3.cmNotSrcCopy : αντιγράφει στο Canvas την νέα εικόνα αντεστραμμένη.  Font (TFont*) : object που περιγράφει το font και τις ιδιότητές του (χρώμα, μέγεθος, εφφέ, κ.λ.π.) για τα γράμματα που θα εμφανιστούν στο Canvas (π.χ. με τη μέθοδο TextOut(x,y,String)).  Pen (TPen*) : object που καθορίζει τη μορφή της πένας (χρώμα, στύλ, πάχος, κ.λ.π.) για την σχεδίαση γραμμών και περιγραμμάτων αντικειμένων πάνω στο Canvas.  PenPos (TPoint) : επιστρέφει την τρέχουσα θέση της πένας.  Pixels[x][y] : πίνακας με περιεχόμενα τύπου TColor μέσω του οποίου μπορούμε να πάρουμε ή να θέσουμε το χρώμα κάθε pixel πάνω στο Canvas.  TextFlags (int) : καθορίζει τον τρόπο εμφάνισης του κειμένου πάνω στο Canvas. Π.χ. ΕΤΟ_OPAQUE, εμφανίζει κείμενο με συμπαγές back- ground και εικόνες πίσω από το πλαίσιο των γραμμάτων δεν φαίνονται

3 Οπτικός Προγραμματισμός  Arc(x1,y1,x2,y2,x3,y3,x4,y4) : ζωγραφίζει τόξο ενός κύκλου ή μίας έλλειψης. x1,y1 x2,y2 x3,y3 x4,y4  Chord(x1,y1,x2,y2,x3,y3,x4,y4) : ζωγραφίζει τόξο ενός κύκλου ή μίας έλλειψης που τα ακραία σημεία τους ενώνονται με ευθεία.  CopyRect(RectDest,CanvasSrc,RectSrc) : αντιγράφει στο τρέχον Canvas και στο πλαίσιο RectDest, το τμήμα εικόνας που βρίσκεται στο πλαίσιο RectSrc στο CanvasSrc (CopyMode).  Draw(X,Y,Graphic) : ζωγραφίζει την εικόνα που περιγράφεται από το Graphic στη θέση X,Y στο τρέχον Canvas.  Ellipse(x1,y1,x2,y2) ή Ellipse(TRect) : εμφανίζει έναν κύκλο ή μία έλλειψη εγγεγραμμένο στο σχετικό ορθογώνιο. Chord

4 Οπτικός Προγραμματισμός  FillRect(TRect) : γεμίζει το πλαίσιο με το τρέχον Brush.  FloodFill(x,y,Color,FillStyle) : γεμίζει μία περιοχή που περιέχει το σημείο x,y με το χρώμα που υποδεικνύουμε.  FrameRect(TRect) : σχεδιάζει ένα ορθογώνιο παραλληλόγραμμο πάχους 1 pixel (δεν υπακούει σε Pen, Brush).  MoveTo(x,y) : μετακινεί τον ιδεατό κέρσορα γραφικών στο x,y  LineTo(x,y) : σχεδιάζει μία γραμμή από την τρέχουσα θέση του κέρσορα και μέχρι το σημείο x,y.  Pie(x1,y1,x2,y2,x3,y3,x4,y4) : ζωγραφίζει τομέα κυκλικού δίσκου με παρόμοιο τρόπο όπως και η arc.  Polygon(TPoint*, arr_size) : σχεδιάζει ένα πολύγωνο οι κορυφές του οποίου δίνονται σε πίνακα ως παράμετροι.  Polyline(TPoint*, arr_size) : σχεδιάζει μία τεθλασμένη γραμμή τα σημεία της οποίας δίνονται σε πίνακα ως παράμετροι.  Rectangle(x1,y1,x2,y2) ή Rectangle(TRect) : σχεδιάζει ένα ορθογώνιο παραλληλόγραμμο με γραμμή καθορισμένη στο τρέχον Pen, και το γεμίζει με το τρέχον Brush.

5 Οπτικός Προγραμματισμός  RoundRect(x1,y1,x2,y2) : σχεδιάζει ένα ορθογώνιο παραλληλόγραμμο με γραμμή καθορισμένη στο τρέχον Pen, και το γεμίζει με το τρέχον Brush, με καμπυλωμένες γωνίες.  StretchDraw(TRect, TGraphic*) : εμφανίζει στο Canvas το Graphic αλλά μεταβάλλοντας τις διαστάσεις του σε TRect.  TextOut(x,y,AnsiString) : εμφανίζει στη θέση x,y το string με το τρέχον font, στύλ, μέγεθος κ.λ.π.  TextRect(Rect,x,y,AnsiString) : εμφανίζει το string στη θέση x,y αλλά περιορίζεται στο πλαίσιο Rect.  TextHeight(AnsiString) : επιστρέφει το ύψος των γραμμάτων με το τρέχον font, για ευθυγράμμιση άλλων αντικειμένων με το κείμενο.  TextWidth(AnsiString) : επιστρέφει το πλάτος του κειμένου με το τρέχον font, για ευθυγράμμιση άλλων αντικειμένων με το κείμενο. RoundRect :

6 Οπτικός Προγραμματισμός  Κατασκευή μίας MDI εφαρμογής που θα εμφανίζει εικόνες bitmap, icons ή metafiles. Η εφαρμογή θα έχει μενού με δυνατότητες File-Open, File-Save, File-Exit, Window-Tile, Window-Cascade, Window- ArrangeIcons, WindowClose και Help-About.  Αρχικά καθορίζουμε στη βασική φόρμα το FormStyle σε “fsMDIForm” ώστε να μετατρέψουμε την εφαρμογή σε MDI.

7 Οπτικός Προγραμματισμός  Στην βασική φόρμα εισάγουμε ένα κυρίως μενού, ένα OpenDialog, και ένα SaveDialog.  Καθορίζουμε το BorderStyle σε “bsSizeable” ώστε η βασική φόρμα να μπορεί να αυξομειώνεται από τον χρήστη.  Δημιουργούμε την child φόρμα που θα φιλοξενεί τις εικόνες και καθορίζουμε το FormStyle της σε “fsMDIChild”.  Καθορίζουμε το BorderStyle σε “bsSizeable” ώστε και η child φόρμα να μπορεί να αυξομειώνεται από τον χρήστη.  Εισάγουμε ένα Image Component στην Child φόρμα και καθορίζουμε το Align property σε alClient, ώστε να πιάνει όλο το παράθυρο.

8 Οπτικός Προγραμματισμός void __fastcall TForm1::Open1Click(TObject *Sender) { if (OpenDialog->Execute()) { TChild* child=new TChild(this); child->Image->Picture->LoadFromFile(OpenDialog->FileName); child->ClientWidth=child->Image->Picture->Width; child->ClientHeight=child->Image->Picture->Height; child->Caption=ExtractFileName(OpenDialog->FileName); }} void __fastcall TForm1::SaveAs1Click(TObject *Sender) { TChild * child; child=(TChild*)Form1->ActiveMDIChild; if (child) { if (SaveDialog->Execute()) child->Image->Picture->SaveToFile(SaveDialog->FileName); } else MessageBox(NULL,"No Picture Selected","",MB_OK);}

9 Οπτικός Προγραμματισμός void __fastcall TForm1::Tile1Click(TObject *Sender) { Tile();} void __fastcall TForm1::Cascade1Click(TObject *Sender) { Cascade(); } void __fastcall TForm1::ArrangeAll1Click(TObject *Sender) { ArrangeIcons(); } void __fastcall TForm1::Close1Click(TObject *Sender) { TChild * child; child=(TChild*)Form1->ActiveMDIChild; if (child) delete child; else MessageBox(NULL,"No Picture Selected !","Picture Viewer",MB_OK); }

10 Οπτικός Προγραμματισμός Unit2.cpp : BOOL draw=false; void __fastcall TChild::ImageMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { Image->Canvas->MoveTo(X,Y); draw=true;} void __fastcall TChild::ImageMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { if (draw) Image->Canvas->LineTo(X,Y); } void __fastcall TChild::ImageMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { draw=false; } void __fastcall TChild::FormClose(TObject *Sender, TCloseAction &Action) { Action=caFree; }

11 Οπτικός Προγραμματισμός  O C++Builder περιλαμβάνει έναν Debugger για αποσφαλμάτωση προγραμμάτων.  O Debugger μπορεί να :  Ελέγχει την εκτέλεση του προγράμματος  Εμφανίζει τιμές μεταβλητών και αντικειμένων (fields ή properties) που βρίσκονται μέσα σε δομές δεδομένων (πίνακες, structures, κλάσεις κ.λ.π.) κατά την εκτέλεση του προγράμματος.  Επιτρέπει την μεταβολή των τιμών των παραπάνω κατά την εκτέλεση του προγράμματος.  Μπορεί να χρησιμοποιηθεί για Debugging οποιασδήποτε εκτελέσιμης εφαρμογής (που είναι σε γλώσσα μηχα- νής) και όχι μόνο προγραμμάτων C++.

12 Οπτικός Προγραμματισμός  Attach to Process : επιτρέπει το Debug- ging μίας οποιασδήποτε διεργασίας που εκτελείται αυτή τη στιγμή στο σύστημα.  Έχει την δυνατότητα debugging ακόμα και διεργασιών που εκτελούνται σε άλλους Η/Υ στο δίκτυο αρκεί να τρέχουν τον Debug Server.

13 Οπτικός Προγραμματισμός

14  Parameters : επιτρέπει τον καθορισμό command line parameters για την εκτέλεση ενός προγράμματος.  StepOver : εκτελεί το πρόγραμμα βήμα προς βήμα χωρίς να εισέρχεται στις υπορουτίνες

15 Οπτικός Προγραμματισμός  Trace Into : εκτελεί το πρόγραμμα βήμα- βήμα αλλά εισέρχεται και μέσα στις υπορουτίνες.  Trace to Next Source Line : όταν βρισκόμαστε στον κώδικα μίας Windows API function μας μεταφέρει στην εντολή γλώσσας μηχανής που αντιστοιχεί στην επόμενη εντολή προγράμματος γλώσσας C++.  Run to Cursor : τοποθετούμε τον κέρσορα σε οποιαδήποτε γραμμή του προγράμματός μας και με την επιλογή αυτή το πρόγραμμα τρέχει μέχρι τη γραμμή αυτή.  Run Until Return : εκτελεί το πρόγραμ-μα από το τρέχον σημείο μέχρι να βρει το return της function ή μέχρι να τερματιστεί η εφαρμογή.

16 Οπτικός Προγραμματισμός  Show Execution Point : όταν βλέπουμε το CPU window κατά το debugging, μας ξανα- γυρνάει στο Edit Window και στην αντίσ- τοιχη γραμμή προγράμματος. (το ανάποδο γίνεται με View  Debug Windows  CPU).  Program Pause : παγώνει προσωρινά την εκτέλεση του προγράμματος (π.χ. για να δούμε τις τιμές των μεταβλητών).  Program Reset : τερματίζει το πρόγραμμα που κάνουμε debug και τον debugger.  Inspect : Μας δείχνει την τιμή μίας μεταβλη- τής ή πεδίου ή αντικειμένου.

17 Οπτικός Προγραμματισμός

18  Evaluate/Modify : εμφανίζει ένα παράθυρο για προβολή και μεταβολή τιμών μεταβλη- τών πιο απλό από τον Inspector. Μπορεί όμως να τον καλέσει. Μπορεί επίσης να δεχτεί και εκφράσεις (π.χ. 2*i+j/8).

19 Οπτικός Προγραμματισμός  Add Watch : Προσθέτει μία έκφραση στο Wat- ch List η τιμή της οποίας υπολογίζεται συνεχώς και μπορούμε να την παρακολουθούμε

20 Οπτικός Προγραμματισμός  Add Breakpoint : Καθιστά την τρέχουσα γραμ- μή κώδικα ως ένα σημείο στο οποίο θα σταμα- τά προσωρινά η εκτέλεση του προγράμματος


Κατέβασμα ppt "Οπτικός Προγραμματισμός  Κληρονομείται από την κλάση TCanvas. Επιτρέπει την σχεδίαση γραφι- κών στο Image Component. Επίσης υπάρχει στις φόρμες, σε compo-"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google