Οπτικός Προγραμματισμός ( C++ Builder 5.0 )

15
Οπτικός Προγραμματισμός Οπτικός Προγραμματισμός Συνέχεια του αντικειμενoστραφούς προγραμματισμού Επέκταση των κλάσεων σε Visual Components (Window Controls) Κατασκευή του Interface στο Design Time, και καθορισμός πολλών παραμέτρων των αντικειμένων (properties). Επιλογή από βιβλιοθήκη έτοιμων visual components και προσαρμογή στις ανάγκες της εφαρμογής Τα σύγχρονα λειτουργικά συστήματα είναι Object Oriented και βασίζονται σε visual objects (windows, controls, buttons κ.λ.π.) Κατασκευή visual objects που μπορεί να είναι επαναχρησιμοποιήσιμα από άλλες εφαρμογές (ActiveX Controls, COM objects) Πολλές πλατφόρμες ανάπτυξης Οπτικού

description

Οπτικός Προγραμματισμός ( C++ Builder 5.0 ). Συνέχεια του αντικειμενoστραφούς προγραμματισμού Επέκταση των κλάσεων σε Visual Components (Window Controls) Κατασκευή του Interface στο Design Time , και καθορισμός πολλών παραμέτρων των αντικειμένων ( properties ). - PowerPoint PPT Presentation

Transcript of Οπτικός Προγραμματισμός ( C++ Builder 5.0 )

Page 1: Οπτικός Προγραμματισμός  ( C++ Builder 5.0 )

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

Συνέχεια του αντικειμενoστραφούς προγραμματισμού Επέκταση των κλάσεων σε Visual Components (Window Controls) Κατασκευή του Interface στο Design Time, και καθορισμός πολλών

παραμέτρων των αντικειμένων (properties). Επιλογή από βιβλιοθήκη έτοιμων visual components και προσαρμογή

στις ανάγκες της εφαρμογής Τα σύγχρονα λειτουργικά συστήματα είναι Object Oriented και

βασίζονται σε visual objects (windows, controls, buttons κ.λ.π.) Κατασκευή visual objects που μπορεί να είναι επαναχρησιμοποιήσιμα

από άλλες εφαρμογές (ActiveX Controls, COM objects) Πολλές πλατφόρμες ανάπτυξης Οπτικού Προγραμματισμού, C+

+Builder, Delphi, MS Visual C++, Visual Basic, Visual Java

Σπύρος Καζαρλής

Page 2: Οπτικός Προγραμματισμός  ( C++ Builder 5.0 )

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

Οδηγούμενος από συμβάντα προγρ/σμός - ακολουθιακός προγρ/σμός Προγραμματισμός για ανταπόκριση σε συμβάντα Το πρόγραμμα δεν καθορίζει την σειρά ενεργειών του χρήστη, αλλά

αποκρίνεται σε αυτές Το πρόγραμμα δεν μπορεί να γνωρίζει την επόμενη ενέργεια του χρήστη Δύο κατηγορίες συμβάντων : User Events , System Events Όταν συμβαίνει ένα event, ο C++ Builder κοιτάει άν έχετε φτιάξει

κώδικα χειρισμού του event και τον εκτελεί. Αλλιώς τίποτα δεν συμβαίνει.

Φτιάχνουμε κώδικα μόνο για τα events που μας ενδιαφέρουν, αγνοώντας τα υπόλοιπα

Page 3: Οπτικός Προγραμματισμός  ( C++ Builder 5.0 )

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

Page 4: Οπτικός Προγραμματισμός  ( C++ Builder 5.0 )

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

New New Application New Form New Frame Open Open Project Reopen Save Save As Save Project As Save All Close All Include Unit Hdr (Unit Header File) Print Exit

Page 5: Οπτικός Προγραμματισμός  ( C++ Builder 5.0 )

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

Project Menu Compile Unit Alt+F9 Μεταγλωττίζει το τρέχον cpp αρχείο Make Project Ctrl+F9 Μεταγλωττίζει ότι έχει αλλάξει και παράγει το exe, κάνοντας link Build Project Μεταγλωττίζει όλα τα πηγαία αρχεία και παράγει το exe, κάνοντας link

Run Menu Run F9 εκτελεί το πρόγραμμα

Page 6: Οπτικός Προγραμματισμός  ( C++ Builder 5.0 )

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

Standard Toolbar New Δημιουργία νέου αρχείου κ.λ.π. Open Άνοιγμα αρχείου, project κ.λ.π. Save Αποθήκευση του τρέχοντος αρχείου Save All Αποθήκευση όλων των αρχείων Open Project Άνοιγμα υπάρχοντος project Add File to Project Προσθήκη αρχείου στο project Remove File from Project Αφαίρεση αρχείου από το project

