IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Turbo Pascal Discussion :

[TP] Equivalent de l'instruction read en mode graphique [Non suivi]


Sujet :

Turbo Pascal

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 4
    Points : 5
    Points
    5
    Par défaut [TP] Equivalent de l'instruction read en mode graphique
    bonjour,j'aimerai avoir l'équivalent de l'instruction read ou readln du mode texte en turbo pascal dans le mode graphique pascal.En général je voudrais savoir comment faire afin qu'un utilisateur puisse entrer des données dans un programme pascal utilisant le mode graphique.

  2. #2
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 465
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 465
    Points : 4 312
    Points
    4 312
    Par défaut
    Les instruction read (à proscrire ) et readln marchent en mode graphique. Sois plus précis dans tes questions

  3. #3
    Membre habitué
    Avatar de Stormy_Ordos
    Profil pro
    Expert sécurité informatique
    Inscrit en
    Mars 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 91
    Points : 166
    Points
    166
    Par défaut
    Bonjour,

    L'instruction Readln fonctionne bien en mode graphique, mais a pour effet de superposer des caractères textes aux pixels, ce qui gâche un peu l'effet.
    Avec l'unité graph tu n'as pas d'autre solution que d'implémenter toi-même ta procédure Readln pour le mode graphique.

    Sinon, un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    procedure InLn(X, Y, PoliceSize : integer; var Out : String);
                                            {A noter que les valeurs en X et
                                             Y employées sont à modifier selon
                                             la fonte.}
    const Size = 8;                         {la taille de la police .CHR employée
                                             est importante car elle permet
                                             d'aligner le curseur sur le caractère
                                             actif. Par défaut un caractère BGI
                                             est une matrice de 8x8 pixels mais
                                             ça peut varier(TriplexFont,Smallfont
                                             etc...)}
     
    var Nini  : string;
        Key   : char;
        i     : integer;
     
    begin
         Setcolor(15);
         Nini:='';
         Moveto(X,Y);
         Outtext('Entrez le N initial : ');   {la phrase est un résidu}
         OuttextXY(X+180,Y,'_');
         i:=0;
         Setfillstyle(solidfill,0);
         Repeat
               Key:=readkey;
               If ((key<>#13) and (Key<>#27)) then
               begin
                    Bar(X+180,Y-10,GetmaxX,Y+15);   {Note : cette ligne est a modifier
                                                     selon tes besoins évidemment}
                    If (Key=#8) then
                    begin
                         If (i>=1) then dec(i);
                         OuttextXY(X+180+(i*PoliceSize),Y,'_');
                         Nini:=Copy(Nini,1,length(Nini)-1);
                    end
                    else
                    begin
                         inc(i);
                         OuttextXY(X+180+(i*PoliceSize),Y,'_');
                         Nini:=Nini+Key;
                    end;
               end;
               OuttextXY(X+180,Y,Nini);
               If (key=#27) then Nini:='';
         Until ((key=#27) or (key=#13));
         Out:=Nini;
    end;
    Souvenirs d'un post précédent
    a++

  4. #4
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    Utiliser ReadKey est le mieux mais il faut en général vider le buffer du clavier avant de commencer afin d'évier des surprises!

  5. #5
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    Voici un de mes vieux code (il a 2 ans. ha les debut !!!).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    function lire(col,lin,colf:integer) : string;
     
    var
     
     
       z: char;
     
    begin
    nom:='';
    repeat
        z:=readkey;
        case z of
           'a'..'z','A'..'Z','-',',','.' : nom:=nom+z;
                             chr(ord(8)) : if nom<>'' then nom:=copy(nom,1,length(nom)-1);
        end;
        setfillstyle(1,white);
        bar(col-2,lin-2,colf-2,lin+7);
     
        outtextxy(col,lin,nom);
     until ord(z)=13;
    end;
    a l'epoque elle etait toutes simple, mais je ma modifier a ma volonte et selon l'utilisation.

    J'espere qu'elle te servira autant quelle l'a fait avec moi.

Discussions similaires

  1. Equivalent d'une instruction
    Par lesultan2007 dans le forum VB.NET
    Réponses: 2
    Dernier message: 04/01/2010, 21h49
  2. Equivalent de l'instruction rdtsc
    Par rida_inf dans le forum x86 32-bits / 64-bits
    Réponses: 1
    Dernier message: 17/05/2009, 15h27
  3. Réponses: 1
    Dernier message: 21/05/2008, 19h18
  4. equivalent de l'instruction Delay(?).
    Par bonbino dans le forum C++Builder
    Réponses: 17
    Dernier message: 24/10/2006, 23h44
  5. [Language]Equivalent à l'instruction Delphi "with"
    Par FloMo dans le forum Langage
    Réponses: 17
    Dernier message: 22/12/2005, 00h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo