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] Sortie d'initgraph + serpent [Non suivi]


Sujet :

Turbo Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2003
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 63
    Par défaut [TP] Sortie d'initgraph + serpent
    salut c'est encore moi et mon serpent
    j'ai essyé apres avoir utilisé initgraph et closegraph dans un programme de revenir en mode crt pour ecrire des valeurs avec writeln, qui malheuresement ne s'afficheent pas ,tout l'ecran est blanc!? pourquoi?!
    et pourquoi chaque fois que j'execute un programme en mode graph, a la fin de l#executionau lieu de revenir sous forme de fenetre comme au depart, turbo pascal passe en plein ecran!?!?

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 466
    Par défaut
    Pour revenir en mode crt, après l'utilisation du mode graphique, il faut utiliser la procédure RestoreCrtMode, qui réinitialise le mode graphique. Si tu ne eux pas passer par cette procédure, un peu d'asm fait l'affaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    asm
      MOV AX, 3;
      INT 10h;
    end;
    Lorsque tu passes en mode graphique, en général le programme passe en plein écran. Le programme ne repasse pas forcément en fenêtre après la fin du mode graphique, mais ceci dépend de la version de Windows que tu possèdes... Plusieurs comportements différents peut-être trouvés

  3. #3
    Membre averti
    Inscrit en
    Décembre 2003
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 63
    Par défaut
    merci beaucoup pour le tric, ca me permet de verifier a la fin les valeurs prises par certaines variables enregistrées a l'aide de pointeur, bien que j'ai pas encore vraiment lu le chapitre sur les assembleurs.
    mais dites voyez vous une erreur dans le code suivant qui pourrait avoir pour resultat que rien ne se produis a l'ecran quand la procedure correspondante est appelé? :
    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
    procedure drawqueue;
    var stop: integer;
        color1 : word;
      begin
        color1:=getcolor;
        setcolor(black);
        outtextxy(10,10,'drawqueue');
        stop:=0;
          rect:=first ;
          repeat
     
            if (rect =last) then stop:=1;
            rectangle(rect^.x1,rect^.y1,rect^.x2,rect^.y2);
            if first=last then break;
            if rect<>last then
            rect:=rect^.next;
          until stop=1;
         setcolor(color1);
      end;
    procedure deletequeue;
      var color1,word1 : word;
         stop:integer;
      begin
        color1:=getcolor;
        setcolor(black);
              stop:=0;
          rect:=first ;                      {
          word1:=getcolor;
            setcolor(blue);
            for m:=1 to 40 do
            line (m,0,m,30);
            setcolor(word1);
     
          outtextxy(10,20,'drawqueue');     }
          repeat
     
            if (rect =last) then stop:=1;
            rectangle(rect^.x1,rect^.y1,rect^.x2,rect^.y2);
            if first=last then break;
            if rect<>last then
            rect:=rect^.next;
          until stop=1;
     
     
        setcolor(color1);
      end;
    Balises code ajoutées par Alcatîz - Merci d'y penser

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 466
    Par défaut
    Rien ne s'affiche en mode graphique ou en mode texte ? En mode graphique, tu utilises outtextexy donc ca s'affiche bien, à moins que le fond soit noir (puisque tu écris en noir)...

  5. #5
    Membre averti
    Inscrit en
    Décembre 2003
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 63
    Par défaut
    mon probleme ce n'est pas l'affichage des textes avec outtextxy, mais des rectangle avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rectangle(rect^.x1,rect^.y1,rect^.x2,rect^.y2);
    rien ne se dessine a l'ecran et pourtant a la fin du programme lorsque je revient en mode crt je verifie que ma chaine définie comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    type psquare=^square;
           square = record
           x1,y1,x2,y2:integer;
           coin :integer;
           dir : char;
           next: psquare;
           prev :psquare;
         end;
    a bien été allongée, dela me donne des resultats normaux, je veux dire la chaine a bien plusieurs element mais aucun n'est dessiné a l'ecran(ces elements sont les coordonnées necessaires pour dessiner les rectangles qui sont sensés me servir a allonger mon serpent au fur et a mesure qu'on joue + deux pointeurs vers les coordonnés suivantes et precedentes..)
    mais quand je lance le programme seul la tete se dessine , on dirait que cette partie du programme n'est pas executée!

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 466
    Par défaut
    Quelle est la couleur de ton background ? Si c'est noir, c'est normal que tu voies rien...

    Peut-être veux-tu aussi dessiner des rectangles pleins, auquel cas, c'est bar et non rectangle qu'il faut utiliser...

  7. #7
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 043
    Billets dans le blog
    2
    Par défaut
    Bonjour !
    Citation Envoyé par chrysmac2003
    on dirait que cette partie du programme n'est pas executée!
    Tu peux essayer de faire tourner ton programme avec le debugger. Tu pourrais suivre son exécution pas à pas.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  8. #8
    Membre averti
    Inscrit en
    Décembre 2003
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 63
    Par défaut
    maintenant que tu en parles cest vrai que j'ai jamais utilisé cette option debugger la, ce sera le moment d'apprendre
    et je vais essayé bar tout de suite.

Discussions similaires

  1. Réponses: 16
    Dernier message: 18/07/2003, 17h16
  2. Comment rediriger la sortie vers /dev/null
    Par dclink dans le forum C
    Réponses: 4
    Dernier message: 24/06/2003, 18h23
  3. [LG]Entrées et sorties redirigée
    Par Lady dans le forum Langage
    Réponses: 17
    Dernier message: 10/05/2003, 18h33
  4. Rediriger le plux de sortie
    Par Groove dans le forum C
    Réponses: 5
    Dernier message: 17/04/2003, 17h16
  5. récupérer la valeur de sortie d'un thread
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2002, 11h28

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