View Toolbar View Unit Εμφάνιση πηγαίου κώδικα View Form Εμφάνιση Φόρμας Toggle Form/Unit Εναλλαγή μεταξύ Φόρμας και κώδικα New Form Δημιουργία νέας φόρμας

Page 7: Οπτικός Προγραμματισμός  ( C++ Builder 5.0 )

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

Debug Toolbar Run Εκτέλεση της εφαρμογής Pause Προσωρινή παύση της εφαρμογής Trace Into Εκτέλεση μίας γραμμής κώδικα, με διακλάδωση στις υπορουτίνες Step Over Εκτέλεση μιας γραμμής κώδικα, χωρίς διακλάδωση στις υπορουτίνες

Custom Toolbar Help Contents Εμφάνιση περιεχομένων βοήθειας

Μπορείτε να προσθέσετε τις δικές σας επιλογές σε αυτή τημπάρα εργαλείων μέσω τηςεπιλογής :View – Toolbars - Customize

Page 8: Οπτικός Προγραμματισμός  ( C++ Builder 5.0 )

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

Components PaletteΠεριέχει μία βιβλιοθήκη από έτοιμαcomponents, για χρήση σε εφαρμογές,ομαδοποιημένα σε κατηγορίες.Οι πιό κοινές κατηγορίες είναι :StandardAdditionalWin32SystemDialogsWin 3.1

Desktops Toolbar Pick List Επιλογή από τις ήδη αποθη- κευμένες επιφάνειες εργασίας Save Current Desktop Αποθηκεύει τις ρυθμίσεις της επιφάνειας εργασίας Set Debug Desktop Καθορίζει την τρέχουσα επιφά- νεια εργασίας ως αυτή που θα ισχύει κατά την εκτέλεση προγραμμάτων

Page 9: Οπτικός Προγραμματισμός  ( C++ Builder 5.0 )

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

Εμφανίζει την κλάση και το όνομα τουτρέχοντος component (Form, button, …)Επιτρέπει την επιλογή αντικειμένου(component) από αυτά που έχουν ενσωμα-τωθεί στην εφαρμογή.Έχει δύο σελίδες :Σελίδα ιδιοτήτων (properties) Εμφανίζει τις ιδιότητες του αντικειμένου που μπορούν να καθοριστούν κατά την σχεδίαση (published properties)Σελίδα συμβάντων (events) Εμφανίζει τα συμβάντα που σχετίζονται με το αντικείμενο και για κάθε συμβάν την ρουτίνα που το χειρίζεται (αν έχει καθοριστεί)

Page 10: Οπτικός Προγραμματισμός  ( C++ Builder 5.0 )

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

