Accueil
Accueil
Le
Club
Delphi
Kylix
C
C++
Java
J2EE
DotNET
& C#
Visual
Basic
Access
Pascal
Dev
Web
PHP
ASP
XML
UML
SQL
SGBD
Win
Linux
Autres

        


Comment se servir du mode graphique ?
auteur : Hdd34
Si vous débutez, et que vous désirez apprendre à effectuer quelques tracés sans grande prétention, alors la BGI (Borland Graphics Interface) est faite pour vous ! La BGI est le système graphique fourni avec Turbo Pascal. Capable de fonctionner avec de vieux systèmes, on retiendra surtout la possibilité de pouvoir effectuer des tracés dans un mode 640x480 en 16 couleurs (VGA), et ce de manière aisée.

Pour vous servir de la BGI, vous devez d'une part utiliser l'unité Graph, et d'autre part avoir à disposition les pilotes de la BGI. En règle générale, seul EGAVGA.BGI suffit. A ceci vous devrez ajouter les éventuelles polices de caractères si vous désirez écrire du texte à l'écran. Chaque police porte l'extension .CHR. Rassurez-vous toutefois : tous ces fichiers sont fournis avec Turbo Pascal et doivent avoir été installés avec le reste. Ils se trouvent dans le répertoire \TP7\BGI.

Pour initialiser un mode graphique, il faut vous servir de InitGraph(var GraphDriver, GraphMode: Integer; Path: string).
GraphDriver et GraphMode sont des variables qu'il faut déclarer. Elles vont caractériser le mode graphique utilisé. La plupart du temps, on laissera Turbo Pascal détecter tout seul le mode graphique le plus adapté à votre configuration. Pour cela, il suffit d'affecter la valeur Detect à GraphDriver, sans toucher à GraphMode :


var GraphDriver, GraphMode: Integer; begin GraphDriver := Detect; ...


Dans certains cas, il peut être intéressant de spécifier soi-même quel mode graphique utiliser. Dans ce cas, il faudra définir à la fois GraphDriver et GraphMode :


var GraphDriver, GraphMode: Integer; begin GraphDriver := VGA; { On utilise le pilote VGA } GraphMode := VGAHi; { On choisit le mode haute résolution (640x480 16 couleurs) } ...


Différentes valeurs sont possibles. Je ne listerai ici que les valeurs pour le pilote VGA, les autres étant tombés en désuétude totale.


GraphDriver

GraphMode

Résolution

0 - Detect Non défini Meilleure possible
9 - VGA 0 - VGALo
1 - VGAMed
2 - VGAHi
640x200
640x350
640x480


Une fois ces variables définies, il ne reste plus qu'à appeler InitGraph, en indiquant le chemin d'accès au driver BGI (\TP7\BGI la plupart du temps).
Il y a néanmoins un élément à prendre en compte : il se peut que l'initialisation du mode graphique échoue (vous avez indiqué un répertoire erroné, vous manquez de mémoire, le pilote choisi n'est pas compatible, etc...). Vous devez donc vérifier que tout s'est bien déroulé comme prévu à l'aide de la fonction GraphResult, qui renvoie le dernier code d'erreur reçu par le système graphique. S'il n'y a pas eu d'erreur, alors vous recevrez le code grOk.
Pour plus d'information, vous pouvez aussi faire appel à la fonction GraphErrorMsg, qui renverra le message d'erreur associé à un code d'erreur donné.

Vous n'oublierez pas, après avoir fini de travailler avec le mode graphique, de faire appel à CloseGraph, qui permet de retrouver le mode texte précédent.

D'où le résultat final :


uses Graph; var Gd, Gm: Integer; begin Gd := Detect; InitGraph(Gd, Gm, 'C:\TP7\BGI'); if GraphResult <> grOk then begin WriteLn(GraphErrorMsg(GraphResult); WriteLn; Halt; end; ... CloseGraph; end.



Remarque :

  • Certaines personnes ne sauront se contenter d'une résolution de 640x480 en 16 couleurs. Il existe alors un autre type de gestion graphique : les modes  VESA.
    Ces modes permettent d'atteindre une résolution de 1600x1200 en millions de couleurs, en fonction de la carte graphique installée. Turbo Pascal ne sachant pas les gérer nativement, il vous faudra soit créer votre propre unité de gestion (la  documentation est disponible sous format PDF), soit utiliser une unité faite par un autre utilisateur.

    Je vous propose ainsi ma propre unité, VBE2, qui permet d'utiliser le même type de programmation qu'avec la BGI. La compatibilité est quasi parfaite, et vous pourrez convertir vos vieux programmes en 16 couleurs en un rien de temps !


        

Consultez les autres F.A.Q's

Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2004  Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright 2000..2005 www.developpez.com