Форум: "WinAPI";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];
Вниз---|Ветка была без названия|--- Найти похожие ветки
← →
Grombl (2002-09-10 22:23) [0]Есть ли функция Вин-Апи помогающая передвигать мышь не мгновенно, а проходя через указанные точки(т.е. указываешь начальные и конечные координаты, мышь передвигается между ними).
← →
Dmk (2002-09-10 23:22) [1]for c := 0 to 200 do
begin
SetCursorPos(x,100);
{Sleep(5 .. 100);} Не обязательно
end;
← →
Dmk (2002-09-10 23:51) [2]Еще можно так ...
procedure Line(dc:HDC; x1,y1,x2,y2:integer; Color:TColor);
var {Integer variables}
d:integer;
dx,dy:integer;
Eincr,NEIncr:integer;
yIncr:integer;
count:word;
const _delay:integer = 1;
begin
yIncr:= -1;
dx:=ABS(x2-x1);
dy:=ABS(y2-y1);
if dy <= dx then
begin
if x2 < x1 then
asm
mov ebx,[x2]
xchg ebx,[x1]
mov [x2],ebx
mov ebx,[y2]
xchg ebx,[y1]
mov [y2],ebx
end;
if y2 > y1 then yIncr:=1;
begin
d:=dy*2 - dx;
EIncr:=dy*2;
NEIncr:=(dy-dx)*2;
end;
SetPixel(dc,x1,y1,color);{Draw first point}
SetCursorPos(x1,y1);
Sleep(_delay);
inc(x1);
for Count:=x1 to x2 do
begin
if d < 0 then d:=d+EIncr
else begin
d:=d+NEIncr;
y1:=y1+yIncr;
end;
SetPixel(dc,Count,y1,color);
SetCursorPos(Count,y1);
Sleep(_delay);
end;
end{if (dy <= dx)}
else
begin
if y2 < y1 then
asm
mov ebx,[x2]
xchg ebx,[x1]
mov [x2],ebx
mov ebx,[y2]
xchg ebx,[y1]
mov [y2],ebx
end;
if x2 > x1 then yIncr:=1;
begin
d:=dx shl 1-dy;
EIncr:=dx shl 1;
NEIncr:=(dx-dy) shl 1;
end;
SetPixel(dc,x1,y1,color);{Draw first point}
SetCursorPos(x1,y1);
Sleep(_delay);
inc(y1);
for Count:=y1 to y2 do
begin
if d < 0 then d:=d+Eincr
else begin
d:=d+NEIncr;
x1:=x1+yIncr;
end;
SetPixel(dc,x1,Count,color);
SetCursorPos(x1,Count);
Sleep(_delay);
end;
end;
end;
procedure TMainForm.Button1Click(Sender: TObject);
var c:integer;
dc:hdc;
begin
dc := GetDC(0);
For c := 0 to 10 do
Line(dc,Random(700),Random(700),Random(700),Random(700),Random($EFFFFFFF));
end;
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c