C++ σε περιβάλλον .NET Χρόνη Αλεξάνδρα Α.Μ. 847

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Εισαγωγή στο περιβάλλον εργασίας του
Advertisements

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
Δημιουργία της πρώτης σας βάσης δεδομένων Access 2013 j και στη συνέχεια πατήστε το πλήκτρο F5 ή κάντε κλικ στις επιλογές Προβολή παρουσίασης > Από την.
Οπτικός Προγραμματισμός  Περιέχει έτοιμα components υλοποίησης κοινών διαλόγων  OpenDialog : διάλογος για την επιλογή αρχείου για άνοιγμα.  SaveDialog.
Εκμάθηση διεπαφής MS Kodu. Δημιουργώ τον Κόσμο Το πρώτο πράγμα που θα φτιάξουμε είναι ο κόσμος. Λογικό, αφού χωρίς κόσμο, πού θα τοποθετούσαμε μετά τα.
Κληρονομικότητα. Εισαγωγή  Κληρονομικότητα (Inheritance) καλείται ο μηχανισμός με τον οποίο μία νέα κλάση που ονομάζεται παράγωγη (derived class) δημιουργείται.
Τεχνικές Προγραμματισμού με την JavaScript Στυλιάδης Κων/νος Φλώρινα, Οκτώβριος 2004.
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη Java • Ακέραιοι.
Οπτικός Προγραμματισμός ( C++ Builder 5.0 )
Joomla.
Επικοινωνία Ανθρώπου Μηχανής Εαρινό Εξάμηνο 2007 Web Interfaces Εργαλεία παραγωγής κώδικα συμβατού με ASP Γαλούσης Θεόδωρος Α.Μ 630 Δρομπίλας Δημήτριος.
POINTERS, AGGREGATION, COMPOSITION. POINTERS TO OBJECTS.
Copyright ©: SAMSUNG & Samsung Hope for Youth. Με επιφύλαξη κάθε νόμιμου δικαιώματος Εκπαιδευτικό υλικό Λογισμικό: Δημιουργία εφαρμογών Επίπεδο.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΕΠΛ002: Εισαγωγή στην Επιστήμη της Πληροφορικής
Windows Programming Web controls. •Τα web forms είναι container αντικείμενα σχεδιασμένα για να κάνουνε host άλλα controls, όπως α) Web server controls,
ΕΠΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ – ΜΗΧΑΝΗΣ Εαρινό Εξάμηνο 2007 Παρουσίαση Εργαλείου Ανάπτυξης JBuilder Τσουρού Σταυρούλα, ΑΜ 708 Μαδεμλής Ιωάννης, ΑΜ 669.
Εκτέλεση Αλγορίθμων σε ψευδογλώσσα
Γυμνάσιο Νέας Κυδωνίας
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Τύποι πραγματικών αριθμών
Databases & Qt Μανούσης Πέτρος ΑΜ: 862
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 10: Graphical User Interfaces Εβδομάδα 10: Εισαγωγή στα Γραφικά Περιβάλλοντα.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 4: Exceptions Εβδομάδα 4: Εξαιρέσεις [Exceptions]
A’ ΛΥΚΕΙΟΥ ΛΥΚΕΙΟ ΚΟΚΚΙΝΟΧΩΡΙΩΝ Δημήτρης Μαυροβουνιώτης
Visual Basic 6 - Φυλλάδιο 2
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΕΝΟΤΗΤΑ Γ΄ Ελέγχω – Προγραμματίζω τον Υπολογιστή
Βάσεις Δεδομένων Μάθημα 4.
ΗΜΥ 100 Εισαγωγή στην Τεχνολογία 7 Νοεμβρίου 2008 Στυλιανή Πετρούδη ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
ΕΣΔ 232: Οργάνωση δεδομένων στην Κοινωνία της Πληροφορίας © 2013 Nicolas Tsapatsoulis Φόρμες Δημιουργία Περιεχομένου Ι.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
ΕΝΟΤΗΤΑ 3 – MS Windows – Περιβάλλον εργασίας
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II.
ΠΑΡΟΥΣΙΑΣΗ ΕΡΓΑΛΕΙΟΥ ΑΝΑΠΤΥΞΗΣ: VISUAL BASIC .NET
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
XERTE TUTORIAL - ΣΗΜΕΙΩΣΕΙΣ ΕΡΓΑΣΤΗΡΙΟΥ ΘΜΕΛ ΣΤ. ΔΗΜΗΤΡΙΑΔΗΣ Xerte Interaction – Διάδραση Θεωρίες Μάθησης & Εκπαιδευτικό Λογισμικό Σημειώσεις Εργαστηρίου.
Εισαγωγή στη .net Visual C++
DreamWeaver Παρουσίαση Εργαλείου για Ανάπτυξη Web-based GUIs 1.
Templates Standard Template Library (STL) Exceptions Μεταπτυχιακό Πρόγραμμα Σπουδών, Τμήμα Εφαρμοσμένης Πληροφορικής.
Applets Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη δυνατότητα προβολής γραφικών και τη δυνατότητα υλοποίησης ενός γραφικού.
Παρουσίαση Glade Νίκος Δεληγιάννης Α.Μ.: Τι είναι το Glade; Εφαρμογή για την αυτοματοποίηση της σχεδίασης ενός γραφικού περιβάλλοντος χρήστη (GUI).
1 Β΄ Μέρος : ΠΡΟΧΩΡΗΜΕΝΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΤΟΥ GUI Παπανίκος Νικόλαος Α.Μ Φασουράκη Ασημίνα Α.Μ 711.
Βασικά στοιχεία της Java
Κεφάλαιο 3 Τύποι Δεδομένων - Τελεστές. Πρωτογενείς τύποι δεδομένων: int, float, double, chars ΤύποςΌνομαΜέγεθος byte 8-bit signed, short 16-bit.
1. 1.Δημιουργία Νέου Αρχείου Επιλέγουμε καρτέλα File, πατούμε στην εντολή New και μετα αφου διαλέξουμε τον τύπo αρχείου (π.χ Blank Document), πατούμε.
ΠΡΟΓΡΑΜΜΑΤΙΖΟΝΤΑΣ ΜΕ ΤΟ ΑΒΑΚΙΟ. Μικρόκοσμοι και Αβάκιο Μέσω του περιβάλλοντος του Αβακίου κατασκευάζονται εκπαιδευτικά λογισμικά που ονομάζονται μικρόκοσμοι,
Πίνακες στην JAVA ΕΡΓΑΣΤΗΡΙΟ AΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Διαφάνειες: ΧΟΧΟΛΗΣ ΔΙΟΝΥΣΙΟΣ Προσαρμογή 2014: Κώστας Στάμος)
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ 2 ο ΕΡΓΑΣΤΗΡΙΟ: Μενού,Εντολές και Παράθυρα Διαλόγου Καθηγητής: Γρηγόριος Νικ. Καρατάσιος.
ΜΑΘΗΜΑ: ΣΥΓΧΡΟΝΟ ΛΟΓΙΣΜΙΚΟ ΟΡΓΑΝΩΣΗ ΓΡΑΦΕΙΟΥ 5 ο ΕΡΓΑΣΤΗΡΙΟ: ΕΓΚΑΤΑΣΤΑΣΗ ΕΚΤΥΠΩΤΩΝ ΚΑΘΗΓΗΤΗΣ: ΓΡΗΓΟΡΙΟΣ Ν. ΚΑΡΑΤΑΣΙΟΣ.
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΠΡΟΧΩΡΗΜΕΝΕΣ ΤΕΧΝΙΚΕΣ
Παιδαγωγικές εφαρμογές Η/Υ
Power Point (Συνέχεια).
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Τύποι Μεταβλητών.
Web Services στη C# Εργαστήριο 2
Web Services στη C# Εργαστήριο 3
Tkinter Γραφικά στην Python.
Κεφάλαιο 10 Streams.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Τρόπος προσαρμογής του Microsoft SharePoint Τοποθεσία Web με σύνδεση
Φόρμες Φόρμες χρησιμοποιούνται για να δημιουργήσουμε ένα φιλικό περιβάλλον για την διαχείριση των δεδομένων της βάσης. Επίσης δίνεται η δυνατότητα δημιουργίας.
Τύποι δεδομένων και τελεστές,
Μεταγράφημα παρουσίασης:

