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

Free Pascal Discussion :

Unité Graph sous Windows 7 x64


Sujet :

Free Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Transgarp
    Profil pro
    Inscrit en
    Février 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 99
    Par défaut Unité Graph sous Windows 7 x64
    Bonjour,

    J'ai un vieux programme TP7 qui se promène entre le mode texte et le mode graph et qui fonctionne bien actuellement seulement en utilisant DosBox 0.74
    Mais qui fonctionne dans un seul sens avec Free Pascal sans DosBox : oui je peux entrer en mode graphique, mais quand je reviens en mode texte, tous les caractères sont illisibles

    J'ai bien écrit CloseGraph et RestoreCRTMode à la fin du programme
    Mais ça ne change rien.

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 173
    Billets dans le blog
    9
    Par défaut
    De mon côté (Windows 7 x32) le code suivant s'exécute correctement :

    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
     
    program Graph_01;
     
    {$APPTYPE CONSOLE}
    {$MODE DELPHI}
     
    uses
      Graph, WinCrt;
     
    var
      Gd, Gm: smallInt;
     
    begin
      WriteLn('Passage au mode graphique dans 3 secondes.');
      Delay(3000);
     
      Gd := Detect;
      InitGraph(Gd, Gm, '');
     
      if GraphResult = grOk then
      begin
        SetColor(LightGray);
        OutText('Retour au mode texte dans 3 secondes.');
        Delay(3000);
        CloseGraph;
      end;
     
      WriteLn('Fin du programme dans 3 secondes.');
      Delay(3000);
    end.

  3. #3
    Membre confirmé Avatar de Transgarp
    Profil pro
    Inscrit en
    Février 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 99
    Par défaut
    Ton code fonctionne merveilleusement bien sur mon ordi.
    Mais pratiquement inutilisable vu qu'en mode texte j'utilise des GotoXY pour placer le texte et beaucoup d'autres procédures et fonctions de l'unit CRT qui est incompatible avec l'unit WinCRT
    J'utilise souvent la procédure ClrScr pour nettoyer l'écran et ammener le curseur tout en haut à gauche

    A moins que l'unit WinCRT possède des fonctions et procédures équivalentes.

    En modifiant ton code, La phrase ne s'écrit pas complètement à la sortie du mode graphique

    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
    program Graph_01;
     
    {$APPTYPE CONSOLE}
    {$MODE DELPHI}
     
    uses
      Crt,Graph,WinCrt;
     
    var
      Gd, Gm: smallInt;
     
    begin
      WriteLn('Passage au mode graphique dans 3 secondes.');
      Delay(3000);
     
      Gd := Detect;
      InitGraph(Gd, Gm, '');
     
      if GraphResult = grOk then
      begin
        SetColor(LightGray);
        OutText('Retour au mode texte dans 3 secondes.');
        Delay(3000);
        CloseGraph;
      end;
      clrscr; 
      GotoXY(1,20); WriteLn('Fin du programme dans 3 secondes.');
      WriteLn('Fin du programme dans 3 secondes.'); 
      Delay(3000);
    end.

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 173
    Billets dans le blog
    9
    Par défaut
    Je pense à une autre solution qui serait de remplacer l'unité Graph par l'unité WinGraph.
    J'ai fait l'essai avec le code que tu as posté. Je n'ai changé que cette ligne :

    Et, surprise, ça fonctionne ! (Je joins un exécutable.)

    Je ne sais pas si cela marcherait avec ton programme mais ça vaut peut-être la peine d'essayer. Les deux unités ayant une interface presque identique, il n'y aurait peut-être que quelques modifications à faire. Et les possibilités de WinGraph sont bien supérieures !
    Fichiers attachés Fichiers attachés

  5. #5
    Membre confirmé Avatar de Transgarp
    Profil pro
    Inscrit en
    Février 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 99
    Par défaut
    Finalement, j'ai trouvé l'unit WinGraph sur le web.
    Cà fonctionne parfaitement avec le petit programme.
    Mais cà bloque dans mon gros programme quand j'entre dans la fenêtre graphique.
    Je dois quitter par la fenêtre texte

  6. #6
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 173
    Billets dans le blog
    9
    Par défaut
    Le mieux, c'est peut-être de continuer à utiliser DosBox, non ?

    S'il y a une application que tu utilises régulièrement, tu peux te servir d'un fichier de commande. Pour ma part j'en ai quelques-uns que j'ai placés directement dans mon menu Démarrer. Voici le contenu de Vikings.bat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    cd C:\Program Files\DOSBox-0.74\
    DOSBox -noautoexec C:\Jeux\Vikings\Vikings.exe
    exit

Discussions similaires

  1. [Free Pascal] Unité Graph sous Mac OS.X
    Par KIORPR dans le forum Free Pascal
    Réponses: 0
    Dernier message: 01/08/2012, 10h43
  2. [Free Pascal] Unité Graph sous FreePascal et/ou Lightweight-IDE 0.9.4+
    Par KIORPR dans le forum Free Pascal
    Réponses: 4
    Dernier message: 27/07/2012, 10h35
  3. [Eclipse 3.2] Problème d'affichage sous Windows 7 x64
    Par dark.jabberwock dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 20/01/2012, 10h52
  4. IIS sous Windows 2003 X64 et Oracle 10g X64
    Par commit dans le forum Oracle
    Réponses: 0
    Dernier message: 10/10/2007, 19h47
  5. [FreePascal] Unité Graph sous Linux
    Par fire.stone dans le forum Free Pascal
    Réponses: 2
    Dernier message: 18/05/2005, 10h13

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