Στοιχεία Προγραμματισμού σε Γραφικό Περιβάλλον

Ξεκίνησε από iliasthes, 16 Μαρ 2010, 05:53:24 ΜΜ

« προηγούμενο - επόμενο »

iliasthes

Στα τελευταία μαθήματα αναπτύσσουμε με τους μαθητές μου, έναν απλό κειμενογράφο σε Visual Basic 6.0. Σε κάθε μάθημα προσθέτουμε και 2-3 δυνατότητες.  Αντιμετώπισα το εξής πρόβλημα. Προσθέτω ένα πλήκτρο Β για να κάνει έντονα τα γράμματα (φυσικά το ίδιο πρόβλημα υπάρχει και με τις υπόλοιπες μορφοποιήσεις I, U).
Το πρόβλημα είναι πως θα γίνει έντονο μόνο το επιλεγμένο κείμενο.

Πως θα συνδυάσω δηλαδή τη μέθοδο SelText με τη FontBold? Προσπάθησα με διάφορα κολπάκια, αλλά τζίφος.

Keep Growing

Ο Έρωτας (του Εκπ/κου Πληροφορικού) στ' αλώνια της καλδέρας (του υπνωτισμού).

Keep Growing

#2
ή με τις:

SelStart η θέση του χαρακτήρα που ξεκινά η επιλογή.
SelLength  το μήκος της επιλογής σε χαρακτήρες.

Sub SelectAllText(κείμενο As TextBox)

     κείμενο.SelStart = n 

     κείμενο.SelLength = Len (κείμενο.Text)

End Sub


και καλείς:

Private Sub κείνενοχ_GotFocus()

               SelectAllText (κείμενοχ).Font = New Font("Arial", 12, FontStyle.Bold)  δεν είμαι σίγουρος αν δουλεύει.

End Sub
Ο Έρωτας (του Εκπ/κου Πληροφορικού) στ' αλώνια της καλδέρας (του υπνωτισμού).

iliasthes

Το richtextBox υπάρχει στην visual basic expressedition 2008 που είναι δωρεάν, αλλά στο σχολείο έχουμε την visual basic 6.0.
ΤΗ δεύτερη πρόταση τη μελετάω. Ευχαριστώ για τη συμμετοχή πάντως :-)

pgrontas

Κάτι αντίστοιχο σίγουρα θα υπάρχει και στην VB6. Δεν την έχω εγκατεστημένη για να θυμηθώ ακριβώς.
Μπορεί να λέγεται και Rich Edit.
Ίσως πρέπει στο Project | Components ή References να επιλέξεις τα Microsoft Common Controls ή επακριβώς το Rich Edit.
Μου φαίνεται πάντως ευκολότερο έτσι.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

iliasthes