C++ σε περιβάλλον .NET Χρόνη Αλεξάνδρα Α.Μ. 847 Σκλαβενίτη Αμαλία Α.Μ. 821 Αυγέρος Χρήστος Α.Μ. 628 Νικολόπουλος Κών/νος Α.Μ. 734

Δημιουργία Project Δημιουργία Project Δημιουργία Διεπαφής Δημιουργία νέων κλάσεων Προσθήκη νέας φόρμας Εγγραφή κώδικα στη .NET Build, debugging, release

Δημιουργία Project Θεμελιώδεις τύποι στη C++ Δομές δεδομένων (struct – κλάσεις) Ροή ελέγχου και βρόγχοι επανάληψης Παραδείγματα & Προγραμματισμός C++

VISUAL C++ 2008 Θα ακολουθήσει περιγραφή της VISUAL C++ 2008 Express Edition Άλλες εκδόσεις Standard Professional Team System

VISUAL C++ 2008 Express Edition Η Visual C++ είναι κομμάτι του Visual Studio (το οποίο παρέχει και άλλες γλώσσες). Το Visual Studio είναι διαθέσιμο μόνο για το λειτουργικό σύστημα Windows. Οι εφαρμογές που φτιάχνονται σε Visual C++ 2008 Express Edition μπορούν να εκτελεστούν στα λειτουργικά συστήματα: Windows 2000 Windows XP Windows Server 2003 Windows Vista Δεν υποστηρίζονται προηγούμενες εκδόσεις των Windows

