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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
| (************************************************************************)
TYPE
{ Constantes Boutons enfonces }
cgMouse_Key = (cgMouse_None, cgMouse_Left, cgMouse_Right, cgMouse_Both);
VAR
XMin, XMax, YMin, YMax : Word;
bMouse_Exist : Boolean;
{ Coordonnees du pointeur de la souris }
cgMouse_X : Word;
cgMouse_Y : Word;
{ Correspondant du LastKey. Contient la valeur du dernier bouton
enfonce }
cgMouse_LastButton : cgMouse_Key;
{ ------------------------------------------------------------------------ }
{ Teste si un gestionnaire de souris est present }
FUNCTION Mouse_Init : Boolean;
BEGIN
ASM
Xor Ax, Ax
Int 33h
Mov Byte Ptr bMouse_Exist, Ah
END;
END;
{ Cache le pointeur de la souris }
PROCEDURE Mouse_Hide; ASSEMBLER;
ASM
Mov Ax, 02h
Int 33h
END;
{ Montre le pointeur de la souris }
PROCEDURE Mouse_Show; ASSEMBLER;
ASM
Mov Ax, 01h
Int 33h
END;
{ Retourne une des constantes equivalents aux boutons enfonces. Retourne 0
si aucun bouton n'a ete enfonce }
FUNCTION Mouse_Pressed : cgMouse_Key; ASSEMBLER;
ASM
Mov Ax, 03h
Int 33h
{ Bx contiendra 0 si aucun bouton n'a ete enfonce
1 bouton de gauche
2 bouton de droite
3 bouton de gauche et bouton de droite
4 bouton du milieu }
Mov Ax, Bx
Mov cgMouse_X, Cx
Mov cgMouse_Y, Dx
Mov cgMouse_LastButton, Al
END;
{ Positionne le curseur de la souris }
PROCEDURE Mouse_GoToXy (X, Y : Word); ASSEMBLER;
ASM
Mov Ax, 04h
Mov Cx, X
Mov Dx, Y
Int 33h
END;
{ Definit la fenetre dans laquelle le curseur de la souris peut evoluer }
PROCEDURE Mouse_Window (XMin, XMax, YMin, YMax : Word); ASSEMBLER;
ASM
Mov Ax, 07h
Mov Cx, XMin
Mov Dx, XMax
Int 33h
Mov Ax, 08h
Mov Cx, YMin
Mov Dx, YMax
Int 33h
END;
{ Retourne TRUE lorsque l'utilisateur maintien le bouton xxx enfonce et
renvoi FALSE lorsque ce bouton est relache. }
FUNCTION Mouse_ReleaseButton (Button : cgMouse_Key) : Boolean; ASSEMBLER;
ASM
Mov Ax, 06h
Mov Bx, 01h
Int 33h
END; |
Partager