#5
Ναι δίκιο έχεις, μετά το θυμήθηκα. Απλά επειδή μέχρι τώρα το υλοποιούμε με textbox και υπάρχουν αρκετές υπορουτίνες που το χρησιμοποιούν, είναι κάπως άβολο να το αφήσουμε. Αυτό που σκέφτηκα, είναι να δημιουργήσω ένα "κρυφό" textbox όπου θα μεταφέρω το SelText και εκεί θα υλοποιώ τη FontBold και μετά θα το επαναφέρω στη θέση του SelText. Απλά επειδή είμαι σε Suse τώρα, θα το δοκιμάσω μια και καλή στην τάξη  :( . Πάντως αν θυμάμαι καλά έχει textbox και η vb6 και προσθέτεις το εργαλείο στο toolbox από εκεί που είπες. Γενικά αυτή η εφαρμογή με τον editor και έναν media player νομίζω είναι δυο εργασίες πολύ καλές που μπορούν να καλύψουν τη μισή χρονιά και δείχνουν και τα παιδιά πολύ ενδιαφέρον. Ενθουσιάζονται ειδικά όταν προσθέτεις μενού, λειτουργίες αποθήκευσης, ανοίγματος αρχείων κλπ. Είναι κανένας άλλος συναελφος που διδάσκει το μάθημα και έχει κάποια ιδέα για άλλη εφαρμογούλα;

Νίκος Αδαμόπουλος

Το κλασσικό όπου σε μία φόρμα σε ρωτάει αν θέλεις αύξηση με δύο κουμπιά: "Ναι" και "Όχι" και όταν πηγαίνεις πάνω στο πρώτο αυτό να φεύγει αλλάζοντας θέση...

Νίκος Αδαμόπουλος

Νομίζω ότι με το απλό TextBox οι μορφοποιήσεις εφαρμόζονται σε όλο το περιεχόμενο... Όντως θα χρειαστείς το Rich TextBox Control:

1. Right click on the tab which shows the VBtools (from where you added textbox).
2. Click on Components.
3. On Controls tab click Microsoft Rich TextBox Control. (επιλέγεις το τετραγωνάκι)
4. Click OK.
Now you will have a control named Rich Text Box in your tool box.

Νομίζω ότι ο κώδικας που ήδη θα έχεις θα είναι συμβατός και με το νέο control (δώσε το ίδιο όνομα ) - ίσως με κάποιες μικροαλλαγές...

iliasthes

Ευχαριστώ Νίκο και όλους για τις ιδέες σας. Τελικά τζάμπα αγχώθηκα, ίσα ίσα προσθέσαμε τις δυνατότητες Αντιγραφής, Αποκοπής, Επικόλλησης. Όπως πάντα ετοιμάζω υπερβολικά πολύ υλικό, έχοντας μια ιδανική ροή του μαθήματος στο μυαλό μου. Αυτό με το Ναι, Όχι το έχει και το βιβλίο και έχει και κάτι επιπλέον, μια λάμπα και δυο κουμπιά On Off. Αυτά όλα είναι καλά, αλλά τα παιδιά τις ξεπετάνε σε μισή ωρίτσα και το μάθημα είναι  δίωρο (δύο δίωρα κάθε βδομάδα το έχω). Οπότε εκτός από τα πρώτα μαθήματα (για λόγους εξοικείωσης με τα χειριστήρια και για να μπορείς να εισάγεις σε κάθε μάθημα και καινούρια πράγματα -συναρτήσεις, επανάληψη, κλπ-), μετά διαπίστωσα πως καλό είναι να δουλεύεις σε κάποιες πιο μεγάλες και "γνωστές" εφαρμογές. Πχ όσο βαρετή τους φαινόταν μια εφαρμογή για τον υπολογισμό του Μέσου όρου της βαθμολογίας, τόσο τους ενθουσίασε η αριθμομηχανή ή ο επεξεργαστής κειμένου. Ανεβαίνει η ψυχολογία τους.

iliasthes

#9
Είχατε δίκιο με το rixhtextbox είναι παιχνιδάκι αυτή η δυνατότητα. Έχει σχετικές μεθόδους: SelBold, SelItalic και SelUnderline. Ανεβάζω κι όλας τη μορφή που θα λάβει ο επεξεργαστής μετά το αυριανό μάθημα. Επειδή είμαστε ακόμα στα αρχικά μαθήματα είναι εύκολο με μια ματιά κάποιος να εντοπίσει τα αντικείμενα που υπάρχουν και τις μεθόδους που χρησιμοποιούμε, οπότε να χρησιμοποιήσει αυτό το αρχείο για τα πρώτα μαθήματα (περίπου 6-8 ώρες πιστεύω, ανάλογα το ενδιαφέρον των παιδιών, τις δυσκολίες που αντιμετωπίζετε με το εργαστήριο κλπ) δημιουργίας μιας σχετικής εφαρμογής.

Επισημαίνω πως υπάρχουν κάποια "λαθάκια" κα παραλείψεις, γιατί προσπαθώ να αποφεύγω τη χρήση δομών επιλογής ή επανάληψης, γιατί θεωρώ μπέρδεμα για τα παιδιά τη μία ώρα να τους διδάσκω την if στην pascal και την άλλη ώρα την if στη visual basic. Φοβάμαι μήπως τα μπερδέψουν. Ας μείνουν στο οπτικό κομμάτι του προγραμματισμού στην visual basic και σε μια απλή χρήση μεθόδων.

Α, ναι ευχαριστώ για την άμεση ανταπόκριση :-)

