Μέλας Κύων Δημοσ. 25 Νοεμβρίου 2005 Δημοσ. 25 Νοεμβρίου 2005 είμαι σχετικά νέος στην Τurbo Pascal και ψάχνω να βρώ εντολή ή συνάρτηση οπου με την οποία σε ένα πεδίο καταχώρησης (π.χ. εγγραφής) να περιορίζω από μόνος μου το μέγεθος του πεδίου σε χαρακτήρες. Παράδειγμα : στο πεδίο "Ονομα : __________ το string που θα καταχωρήσω να παίρνει αποκλειστικά πχ 10 χαρακτήρες κι όχι παραπάνω, δηλ να μην προχωρά ο κέρσορας παραπάνω απο την 10η θέση του πεδίου καταχώρησης. Πως γίνεται βρε παιδιά?
alkisg Δημοσ. 26 Νοεμβρίου 2005 Δημοσ. 26 Νοεμβρίου 2005 Ή φτιάχνεις δικιά σου συνάρτηση με χρήση της readkey ή πας σε Turbo Vision. Γενικά δεν αξίζει τον κόπο να το παιδεύεις πλέον σε DOS, όταν με το καλό προχωρήσεις στον προγραμματισμό θα πας σε visual περιβάλλοντα που τα έχουν έτοιμα αυτά που θες...
takis456 Δημοσ. 26 Νοεμβρίου 2005 Δημοσ. 26 Νοεμβρίου 2005 Θα πρέπει να φτιάξεις ένα loop και να διαβάζεις τους χαρακτήρες μέσω της readkey και να ελέγχεις εάν έχεις περάσει το όριο. Μικρός ασχολιόμουν πολύ με pascal και είχα φτιάξει μια βιβλιοθήκη με τέτοιες συναρτήσεις. Αν θες πες μου να την κάνω upload..
Μέλας Κύων Δημοσ. 27 Νοεμβρίου 2005 Μέλος Δημοσ. 27 Νοεμβρίου 2005 Θα πρέπει να φτιάξεις ένα loop και να διαβάζεις τους χαρακτήρες μέσω της readkey και να ελέγχεις εάν έχεις περάσει το όριο. Μικρός ασχολιόμουν πολύ με pascal και είχα φτιάξει μια βιβλιοθήκη με τέτοιες συναρτήσεις. Αν θες πες μου να την κάνω upload.. Takis456 Αν μου έδινες ένα παράδειγμα τέτοιων συναρτήσεων από τη βιβλιοθήκη σου θα μου έλυνες τα χέρια.. ;-)
takis456 Δημοσ. 27 Νοεμβρίου 2005 Δημοσ. 27 Νοεμβρίου 2005 Λοιπόν έβαλα τη βιβλιοθήκη σαν attachment.. απλά κάνεις unzip το αρχείο και βάζεις το takis.tpu στο folder που έχεις την pascal. Για να το χρησιμοποιήσεις γράφεις uses takis; Παράδειγμα χρήσης: > Program Test; Uses crt,takis; Var s:string; i:integer; Begin ClrScr; WriteXY(2,2,'Onomataki: '); OL(13,32,2,#178); I:=WRead(13,2,7,20,s,#178); End. Δεν έχω γράψει help με όλες τις συναρτήσεις που περιέχονται στο tpu.. οπότε θα πρέπει να περιμένεις λίγο μέχρι να το γράψω.. για αυτές που έχω χρησιμοποιήσει έχουν την εξής σύνταξη: Procedure WriteXY(x,y:integer;s:string); <== Γράφει το μήνυμα S στις συντεταγμένες X,Y. Procedure OL(x1,x2,y:Byte;ch:char); <== Φτιάχνει οριζόντια γραμμή από τις συντεταγμένες X1,Y μέχρι X2,Y χρησιμοποιώντας τον χαρακτήρα ch. Function WRead(X,Y,txc,lim:Byte;Var W:String;cr:Char):Byte; <== Επιστρέφει 0 αν πατήσει enter ο χρήστης αλλιώς επιστρέφει 1(αν πατήσει Esc). X,Y => συντεταγμένες που θα γράφει ο χρήστης, txc => το χρώμα των γραμμάτων, lim => το όριο των χαρακτήρων, s => μεταβλητή στην οποία αποθηκεύεται το μήνυμα του χρήστη, cr => ο χαρακτήρας που υπάρχει από πίσω (το χρησιμοποιώ για να φτιάχνω το bacgrkound όταν πατήσουν το backspace) Άλλες που μπορούν να σε ενδιαφέρουν είναι η NRead που διαβάζει μόνο αριθμούς όπως επίσης κανά 2 που δημιουργούν παραθυράκια: Procedure Frame(X1,Y1,X2,Y2:Byte); Procedure TFrame(X1,Y1,X2,Y2:Byte;S:String); Στην δεύτερη ότι έχεις γράψει στο S το βάζει σαν τίτλο. TAKIS.zip
Μέλας Κύων Δημοσ. 28 Νοεμβρίου 2005 Μέλος Δημοσ. 28 Νοεμβρίου 2005 Τακις456 έκανες φοβερή δουλειά! Ενα μεγάλο ευχαριστώ σε σένα!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.