Προς το περιεχόμενο

HELP για Τurbo Pascal 5.5..!!


Μέλας Κύων

Προτεινόμενες αναρτήσεις

Δημοσ.

είμαι σχετικά νέος στην Τurbo Pascal και ψάχνω να βρώ εντολή ή συνάρτηση οπου με την οποία σε ένα πεδίο καταχώρησης (π.χ. εγγραφής) να περιορίζω από μόνος μου το μέγεθος του πεδίου σε χαρακτήρες.

Παράδειγμα : στο πεδίο "Ονομα : __________ το string που θα καταχωρήσω να παίρνει αποκλειστικά πχ 10 χαρακτήρες κι όχι παραπάνω, δηλ να μην προχωρά ο κέρσορας παραπάνω απο την 10η θέση του πεδίου καταχώρησης. Πως γίνεται βρε παιδιά?

Δημοσ.

Ή φτιάχνεις δικιά σου συνάρτηση με χρήση της readkey ή πας σε Turbo Vision.

Γενικά δεν αξίζει τον κόπο να το παιδεύεις πλέον σε DOS, όταν με το καλό προχωρήσεις στον προγραμματισμό θα πας σε visual περιβάλλοντα που τα έχουν έτοιμα αυτά που θες...

Δημοσ.

Θα πρέπει να φτιάξεις ένα loop και να διαβάζεις τους χαρακτήρες μέσω της readkey και να ελέγχεις εάν έχεις περάσει το όριο. Μικρός ασχολιόμουν πολύ με pascal και είχα φτιάξει μια βιβλιοθήκη με τέτοιες συναρτήσεις. Αν θες πες μου να την κάνω upload..

Δημοσ.
Θα πρέπει να φτιάξεις ένα loop και να διαβάζεις τους χαρακτήρες μέσω της readkey και να ελέγχεις εάν έχεις περάσει το όριο. Μικρός ασχολιόμουν πολύ με pascal και είχα φτιάξει μια βιβλιοθήκη με τέτοιες συναρτήσεις. Αν θες πες μου να την κάνω upload..

 

Takis456 Αν μου έδινες ένα παράδειγμα τέτοιων συναρτήσεων από τη βιβλιοθήκη σου θα μου έλυνες τα χέρια.. ;-)

Δημοσ.

Λοιπόν έβαλα τη βιβλιοθήκη σαν 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

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...