Δημιουργία Project Από το menu επιλέγουμε File->New->Project.

Δημιουργία Project Εμφανίζεται νέο παράθυρο. Στα διάφορα πεδία επιλέγουμε: Project types = CLR Templates = Windows Forms Application Name = το όνομα του προγράμματος Location = σε ποιο κατάλογο θα αποθηκευτεί Πατάμε OK

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

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

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

Δημιουργία Διεπαφής Το Toolbox έχει τα διάφορα στοιχεία κατανεμημένα σε κατηγορίες: All Windows Forms: Περιέχει όλα τα στοιχεία που είναι διαθέσιμα. Common Controls: Περιέχει τα βασικά στοιχεία διεπαφής όπως είναι Button, TextBox, Label, CheckBox, RadioButton, ListBox. Containers:Περιέχει στοιχεία που μέσα τους μπορούν να τοποθετηθούν άλλα στοιχεία (πχ tabs). Menus & Toolbars: Περιέχει στοιχεία που συνήθως εμφανίζονται στο πάνω μέρος ενός παραθύρου. Data: Περιέχει τρόπους διασύνδεσης της διεπαφής με βάσεις δεδομένων. Components: Περιέχει διάφορα ειδικά στοιχεία, όπως είναι μηνύματα σφαλμάτων, λίστες εικόνων, αναζήτηση αρχείων. Printing: Περιέχει στοιχεία που βοηθούν στις εκτυπώσεις. Dialogs: Περιέχει στοιχεία διαλόγων, όπως είναι η επιλογή χρώματος, γραμματοσειράς, αρχείων. General: Ορίζονται από τον χρήστη. 11

Δημιουργία Διεπαφής Button TextBox Label CheckBox RadioButton ListBox

Δημιουργία Διεπαφής Για την εισαγωγή στοιχείων στην διεπαφή παίρνουμε το στοιχείο που θέλουμε από το toolbox και το μεταφέρουμε στην φόρμα (drag & drop). Στο παράδειγμα μεταφέραμε δύο TextBox και ένα Button από το Common Controls. 13

