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][Mode Graphique]SetActivePage


Sujet :

Turbo Pascal

  1. #1
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Points : 4 006
    Points
    4 006
    Par défaut [TP][Mode Graphique]SetActivePage
    Voilà, j'ai écrit un petit exemple pour apprendre à utiliser les fonctions SetActivePage et SetViewPage.

    C'est assez simple. A l'aide de la commande Rectangle, je dessine un rectangle dans la page active, ensuite un autre rectangle mais cette fois dans une autre page. J'affiche la seconde page (sans problème) mais lorsque j'affiche la presmière page, je vois un bout de la seconde (l'image semble décalée!!)

    Le code ressemble à ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    (* On est déjà en mode graphique *)
    SetActivePage(0);
    Rectangle(70,80,120,150);
    SetActivePage(1);
    Rectangle(50,50,100,100);
    SetViewPage(1);
    readln; (* On appuie sur une touche pour voir le contenu de la Page 0 *)
    SetViewPage(0); (* Ici, à l'extrême gauche de l'écran, on voir un bout du deuximème rectangle, celui qu'on a dessiné dans la page 1!*)
    SetViewPage(0);

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Et si tu effaçait la page avec ClearViewPort ?
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  3. #3
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Points : 4 006
    Points
    4 006
    Par défaut
    En fait, en partant de l'idée qu'on avait des pages différentes, je me disais qu'on ne devait pas avoir besoin de ClerViewPort (effectivement, cà marche). Puisqu'il s'agit d'utiliser parallélement des sortes d'écran virtuels qu'on affiche lorsqu'on veut.

    En principe, à mon avis, chaque écran devrait garder son contenu et lorsqu'on l'affiche on ne voit que son contenu. ce n'est pas logique?

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Si c'est parfaitement logique ! Il doit y avoir un bug dans la BGI de Borland ( quoi ? un bug de Borland ?? )

    a+
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  5. #5
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Naaaaan !!! Pas de bugs !!!!

    Tu utilises le mode de la BGI 640x480x16 couleurs qui possède... Tadaaa !! 1 page !

    Alors forcément, quand tu veux en utiliser 2, elles ont une légère tendance à se chevaucher.

    Si tu veux 2 pages, il faut utiliser le mode 640x400x16, (le mode 1 du pilote VGA).

    Sinon, il faut utiliser les modes VESA.

    A+
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  6. #6
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Points : 4 006
    Points
    4 006
    Par défaut
    Hum! Donc en fin de compte, si j'ai bien compris je dois initialiser le mode graphique avec vesa16.bgi?

    Tu choisis le mode d'un pilote comment?

  7. #7
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Avec la BGI, pour initialiser le mode 1 640x400, il faut faire comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    uses Graph;
     
    var
      Gm, Gd: Integer;
     
    begin
    Gd := VGA;
    Gm := 1;
    InitGraph(Gd, Gm, 'C:\TP\BGI');
    ...
    CloseGraph;
    end.
    Je te déconseille l'utilisation de VESA16 : peu de cartes acceptent les modes VESA 16 couleurs. Par contre, il existe un package de driver BGI qui ne gère pas trop mal les modes VESA jusqu'en 65536 couleurs je crois. Mais le pilote est lent... Il s'appelle Svgabg55.zip. Si tu ne le trouve pas, je te le passerai. Il doit être dans un coin de mon disque.

    A+
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  8. #8
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Points : 4 006
    Points
    4 006
    Par défaut
    Ok merci, j'aurai dû y penser (mode d'initialisation ).
    Cà m'interessait quand même de recevoir le pilote. Juste pour effectuer un test...

    Par ailleurs(cà n'a rien à voir avec SetActivePage ), je trouve cà assez impressionnant que tu connaisse tout en Pascal quand même Perso, j'aimerai savoir combien de temps tu as mis dessus pour connaître de fond en comble.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [GNU Pascal] [GRX] Charger une police en mode graphique
    Par seedle-san dans le forum Autres IDE
    Réponses: 2
    Dernier message: 17/04/2004, 03h06
  2. [TP]Problème de modes graphiques sous Windows XP
    Par Gabi dans le forum Turbo Pascal
    Réponses: 11
    Dernier message: 04/04/2004, 17h25
  3. Réponses: 7
    Dernier message: 17/01/2004, 17h13
  4. Clignotement d'un caractère en mode graphique
    Par julson dans le forum x86 16-bits
    Réponses: 6
    Dernier message: 08/12/2003, 14h59
  5. [TP]Pb Mode Graphique
    Par John_win dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 29/11/2003, 22h05

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