Egérkezelés - példaprogram
program Eger;
uses Graph, Dos, Crt;
var gd, gm, i, j: integer;
x, y, x1, y1, x2, y2: word;
r: registers;
procedure Init;
begin
r.ax := 0;
Intr($33, r);
end;
procedure Be;
begin
r.ax := 1;
Intr($33, r);
end;
procedure Ki;
begin
r.ax := 2;
Intr($33, r);
end;
function LeBal: boolean;
begin
r.ax := 3;
Intr($33, r);
LeBal := r.bx=1;
end;
function LeJobb: boolean;
begin
r.ax := 3;
Intr($33, r);
LeJobb := r.bx=2;
end;
function XKoor: integer;
begin
r.ax := 3;
Intr($33, r);
XKoor := r.cx;
end;
function YKoor: integer;
begin
r.ax := 3;
Intr($33, r);
YKoor := r.dx;
end;
begin
gd := detect;
InitGraph(gd, gm, 'c:\bp\bgi');
Init;
Be;
{Vonalhuzás}
repeat
repeat until LeBal or LeJobb; {Várakozás}
Ki; {Rajzolás közben az egér kikapcsolása}
MoveTo(XKoor, YKoor); {Rajzolás}
repeat
LineTo(XKoor, YKoor)
until not LeBal; {Rajzolás vége}
Be;
until LeJobb; {Vonalhúzás vége}
Delay(500);
{Téglalapok rajzolása}
SetWriteMode(xorput);
repeat
repeat until LeBal or LeJobb;
Ki;
x1 := XKoor; y1:= YKoor;
x2 := XKoor; y2 := YKoor;
repeat
if (XKoor <> x2) or (YKoor <> y2) then
begin
Rectangle(x1, y1, x2, y2);
x2 := XKoor; y2 := YKoor;
Rectangle(x1, y1, x2, y2)
end
until not LeBal;
Be;
until Lejobb;
end.