Δημιουργία νέων κλάσεων Επιλέγουμε Project->Add Class… Στο παράθυρο που εμφανίζεται επιλέγουμε Categories = C++ Templates = C++ Class Στο επόμενο παράθυρο επιλέγουμε Class name = το όνομα της νέας κλάσης (πχ test_class) Base class = το όνομα της πατρικής κλάσης (αν υπάρχει) Πατώντας Finish, δημιουργούνται δύο νέα αρχεία .h και .cpp (πχ test_class.h και test_class.cpp).

Εγγραφή κώδικα Για να ανοίξουμε ένα αρχείο (source code) κάνουμε κάτι από τα παρακάτω: Κάνουμε διπλό κλικ στο αρχείο του Solution Explorer που θέλουμε να τροποποιήσουμε. Κάνουμε δεξί κλικ στην διεπαφή και επιλέγουμε View Code. Επιλέγουμε ένα αντικείμενο της διεπαφής, στο παράθυρο Properties επιλέγουμε Events (κίτρινος κεραυνός) και ορίζουμε την συνάρτηση που θέλουμε. Ειδικά για το Button μπορούμε να κάνουμε διπλό κλικ πάνω του και να ορίσουμε τις ενέργειες που θέλουμε να γίνουν όταν το κουμπί αυτό πατηθεί.

Εγγραφή κώδικα Όταν γράφουμε ένα πρόγραμμα πατώντας Ctrl+Space βλέπουμε όλες τις διαθέσιμες επιλογές που υπάρχουν. Μπορούμε να ξεκινήσουμε με τα πρώτα γράμματα μιας μεταβλητής ή συνάρτησης. Πατώντας Ctrl+Space να δούμε όλες τις δυνατές μεταβλητές ή συναρτήσεις που ταιριάζουν και να επιλέξουμε την κατάλληλη

Building Για να μεταφράσουμε το πρόγραμμα επιλέγουμε Build->Build Solution. Για να τρέξουμε το πρόγραμμα που μόλις φτιάξαμε και να δούμε πως λειτουργεί επιλέγουμε Debug->Start Without Debugging.

Debugging Μπορούμε να σταματήσουμε την εκτέλεση του προγράμματος και να ελέγξουμε την τιμή διαφόρων μεταβλητών. Για να το κάνουμε αυτό εισάγουμε Break Points. Για να εισάγουμε Break Points κάνουμε κλικ στην γκρι περιοχή αριστερά από την εντολή που θέλουμε να σταματήσουμε. Θα εμφανιστεί ένας κόκκινος κύκλος.

Debugging Για να ξεκινήσουμε την εκτέλεση επιλέγουμε Debug->Start Debugging. Στο παράδειγμα όταν πατήσουμε το button1 η εκτέλεση του προγράμματος θα σταματήσει. Στο κάτω αριστερά μέρος του παραθύρου εμφανίζονται όλα τα αντικείμενα που υπάρχουν. Επιλέγοντας ένα αντικείμενο μπορούμε να δούμε τις τιμές που έχουν τα πεδία του.

Release Για την δημιουργία του εκτελέσιμου προγράμματος και την εκτέλεσή του χωρίς την χρήση του Visual Studio επιλέγουμε: Build->Configuration Manager… Στο παράθυρο που θα εμφανιστεί επιλέγουμε στο πεδίο Configuration την τιμή Release. Επιλέγουμε Build->Build Solution. Στον κατάλογο που έχουμε αποθηκεύσει το project θα δημιουργηθεί ένας νέος κατάλογος με το όνομα Release που θα περιέχει το εκτελέσιμο πρόγραμμα (πχ test_project.exe). Κάνοντας διπλό κλικ στο .exe αρχίζει η εκτέλεση του προγράμματος.

θεμελιώδεις τύποι στη C++

θεμελιώδεις τύποι στη C++ Λογικός τύπος. Bool (true ή false) π.χ. : bool a; Τύποι χαρακτήρων Char String π.χ. : char ch; string s; Τύποι ακεραίων Int Signed int (προσημασμένος) Unsigned int (απρόσημος) π.χ. : int count = 1;

