3 <TITLE>Xiiuwgraf</TITLE>
\r
10 <H5><I>Une classe Loglan predefinie <BR>
\r
11 pour la gestion de graphismes en multifenêtrage <BR>
\r
12 sous XWindows.</I></H5>
\r
17 <H3> Auteurs et realisateurs: </H3>
\r
18 <H2> Eric BECOURT &
\r
19 Jerôme LARRIEU </H2>
\r
48 Table de matières</B> ou
\r
49 <A NAME="tresc">tresc</A> <BR>
\r
52 <LI>1: <A HREF = "#diff">Différences essentielles avec
\r
53 la librairie graphique IIUWGRAPH</A><P>
\r
56 <LI>2: <A HREF = "#Ouvrir">Ouvrir et fermer une fenêtre avec XIIUWGRAF</A><P>
\r
58 <LI>2.1 : <A HREF = "#HPAGE">Procédure HPAGE</A><P>
\r
59 <LI>2.2 : <A HREF = "#GRON">Procédure GRON</A><P>
\r
60 <LI>2.3 : <A HREF = "#GROFF">Procédure GROFF</A><P>
\r
63 <LI>3 : <A HREF = "#Description">Description des diverses commandes </A> dédiées aux graphismes
\r
64 utilisables par l'interprêteur LOGLAN<P>
\r
66 <LI>3.1 : <A HREF = "#COLOR">Procédure COLOR</A><P>
\r
67 <LI>3.2 : <A HREF = "#BORDER">Procédure BORDER</A><P>
\r
68 <LI>3.3 : <A HREF = "#MOVE">Procédure MOVE</A><P>
\r
69 <LI>3.4 : <A HREF = "#CLS"> Fonction CLS</A><P>
\r
70 <LI>3.5 : <A HREF = "#POINT">Procédure POINT</A><P>
\r
71 <LI>3.6 : <A HREF = "#DRAW">Procédure DRAW</A><P>
\r
72 <LI>3.7 : <A HREF = "#CIRB"> Procédure CIRB</A><P>
\r
73 <LI>3.8 : <A HREF = "#HFILL">Procédure HFILL</A><P>
\r
74 <LI>3.9 : <A HREF = "#VFILL">Procédure VFILL</A><P>
\r
75 <LI>3.10 : <A HREF = "#INXPOS">Fonction INXPOS</A><P>
\r
76 <LI>3.11 : <A HREF = "#INYPOS"> Fonction INYPOS</A><P>
\r
77 <LI>3.12 : <A HREF = "#saisie">: Commandes de saisie et de restition d'une partie d'une fenêtre</A><P>
\r
79 <LI>3.12.1 : <A HREF = "#GETMAP"> Fonction GETMAP</A><P>
\r
80 <LI>3.12.2 : <A HREF = "#PUTMAP"> Procédure PUTMAP</A><P>
\r
81 <LI>3.12.3 : <A HREF = "#ORMAP">Procédure ORMAP</A><P>
\r
82 <LI>3.12.4 : <A HREF = "#XORMAP">Procédure XORMAP</A><P>
\r
84 <P> <LI>3.13 : <A HREF = "#INPIX">Procédure INPIX</A><P>
\r
85 <LI>3.14 : <A HREF = "#STYLE"> Procédure STYLE</A><P>
\r
86 <LI>3.15 : <A HREF = "#caractères">Commandes de saisie et d'affichage de caractèc;res</A><P>
\r
88 <LI>3.15.1 : <A HREF = "#INKEY">Fonction INKEY</A><P>
\r
89 <LI>3.15.2 : <A HREF = "#HASCII"> Procédure HASCII</A><P>
\r
90 <LI>3.15.3 : <A HREF = "#OUTSTRING"> Procédure OUTSTRING</A><P>
\r
92 <P> <LI>3.16 : <A HREF = "#PUSHXY">Procédure PUSHXY</A><P>
\r
93 <LI>3.17 : <A HREF = "#POPXY">Procédure POPXY</A><P>
\r
96 <LI>4 : Description des commandes de gestion de la souris<P>
\r
98 <LI>4.1 : <A HREF = "#STATUS"> Procédure STATUS</A><P>
\r
99 <LI>4.2 : <A HREF = "#GETPRESS">Procédure GETPRESS</A><P>
\r
100 <LI>4.3 : <A HREF = "#GETRELEASE"> Procédure GETRELEASE</A><P>
\r
101 <LI>4.4 : <A HREF = "#GETMOVEMENT"> Procédure GETMOVEMENT</A><P>
\r
106 1: <A NAME="diff">
\r
107 Diff</A>érences essentielles entre XIIUWGRAF et IIUWGRAPH</H2>
\r
110 Ce paragraphe a pour objet de donner certaines particularités de XIIUWGRAF, ceci afin de comprendre son fonctionnement général.<P>
\r
112 Tout d'abord il est important de signaler qu'à la différence de IIUWGRAPH, XIIUWGRAF est un programme à part entièc;re (plus exactement un processus crée par l'interprêteur LOGLAN).C'est pour cela qu'il est déconseillé (sauf cas de force majeure) de faire CONTROL-C pour terminer un programme : en effet, ceci a pour effet de terminer l'exécution de l'interprêteur sans terminer XIIUWGRAF (création d'un processus zombie). Pour terminer une session graphique, il faudra donc automatiquement taper dans le programme en LOGLAN la commande GROFF car elle va terminer l'exécution de XIIUWGRAF.<P>
\r
114 Certaines commandes de IIUWGRAPH n'ont pas été implémentées (par exemple HIDECURSOR, SHOWCURSOR, PALLET, ...), soit parce qu'elles seraient d'un intérêt trèc;s faible dans la gestion de XWindows, soit parce qu'elles seraient difficilement réalisables, soit parce que les programmeurs ont été atteints de fainéantise chronique.<P>
\r
116 Enfin, dans vos programmes il faudra impérativement que vos unités gérant le graphisme héritent de la classe IIUWGRAPH sous peine d'erreurs à la compilation .<P>
\r
118 ATTENTION: appelez Xint au lieu de int<P>
\r
120 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
121 <H2>2: <A NAME="Ouvrir">Ouvrir</A> et fermer une fenêtre avec XIIUWGRAF</H2>
\r
124 XIIUWGRAF permet à l'utilisateur d'ouvrir jusqu'à seize fenêtres à l'écran. Ces fenêtres sont sélectionnables dans le programme en LOGLAN par la commande GRON décrite plus loin.<P>
\r
126 <H3>2.1: La procédure <A NAME="HPAGE">HPAGE</A> . </H3>
\r
128 <PRE>unit HPAGE: procedure(numerofenetre,x,y: INTEGER);</PRE><P>
\r
130 Cette procédure a pour rôle de donner la position à laquelle sera affichée la fenêtre dans l'écran, de donner la taille de cette fenêtre et de l'effacer quand le besoin s'en fait sentir. Cette procédure devra être appelée <B>deux fois</B> pour ouvrir <B>une</B> fenêtre.<P>
\r
132 HPAGE reçoit trois paramêtres : le premier est le numéro de la fenêtre (un entier compris entre 0 et 15), les deux suivants sont soit les coordonnées de la fenêtre à l'écran, soit la taille de cette fenêtre. Un troisièc;me appel de HPAGE avec l'un des deux derniers paramêtres nuls aura pour effet de l'effacer.<P>
\r
136 CALL HPAGE(0, posx, posy);<P>
\r
137 CALL HPAGE(0, longueur, hauteur);<P>
\r
139 Le coin en haut à gauche de la fenêtre 0 sera aux coordonnées (posx,posy) et la fenêtre aura une taille de longueur X hauteur.<P>
\r
141 CALL HPAGE(0, 0, valeur)<P>
\r
142 ou CALL HPAGE(0, valeur, 0)<P>
\r
143 ou CALL HPAGE(0, 0, 0)<P>
\r
145 La fenêtre 0 est effacée.<P>
\r
147 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
151 <H3>2.2: La procédure <A NAME="GRON">GRON</A> . </H3>
\r
153 <PRE>unit GRON: procedure(numerofenetre: INTEGER);</PRE><P>
\r
155 La procédure GRON affiche la fenêtre de numéro numerofenetre à l'écran. Ensuite pour sélectionner la fenêtre dans laquelle on veut travailler, on refait un deuxièc;me appel de cette commande.<P>
\r
158 CALL HPAGE(0,0,0);<P>
\r
159 CALL HPAGE(1,150,0);<P>
\r
160 CALL HPAGE(0,100,100);<P>
\r
161 CALL HPAGE(1,200,150);<P>
\r
162 CALL GRON(0); (* Affichage de la fenêtre 0 *)<P>
\r
163 CALL GRON(1); (* Affichage de la fenêtre 1 *)<P>
\r
165 CALL GRON(0); (* Sélection de la fenêtre 1 *)<P>
\r
168 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
170 <H3> <B>2.3 : La procédure <A NAME="GROFF">GROFF</A> . </B><P></H3>
\r
172 <PRE>unit GROFF: procedure;</PRE><P>
\r
174 L'appel à cette commande a pour conséquence l'effaçage de toutes les fenêtres et la fin d'exécution du processus XIIUWGRAF.<P>
\r
175 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
178 <H2>3: <A NAME="Description">Description</A> . des différentes
\r
179 commandes graphiques</H2>
\r
182 <H3>3.1: Procédure <A NAME="COLOR">COLOR</A> . </H3>
\r
184 <PRE>unit COLOR: procedure(couleur: INTEGER);</PRE><P>
\r
186 Permet de déterminer la couleur d'avant plan (0 pour noir et une valeur supérieure ou égale à 1 pour blanc). Cette commande a une action locale à la fenêtre sélectionnée par GRON.<P>
\r
187 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
189 <H3>3.2: Procédure <A NAME="BORDER">BORDER</A> . </H3>
\r
191 <PRE>unit BORDER: procedure(couleur: INTEGER);</PRE><P>
\r
193 Commande qui sélectionne la couleur de fond.<P>
\r
194 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
196 <H3>3.3: Procédure <A NAME="MOVE">MOVE</A> . </H3>
\r
198 <PRE>unit MOVE: procedure(posx, posy: INTEGER);</PRE><P>
\r
200 posx et posy deviennent les coordonnées courantes dans la fenêtre. Comme COLOR, MOVE n'agit que sur la fenêtre sélectionnée.<P>
\r
201 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
203 <H3>3.4: Procédure <A NAME="CLS">CLS</A> . </H3>
\r
205 <PRE>unit CLS: procedure;</PRE><P>
\r
207 Efface la fenêtre en blanc par défaut ou de la couleur spécifiée par la commande BORDER.<P>
\r
208 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
210 <H3>: Procédure <A NAME="POINT">POINT</A> . </H3>
\r
212 <PRE><B>unit</B> POINT: <B>procedure</B>(x,y: INTEGER);</PRE><P>
\r
213 Affiche un point aux coordonnées (x,y) de la couleur spécifiée par la commande COLOR ou noir par défaut. La position courante dans la fenêtre devient (x,y).<P>
\r
214 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
216 <H3>: Procédure <A NAME="DRAW">DRAW</A> . </H3>
\r
218 <PRE><B>unit</B> DRAW: <B>procedure</B>(x,y: INTEGER);</PRE><P>
\r
220 Affiche une ligne qui part de la position courante dans la fenêtre vers la position (x,y). La position courante dans la fenêtre devient (x,y). Elle est affichée avec la couleur courante (sélectionnée avec COLOR) et avec le style de tracé courant (sélectionnée par la commande STYLE décrite plus loin);<P>
\r
221 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
223 <H3>: Procédure <A NAME="CIRB">CIRB</A> . </H3>
\r
225 <PRE><B>unit</B> CIRB: <B>procedure</B>(posx,posy,rayon:INTEGER,alpha,beta:REAL,cbord,style,p,q:INTEGER);</PRE><P>
\r
227 Si style a pour valeur 0, CIRB affiche un arc de centre (posx,posy), de rayon rayon. alpha et beta sont les angles de départ et d'arrivée de l'arc en question. Si alpha=beta alors un cercle (ou une ellipse) est dessiné. Si p=q alors on obtient un cercle, si p> q une ellipse allongée dans le sens vertical est obtenue, sinon si p> q on a pour résultat une ellipse allongée dans le sens horizontal. Cet affichage est fait avec la couleur d'avant plan courante et le style de tracé courant.<P>
\r
229 Si style vaut 1, CIRB affiche un arc rempli ressemblant à une portion de camenbert avec la couleur d'avant plan courante.<P>
\r
231 Si style vaut 2, l'intérieur de l'arc délimité par sa courbure et la corde joignant ses deux extrêmités est rempli avec la couleur d'avant plan courante.<P>
\r
233 Si l'on choisi pour style une valeur < 0 ou > 3, la valeur 0 est prise.<P>
\r
234 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
236 <H3>: Procédure <A NAME="HFILL">HFILL</A> . </H3>
\r
238 <PRE><B>unit</B> HFILL: <B>procedure</B>(y: INTEGER);</PRE><P>
\r
240 Trace une ligne horizontale de la position courante (posx,posy) vers les coordonnées (posx,y) avec la couleur d'avant plan courante et le style de tracé courant. La position courante dans la fenêtre devient (posx,y).<P>
\r
241 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
243 <H3>: Procédure <A NAME="VFILL">VFILL</A> . </H3>
\r
245 <PRE><B>unit</B> VFILL: <B>procedure</B>(y: INTEGER);</PRE><P>
\r
247 Trace une ligne verticale de la position courante (posx,posy) vers les coordonnées (x,posy) avec la couleur d'avant plan courante et le style de tracé courant. La position courante dans la fenêtre devient (x,posy).<P>
\r
249 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
251 <H3>: Fonction <A NAME="INXPOS">INXPOS</A> . </H3>
\r
253 <PRE><B>unit</B> INXPOS: <B>function</B>: INTEGER;</PRE><P>
\r
255 Retourne la position courante sur l'axe des abscisses de la fenêtre courante.<P>
\r
257 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
259 <H3>: Fonction <A NAME="INYPOS">INYPOS</A> . </H3>
\r
261 <PRE><B>unit</B> INYPOS: <B>function</B>: INTEGER;</PRE><P>
\r
263 Retourne la position courante sur l'axe des ordonnées de la fenêtre courante.<P>
\r
265 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
267 <H3>: Commandes de <A NAME="saisie">saisie</A> . et de restitution d'une partie d'une fenêtre.</H3>
\r
269 <H4>: Fonction <A NAME="GETMAP">GETMAP</A> . </H4>
\r
271 <P> <PRE><B>unit</B> GETMAP: <B>function</B>(x,y: INTEGER): <B>arrayof</B> INTEGER;</PRE><P>
\r
273 Sauve dans le tableau tab une partie rectanguraire de la fenêtre courante, le coin en haut à gauche étant la position courante dans la fenêtre et le coin en bas à droite étant la position (x,y).<P>
\r
274 Le tableau devrait avoir une taille minimum de: 4 + (nbrelignes * (3 + nbrecol div 8)) octets<P>
\r
275 En sachant qu'en LOGLAN un entier tient sur 4 octets(en UNIX seulement), il ne vous reste plus qu' à faire votre cuisine.<P>
\r
276 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
278 <H4>: Procédure <A NAME="PUTMAP">PUTMAP</A> . </H4>
\r
280 <PRE><B>unit</B> PUTMAP: <B>procedure</B>(tab: <B>arrayof</B> INTEGER);</PRE><P>
\r
282 Affiche la portion d'image sauvée dans tab à la position courante dans la fenêtre. Ce qu'il y avait à cette même position avant l'affichage est totalement effaçé.<P>
\r
283 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
285 <H4>: Procédure <A NAME="ORMAP">ORMAP</A> .</H4>
\r
287 unit ORMAP: procedure(tab: arrayof INTEGER);<P>
\r
289 Lors de l'affichage, une opération OR est faite avec la portion d'image sauvée dans tab et celle à la position courante dans la fenèc;tre: l'image est donc affichée en "transparence".<P>
\r
290 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
292 <H4>: Procédure <A NAME="XORMAP">XORMAP</A> .</H4>
\r
294 <PRE><B>unit</B> XORMAP: <B>procedure</B>(tab: <B>arrayof</B> INTEGER);</PRE><P>
\r
296 Même chose qu' avec ORMAP à la différence qu'une opération XOR est faite avec l'image sauvée dans tab et celle à la position courante dans la fenêtre.<P>
\r
298 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
300 <H3>: Procédure <A NAME="STYLE">STYLE</A> .</H3>
\r
302 <PRE><B>unit</B> STYLE: <B>procedure</B>(styl: INTEGER);</PRE><P>
\r
304 Définit le style de tracé dans la fenêtre courante.<P>
\r
306 Si style vaut 0, le tracé sera fait avec la couleur de fond.<P>
\r
307 Si style vaut 1, le tracé sera fait avec la couleur d'avant plan.<P>
\r
308 Si style vaut 2,3,4 ou 5, le tracé sera fait avec les motif suivant :<P>
\r
310 <PRE>2 : ******...******...******<P>
\r
311 3 : ****......****......****<P>
\r
312 4 : **...**...**...**<P>
\r
313 5 : **.........**.........** </PRE> où * : couleur d'avant plan<P>
\r
314 . : couleur de fond<P>
\r
315 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
317 <H3>: Fonction <A NAME="INPIX">INPIX</A> .</H3>
\r
319 <PRE><B>unit</B> INPIX: <B>function</B>(x,y: INTEGER);</PRE><P>
\r
321 Cette fonction met la postion courante dans la fenêtre à (x,y) et renvoie la couleur du point de la fenêtre à cette position(0 pour noir et 1 pour blanc).<P>
\r
324 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
326 <H3>: Commandes de saisie et d'affichage de <A NAME="caractèc;res">caractèc;res</A> .</H3>
\r
328 <H4>: Fonction <A NAME="INKEY">INKEY</A> .</H4>
\r
330 <PRE><B>unit</B> INKEY: <B>function</B>: INTEGER;</PRE><P>
\r
332 Retourne le code ascii de la touche tapée au clavier ou la valeur 0 sinon. L'appui sur les touches spéciales (comme SHIFT, les touche F1, F2, ..., CONTROL, ...) renvoient des valeurs négatives. Vous verrez bien par vous-même quelles sont ces valeurs en faisant un petit programme test.<P>
\r
333 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
335 <H4>: Procédure <A NAME="HASCII">HASCII</A> .</H4>
\r
337 <PRE><B>unit</B> HASCII: <B>procedure</B>(code_char: INTEGER);</PRE><P>
\r
339 Affiche le caractèc;re de code ascii code_char avec le coin en haut à gauche du caractèc;re à la position courante (posx,posy) dans la fenêtre. La position courante devient (posx+largeur,posy).<P>
\r
340 Si code_char=0, une partie rectangulaire de largeur*hauteur est affichée avec la couleur de fond de la fenêtre courante et position courante dans la fenêtre reste inchangée.<P>
\r
341 En général la fonte par défaut qui est utilisée sous XWindows a une hauteur de dix points et une largeur de six points.<P>
\r
343 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
345 <H3>: Procédure <A NAME="OUTSTRING">OUTSTRING</A> .</H3>
\r
347 <PRE><B>unit</B> OUTSTRING: <B>procedure</B>(tab: <B>arrayof</B> CHAR);</PRE><P>
\r
349 Affiche la chaine de caractèc;re tab à la position courante (posx,posy) de la fenêtre. La position courante devient (posx+largeur*longueur_chaine,posy) où largeur est la largeur de la fonte utilisée.<P>
\r
352 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
354 <H3>: Procédure <A NAME="PUSHXY">PUSHXY</A> .</H3>
\r
356 <PRE><B>unit</B> PUSHXY: <B>procedure</B>;</PRE><P>
\r
358 Sauvegarde le contexte graphique dans une pile, c'est à dire la position courante dans la fenêtre,les couleurs de fond et d'avant plan et le style de tracé sélectionné pour cette fenêtre.<P>
\r
360 Chaque Fenêtre est dotée de sa pile de sauvegarde qui lui est propre et chaque pile a une profondeur maximale de 16.<P>
\r
362 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
364 <H3>: Procédure <A NAME="POPXY">POPXY</A> .</H3>
\r
366 <PRE><B>unit</B> POPXY: <B>procedure</B>;</PRE><P>
\r
368 Restore dans la fenêtre courante le contexte graphique situé en haut de la pile de sauvegarde et ce contexte est enlevé de la pile.<P>
\r
369 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
371 <H2>: Description des commandes de gestion de la <A NAME="souris">souris</A> .</H2>
\r
375 <H3>: Procédure <A NAME="STATUS">STATUS</A> .</H3>
\r
377 <P> <PRE><B>unit</B> STATUS: <B>procedure</B>(h, v: INTEGER, l, r, c: BOOLEAN);</PRE><P>
\r
379 Cette procédure renvoie la position courante (h,v) du pointeur de la souris ainsi que l'état des boutons de la souris. l,r,c sont respectivement les boutons gauche, droit et du centre de la souris.<P>
\r
381 Ces valeurs booléennes ont la valeur TRUE si le bouton correspondant est appuyé.<P>
\r
382 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
384 <H3>: Procédure <A NAME="GETPRESS">GETPRESS</A> .</H3>
\r
386 <PRE><B>unit</B> GETPRESS: <B>procedure</B>(b: INTEGER; OUTPUT h,v,p : INTEGER, l,r,c : BOOLEAN);</PRE><P>
\r
388 Cette procédure renvoie le nombre p de fois où le bouton sélectionné a été appuyé depuis le dernier appel à cette commande, ainsi que la position (h,v) du curseur la dernièc;re fois que le bouton considéré a été appuyé.<P>
\r
390 Le paramêtre b permet de sélectionner le bouton à tester :<P>
\r
391 - 0 : bouton gauche<P>
\r
392 - 1 : bouton droit<P>
\r
393 - 2 : bouton du milieu<P>
\r
395 En sus, la procédure renvoie l'état courant des trois boutons l,r,c.<P>
\r
397 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
399 <H3>: Procédure <A NAME="GETRELEASE">GETRELEASE</A> .</H3>
\r
401 <PRE><B>unit</B> GETRELEASE: <B>procedure</B>(b: INTEGER; <B>OUTPUT</B> h,v,p : INTEGER, l,r,c : BOOLEAN);</PRE><P>
\r
403 Cette procédure a la même fonction que GETPRESS à la différence qu'elle teste le nombre de relâchementss du bouton sélectionné et non l'appui.<P>
\r
406 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
408 <H3>: Procédure <A NAME="GETMOVEMENT">GETMOVEMENT</A> .</H3>
\r
410 <PRE><B>unit</B> GETMOVEMENT: <B>procedure</B>(h,v: INTEGER);</PRE><P>
\r
412 Cette procédure renvoie le mouvement relatif (h,v) du curseur de la souris depuis son dernier appel.<P>
\r
418 <p align=right> : <A HREF = "#tresc">vers Tableau de Matieres</A></p>
\r
425 <Address> : <A HREF = "http://www.univ-pau.fr/~salwicki/GMyAS">GMyAS</A> à Pau, le 25 Octobre 1993 <P></ Address>
\r