Πλήκτρα λειτουργιών του περιβάλλοντος - IDE Alt + F9 Compile Unit (Μεταγλώττιση ενός πηγαίου αρχείου) Ctrl + F9 Make Project (Μεταγλώττιση και κατασκευή exe) F9 Run (εκτέλεση της εφαρμογής) F12 Toggle Form/Unit (Εναλλαγή φόρμας / πηγαίου κώδικα F1 Βοήθεια του C++ Builder για το σημείο που βρισκόμαστε

Πλήκτρα του επεξεργαστή κειμένου (κώδικα) Ctrl + X Cut (αποκοπή επιλεγμένου τμήματος κειμένου) Ctrl + C Copy (αντιγραφή επιλεγμένου τμήματος κειμένου) Ctrl + V Paste (επικόλληση τμήματος κειμένου) Ctrl + S Save (αποθήκευση του τρέχοντος πηγαίου αρχείου)Shift+Ctrl+nΤοποθετεί το σημάδι με αριθμό “n” (0..9)Ctrl+n Πηγαίνει στο σημάδι “n” (0..9)

Page 11: Οπτικός Προγραμματισμός  ( C++ Builder 5.0 )

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

Το βασικό αντικείμενο πάνω στο οποίο κτίζεται μία εφαρμογή είναι οι Φόρμες (Forms). Η Φόρμα είναι στην ουσία ένα πλαίσιο πάνω στο οποίο ενσωματώνονται άλλα αντικείμενα όπως Μενού, Κουμπιά, Κουτιά εισαγωγής κειμένου, Ετικέτες κ.λ.π. Οι Φόρμες είναι αντικείμενα που παράγονται από την κλάση TForm.Όταν ξεκινά ο C++ Builder εμφανίζει ήδη ένα κενό Project και μία έτοιμη κενή φόρμα με όνομα Form1 και κλάση TForm1 που είναι παράγωγη της TForm.Κάθε φόρμα έχει και ένα αντίστοιχο αρχείο πηγαίου κώδικα (unit) με επέκταση (.cpp) που περιέχει τις απαραίτητες δηλώσεις και ρουτίνες για την φόρμα. Εκεί γράφουμε τον κώδικα για τον χειρισμό των συμβάντων της φόρμας (event handlers).Κάθε unit έχει και ένα αρχείο επικεφαλίδων (header file) με επέκταση (.h) όπου βρίσκονται οι δηλώσεις της κλάσης και των ρουτινών της.Τα αρχικά ονόματα της φόρμας και του αρχείου πηγαίου κώδικα μπορούν να τροποποιηθούν κατά βούληση

Page 12: Οπτικός Προγραμματισμός  ( C++ Builder 5.0 )

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

1. Δημιουργία ενός νέου Project εφαρμογής με την επιλογή File – New Application

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

3. Ενσωμάτωση στη φόρμα αντικειμένων (components) από το Component Palette με διαδικασία drag&drop.

4. Αλλαγή των ιδιοτήτων των αντικειμένων άμεσα ή με τη βοήθεια του Object Inspector.

5. Συγγραφή των ρουτινών διαχείρισης συμβάντων (event handlers) για την φόρμα και τα αντικείμενα (για όποια αντικείμενα και για όποια συμβάντα χρειάζεται).

6. Μεταγλώττιση του κώδικα (compile) και διόρθωση των σφαλμάτων7. Κτίσιμο του εκτελέσιμου (exe) με την επιλογή Project-Make Project

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

8. Εκτέλεση της εφαρμογής (Run) και δοκιμή.

Page 13: Οπτικός Προγραμματισμός  ( C++ Builder 5.0 )

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

Κάθε αντικείμενο (Φόρμα, Κουμπί, Ετικέτα, ...) που χρησιμοποιούμε από την βιβλιοθήκη του C++ Builder το χειριζόμαστε μέσω των Ιδιοτήτων του (Properties) μέσω των Μεθόδων του (Methods) και μέσω των Συμβάντων του (Events).

Οι ιδιότητες είναι στην ουσία μέλη-δεδομένα (data members) της κλάσης του κάθε αντικειμένου που μπορούν να καθοριστούν είτε κατά τη σχεδίαση (design time) είτε κατά την εκτέλεση (run time) της εφαρμογής (π.χ. τίτλος, χρώμα, μέγεθος, font, κ.λ.π.).

Οι μέθοδοι είναι συναρτήσεις-μέλη (function members) της κλάσης του κάθε αντικειμένου που μας επιτρέπουν να χειριζόμαστε τα δεδομένα της κλάσης (π.χ. Edit1->Clear(), Form1->Show() ).

Τα συμβάντα είναι ενέργειες που μπορεί να κάνει ο χρήστης με το συγκεκριμένο αντικείμενο (π.χ. διπλό κλικ, πάτημα κουμπιού, αλλαγή κειμένου, επιλογή από μενού, αλλαγή μεγέθους, drag&drop κ.λ.π.). Για όσα συμβάντα χρειάζεται, ο χρήστης αναπτύσσει τον κώδικα διαχείρισης του συμβάντος (event handler) όπου καθορίζεται το τί θα συμβεί όταν λάβει χώρα το συγκεκριμένο event (π.χ. Onclick, OnClose, OnResize, OnDragDrop, κ.λ.π.)

Page 14: Οπτικός Προγραμματισμός  ( C++ Builder 5.0 )

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

Δημιουργία νέου project. Αλλαγή του Caption της Form1 σε «Ασκηση 1-1». Ενσωμάτωση κουμπιού από το Standard toolbar. Αλλαγή του caption σε “Close”. Δημιουργία Event handler για το event “OnClick”.

void __fastcall TForm1::Button1Click(TObject *Sender){ Form1->Close();}

Page 15: Οπτικός Προγραμματισμός  ( C++ Builder 5.0 )

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

Δημιουργία νέου project. Επανάληψη των βημάτων της άσκησης 1-1. Ενσωμάτωση δεύτερου κουμπιού και αλλαγή του Caption σε «Εμφάνιση». Ενσωμάτωση EditBox. Δημιουργία Event Handler για το Onclick Event του δεύτερου κουμπιού.

void __fastcall TForm1::Button2Click(TObject *Sender){ MessageBox(NULL,Edit1->Text.c_str(),"Μηνυμα",MB_OK);}