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