Υ.Γ. Όποιος κατεβάσει το project στον κώδικα στην Private Sub smnuOpen_CLick(),  στην τελευταία γραμμή να κάνει την παρακάτω αλλαγή: Από:frmTemplate.Caption= CommonDialog2.FileTitle  Σε: frmTemplate.Caption= CommonDialog1.FileTitle

amichail

Με τη φοβερή εμπειρία :) της δεύτερης χρονιάς που διδάσκω το μάθημα έχω τις εξής προτάσεις:
-μαθαίνουμε πρώτα τα controls. Δίνω ιδιαίτερο βάρος στο να δίνουν πάντα name.
-αρχίζουμε με τις απλές ιδιότητες π.χ. BackColor, Visible κοκ (π.χ. την άσκηση της λάμπας την έχω έτσι ώστε να σκοτεινιάζει και το δωμάτιο όταν κλείνει και να μένει μόνο ο διακόπτης)
-μετά προσθέτουμε απλές ασκήσεις π.χ. μετατροπής Farenheit σε Celsius, υπολογισμός τιμής εισιτηρίων
-μαθαίνουμε τα μενού - είναι πολύ εύκολα για τους μαθητές (διαλέγεις 5-6 εικόνες από μία τρέχουσα ταινία π.χ φέτος το Avatar και κάνουμε μενού όπου κάθε επιλογή ανοίγει μία νέα φόρμα με την αντίστοιχη εικόνα)
-κάνουμε την αριθμομηχανή, τον κειμενογράφο και τη ζωγραφική (το μοντέλο RGB με τις μπάρες)
ΔΕΝ ΜΑΘΑΙΝΟΥΜΕ ΜΕΤΑΒΛΗΤΕΣ ΠΑΡΑ ΜΟΝΟ ΑΦΟΥ ΤΙΣ ΜΑΘΟΥΝ ΣΤΟ ΔΟΜΗΜΕΝΟ
ΔΕΝ ΚΑΝΟΥΜΕ ΣΥΝΘΕΤΕΣ ΔΟΜΕΣ ΚΛΠ ΠΑΡΑ ΜΟΝΟ ΑΦΟΥ ΤΙΣ ΜΑΘΟΥΝ ΣΤΟ ΔΟΜΗΜΕΝΟ
-μαθαίνουμε την IF με προσοχή (π.χ. υπολογισμός του Δείκτη Μάζας Σώματος)
Στο Β τετράμηνο κάνω το εξής:
αφού έχουν κάνει αρκετή Pascal, επιλέγω με τη συνάδελφο που διδάσκει το Δομημένο Προγραμματισμό τις ίδιες ασκήσεις και τις κάνουμε αυτή σε Pascal πρώτα και μετά εγώ στη Visual Basic. Υπάρχει ένα ψιλομπέρδεμα (πχ πάνε και βάζουν END IF στην Pascal) αλλά τελικά πιστεύω ότι:
α) αντιλαμβάνονται καλύτερα την έννοια του προγραμματισμού (π.χ. είχα μαθήτριες που δεν έδιναν σημασία μέχρι που κατάλαβαν ότι τις ωφελεί και για τις πανελλήνιες)
β) κάνουμε επανάληψη και στο Δομημένο αφού τους ξαναθυμίζω πώς έλυσαν την άσκηση στην Pascal
Συμφωνώ όμως ότι το να διδάσκει και τα δύο μαθήματα ο ίδιος καθηγητής επιτείνει τη σύγχυση των μαθητών.

Έχω μαζέψει γύρω στις 30 ασκήσεις. Στο http://eclass.sch.gr/courses/T245117/ , στο Υλικό μαθήματος, υπάρχουν  αυτές για τις οποίες έχω προλάβει να γράψω εκφωνήσεις
Για μένα θα πω μόνο ότι είμαι ο τύπος του δασκάλου που αν κάνω ένα μάθημα για 50η φορά θα αλλάξω για 52η φορά τις σημειώσεις μου