θεμελιώδεις τύποι στη C++ Τύποι κινητής υποδιαστολής Float (απλής ακρίβειας) Double (διπλής ακρίβειας) Long double (επεκτεταμένης ακρίβειας) π.χ. : float a; Τύποι απαρίθμησης, για την αναπαράσταση καθορισμένων συνόλων τιμών Enum π.χ. : enum Beer {Amstel, Heinegen, Thor, Mythos)

θεμελιώδεις τύποι στη C++ Τύποι δεικτών (pointers) π.χ. : int * a; int * ap[15]; int * (fp)(char*); Τύποι αναφορών (reference) π.χ. : int &myref = myint; Τύποι πινάκων (array) Π.χ.: float v[3]; char* a[32];

Δομές δεδομένων (structs) Δομή είναι μια συλλογή από μία ή περισσότερες μεταβλητές, πιθανώς διαφορετικών τύπων , ομαδοποιούνται με ένα μόνο όνομα για ευκολία στο χειρισμό τους με μειονέκτημα το γεγονός ότι δεν υποστηρίζεται κληρονομικότητα. π.χ. : struct Point { double X; double Y; void MoveBy (double dX, double dY) { X+=dX; Y+=dY; } }

Κλάσεις Κλάση είναι μια ομάδα από αντικείμενα με παρόμοια σημασιολογία, χαρακτηριστικά και λειτουργίες στην οποία υποστηρίζεται κληρονομικότητα. public class Person : IPersonAge { private int YOB; public Person() { } public int YearOfBirth { get { return YOB; }; set { YOB = value; }; } public int GetAgeToday() { return Today()- YearOfBirth }; }

Η ΡΟΗ ΤΟΥ ΕΛΕΓΧΟΥ ΚΑΙ ΒΡΟΓΧΟΙ ΕΠΑΝΑΛΗΨΗΣ If … else … statement Switch Statement while (…) for (…; …; …) do …; while (…);

Παράδειγμα

Παράδειγμα 2 Στο παράδειγμα κάνοντας διπλό κλικ στο button1 και προσθέτοντας στην συνάρτηση button1_Click τις εντολές: textBox1->Text = textBox2->Text; textBox2->Text = “”; Μεταφέρει τα περιεχόμενα του κάτω TextBox στο πάνω.

Message Box Ύπαρξη βασικής φόρμας μέσω της οποίας εκτελούνται οι εφαρμογές που επιθυμεί ο χρήστης. Button OK : Δημιουργία Message Box Button QUIT : Κλείσιμο της φόρμας με την εντολή Close().

Message Box MessageBoxButtons buttons = MessageBoxButtons::OKCancel; MessageBox::Show (this,"You clicked on the form!","Message Box", buttons, MessageBoxIcon::Question); Ο χρήστης δεν μπορεί να επέμβει στο παράθυρο First Form εάν δεν επιλέξει κάποιο από τα buttons του Message Box.

Εμφάνιση νέας φόρμας NewForm^ frm; frm=gcnew NewForm(); frm->Show(); Δεν υπάρχουν περιορισμοί στις λειτουργίες που μπορούν να εκτελεστούν μέσω της νέας φόρμας.

Άνοιγμα αρχείου (1/3) FileStream^ fs; StreamReader^ sr; String^ fileName; FileStream^ fs; StreamReader^ sr; this->openFileDialog1->DefaultExt = "txt"; this->openFileDialog1->FileName = "txtDisplay.txt"; this->openFileDialog1->Filter="Text files (*.txt)|*.txt|All files (*.*|*.*)"; this->openFileDialog1-> InitialDirectory =Application::ExecutablePath; if ( openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)

Άνοιγμα αρχείου (2/3) try { fileName = openFileDialog1->FileName; fs = gcnew FileStream(fileName, FileMode::Open,FileAccess::ReadWrite); sr = gcnew StreamReader(fs); txtDisplay->Text = sr->ReadToEnd(); sr->Close(); } catch (System::Exception ^e) { MessageBox::Show("File Open Error: \n" + e->ToString(), "File Open Error",MessageBoxButtons::OK, MessageBoxIcon::Error); sr->Close(); }

Άνοιγμα αρχείου (3/3)

ΤΕΛΟΣ ΔΙΑΦΑΝΕΙΩΝ