ΜICROSOFT VISUAL STUDIO 2008 Eργ 1: Ανάπτυξη απλής εφαρµογής: Solutions, Projects, GUI, Events, Debugging Εισαγωγή Visual Basic 2008 Eργαλείο ανάπτυξης εντυπωσιακών εφαρµογών στα Windows, στο Web, φορητά κ.α. Μπορείτε να ενσωµατώσετε πληροφορίες από βάσεις δεδοµένων, να δηµιουργήσετε λύσεις για το ιαδίκτυο αλλά και να γράψετε προγράµµατα µε την Microsoft Visual C++, την C# τον Developer 2008 κ.α. Στο Visual Studio τα υπο ανάπτυξη προγράµµατα, µιας και µπορεί να περιέχουν πολλά ανεξάρτητα στοιχεία, ονοµάζονται: Έργα (projects) *.vbproj Λύση για µια εργασία Λύσεις (solutions) *.sln Λύση για πολλά έργα (Όταν µια λύση αφορά ένα µόνο έργο τότε έργα και λύση είναι ισοδύναµα) H Visual Basic 2008 αναφέρεται σαν VB 9 (µικροσκοπικό 9 στο εικονίδιο του αρχείου λύσης) Ανοίξτε την λύση Lucky7.sln και παρατηρήστε το περιβάλλον του Visual Studio Περιβάλλον Γραµµή Μενού / Μenu Bar Βασική Γραµµή Εργαλείων /Standard ToolBar (εκτέλεση µε το βελάκι ) στην βάση της οθόνης υπάρχει η Γραµµή Εργασιών/Τaskbar των windows ώστε να εναλλάσσεστε µεταξύ των διαφόρων στοιχείων του Visual Studio Κύρια εργαλεία (View) Designer Solution Explorer [1]
Properties Toolbox Server Explorer Object Browser Eκτέλεση προγράµµατος Debug/ Start Debugging (µεταγλώτισση σε Assembly, προετοιµάζει για debugging και εκτελεί /Start Debugging βλέπετε το εικονίδιο στο taskbar των windows- ) Φόρµα Form1.vb (Design) 1. Αλλαγή της φόρµας (π.χ. µεγάλωµα,προσθήκη άλλων στοιχείων ) 2. Καρτέλα Τοolbox (χειριστήρια για Windows) Στην φόρµα υπάρχουν 7 στοιχεία (2 button, 4 label & 1 PictureBox). Άσκηση 1 Α) ιορθώστε µε την βοήθεια του debugger τα λάθη ώστε το παιχνίδι να λειτουργεί σωστά. [2]
Λάθη: Συντακτικό σφάλµα ή σφάλµα µεταγλωτιστή (syntax error ή compiler error) π.χ. truuue Σφάλµα χρόνου εκτέλεσης (runtime error) π.χ. ανάγνωση αρχείου που δεν υπάρχει Λογικό σφάλµα π.χ. ανθρώπινο λάθος Debugging Form1.vb Γραµµή εργαλείων αποσφαλµάτωσης: View/Toolbars/Debug Παρατηρείστε τον κώδικα στο αρχείο Form1.vb Οι εντολές που γενικότερα, προσεγγίζουν τον προφορικό λόγο είναι συγκεντρωµένες σε διαδικασίες / subroutines : Private Sub End End Sub common/all, µπλέ, εσοχή Οι διαδικασίες εκτελούνται όταν λάβουν χώρα κάποια συµβάντα π.χ. το πάτηµα ενός κουµπιού. Στην φόρµα µας υπάρχουν 3 διαδικασίες: όταν πατιέται/click τo Button1 (το κουµπί µε κείµενο Spin), όταν πατιέται τo Βutton2 (το κουµπί µε κείµενο End) και όταν φορτώνεται/load η φόρµα. Ορισµός σηµείου διακοπής breakpoint Mετακινήστε το δείκτη του ποντικιού στην ένδειξη περιθωρίου (η αριστερή γκρί κάθετη γραµµή στον επεξεργαστή κώδικα) δίπλα από µια εντολή πχ. την εντολή Νumber3.Text=(Int(Rnd)*10).ToString και πατήστε στην γραµµή για να ορίστε σηµείο διακοπής / breakpoint (µε 2 ο κλικ στο ίδιο σηµείο αναιρείται το breakpoint) (που εµφανίζεται µε κόκκινο χρώµα). [3]
Πατήστε το κουµπί Start debugging της Βασικής γραµµής Εργαλείων. Το πρόγραµµα εκτελείται και εµφανίζεται η φόρµα Form1. Πατήστε το κουµπί Spin της φόρµας. Η Visual Basic ανοίγει τον επεξεργαστή κώδικα στην εντολή που επιλέξατε που είναι ένα βελάκι και µε κίτρινο χρώµα. To Visual Studio βρίσκεται σε κατάσταση debugging ώστε να ελένξτε το πρόγραµµα. Τοποθετήστε το δείκτη του ποντικιού πάνω στο Νumber1.Text. Εµφανίζεται π.χ. Νumber1.Text «7». Σε debug mode µπορείτε να δείτε τις τιµές µεταβλητών ή ιδιοτήτων κρατώντας τον δείκτη του ποντικιού στο επιθυµητό σηµείο. Στο Νumber3.Text εµφανίζεται το «0» δεν έχει καταχωρηθεί τιµή ακόµη Πατήστε το κουµπί Step Into(F11) της γραµµής εργαλείων αποσφαλµάτωσης που εκτελεί την επόµενη εντολή της διαδικασίας συµβάντος κ.ο.κ. Σε debugging mode ( ) από την µπάρα του µενού επιλέξτε Debug/Windows/Autos για να µπορείτε να βλέπετε στο Παράθυρο Αutos (κάτω αριστερά) τις τιµές όλων των µεταβλητών ή των ιδιοτήτων και συνεχίστε..ή Μπορείτε να παρακολουθείτε τις µεταβλητές που εσείς επιθυµείτε µέσω ενός ή περισσοτέρων (µέχρι 4) παραθύρων Παρακολούθησης (watch) επιλέγοντας από την µπάρα του µενού Debug/Windows/Watch/Watch1 και τοποθετώντας στο παράθυρο Watch1 π.χ. το PictureBox1.Visible = False είτε σέρνοντάς το εκεί, είτε µε δεξί κλίκ και Add Watch για να τερµατίσετε πατήστε Stop Debugging Ορισµός breakpoint µε το ποντίκι στο σηµείο που µας ενδιαφέρει να σταµατήσουµε την ροή του προγράµµατος και να δούµε τιµές/ιδιότητες Start debugging Step Into (Debug/Windows/Autos : µεταβλητές/ιδιότητες) (Debug/Windows/Watch/Watch1) ( εξί κλικ στις επιθυµητέες µεταβλητές και add watch) Stop debugging [4]
Φόρµα Form1.vb (Design) & Ιδιότητες Αντικειµένων Κάθε αντικείµενο της φόρµας (button,label ) έχει µια ιδιότητα -που καθορίζεται κατά την σχεδίαση ή/και -µέσα στο κώδικα, ώστε να αποδοθεί η ιδιότητα, ενώ το πρόγραµµα εκτελείται Μερικές ιδιότητες των αντικειµένων της φόρµας µας είναι οι παρακάτω: Οι ιδιότητες µπορεί να είναι ορατές ή αόρατες π.χ.µια ετικέτα έχει ~ 60 ιδιότητες (2 στήλες όνοµα-ρύθµιση) Categorized/Alphabetical Κατηγορίες (µορφή διάρθρωσης +/-) ή Αλφαβητικά Font Forecolor (Πτυσσόµενο πλαίσιο καταλόγου Αντικειµένων) [5]
Αλλαγή κώδικα Form1.vb Τυχαίοι αριθµοί µεταξύ του 0..9 Rnd() - δίνει ένα τυχαίο αριθµό µεταξύ του 0 και του 1 π.χ. 0.145789 Rnd () *10 1,45789 Int ( Rnd()*10 ) 1 CStr(Int(Rnd() * 10)) 1 Randomize -χρήση του ρολογιού του συστήµατος- στην φόρµα Αλλαγή κώδικα 'if any number is 7 display picture and play sound If (Number1.Text = "7") Or (Number2.Text = "7") Or (Number3.Text = "7") Then PictureBox1.Visible = True Beep() End If File/SaveAll. Άσκηση 1 Β) Προσθέστε στη φόρµα ένα TextBox που δεν µπορεί ο χρήστης να γράψει. Αρχικά θα έχει τιµή 0 και για κάθε «7» που θα πετυχαίνει ο χρήστης θα προστίθενται 10 πόντοι. Σε περίπτωση που πετύχει τρία «7» τότε θα προστίθενται και άλλοι 100 πόντοι. (σύνολο πόντων στα 3 επτάρια 100+3*10=130) Επιλέγουµε από το Toolbox τo control Textbox και το σέρνουµε πάνω στην φόρµα form1 (σε design mode). Αυτοµάτως τo όνοµα του control που προσαρτάται στην φόρµα είναι Textbox1 (αν θέλουµε το αλλάζουµε). Ελένξτε και αποδώστε τιµές στις ιδιότητές του. (π.χ. ιδιότητα ReadOnly) Προγραµµατίστε κατάλληλα τα ζητούµενα Θα χρειαστείτε να ορίστε ίσως µεταβλητές αµέσως µετά τον ορισµό της κλάσης π.χ. Public Class Form1 Dim Spins As Integer Dim Points As Integer [6]
Άσκηση 1 Γ) Όταν ο χρήστης πατήσει 10 φορές το spin να εµφανίζεται ένα µήνυµα µε τους πόντους του και να απενεργοποιείται το κουµπί «spin». Η εντολή MsgBox( "Your points are:" ) Εµφανίζει µια µικρή φόρµα µε το µήνυµα Your points are: και ένα κουµπί ΟΚ. Ο τίτλος της φόρµας είναι ο τίτλος της λύσης (Lucky7), µιας και δεν έχει προδιοριστεί κάτι άλλο π.χ. «GameOver Η γενικότερη µορφή της εντολής είναι: Κουµπί_που_πατήθηκε = MsgBox(Μήνυµα, Κουµπιά, Τίτλος) π.χ. MsgBox( "Your points are:" & CStr(Points) ) 'δεν ορίζει κουµπιά & τίτλο ή MsgBox("Your points are:" & CStr(Points),, "GameOver") 'ορίζει τίτλο Άσκηση 1 ) Προσθέστε στη φόρµα ένα κουµπί «Restart» πού όταν θα το πατάει ο χρήστης θα µηδενίζονται οι πόντοι του, θα µηδενίζονται οι 10 προσπάθειες spin (από το ζητούµενο Γ) και θα ενεργοποιείται (αν έχει απενεργοποιηθεί) το κουµπί «spin» Επιλέγουµε από το Toolbox τo control Βutton και το σέρνουµε πάνω στην φόρµα form1 (σε design mode). Αυτοµάτως τo όνοµα του control που προσαρτάται στην φόρµα είναι Button3 ( µιας και υπάρχουν ήδη τα Button1 & Button2). Ελένξτε και αποδώστε τιµές στις ιδιότητές του π.χ. ιδιότητα Text. Για να προγραµµατίστε την διαδικασία πατήµατoς του Button3 κάντε διπλό κλικ πάνω του και δηµιουργείται αυτοµάτως το σώµα της, αµέσως µετά την διαδικασία φορτώµατος Sub Form1_Load της φόρµας: Private Sub Button3_Click(ByVal sender As System.Object... End Sub Eκτελέσιµο αρχείο Το εκτελέσιµο αρχείο Lucky7.exe µέσα στο φάκελλο Lucky7, αφορά την µη διορθωµένη έκδοση λύσης. Τώρα που διορθώθηκε/συµπληρώθηκε από εσάς, το νέο εκτελέσιµο θα το βρείτε µέσα στο φάκελο Lucky7/bin/debug *.exe (debug build αυτόµατα στο bin/debug / release build βελτιωµένα στο bin/release Build/Rebuild Lucky7 ηµιουργία νέου project [7]
File/New Project Windows Forms Applications Name: ΜyLucky7 Location: C:\... Solution Name:ΜyLucky7 OK (επιλογή έκδοσης του πλαισίου Εφαρµογών.NET Framework 3.5) uncheck create directory for solution => ηµιουργείται NEA φόρµα µε όνοµα Form1 στην οποία µπορείτε να προσαρτείστε και να προγραµµατίστε ότι επιθυµείτε [8]