Форум: "Начинающим";
Текущий архив: 2011.06.05;
Скачать: [xml.tar.bz2];
ВнизЗадержка sleep Найти похожие ветки
← →
Тимоха111 (2011-01-19 22:58) [0]Всем добрый вечер, надо передвинуть курсор плавно, вот код:
for x:=pt.x to pt.x+600 do
begin
sleep(1);
SetCursorPos( x, pt.y + 1);
end;
вопрос в след., меня не устраивает скорость в sleep(1), медленно движется, может есть другие функции, которые позволят сделать задержку меньше?
← →
DVM © (2011-01-19 23:18) [1]sleep(1) не усыпляет поток на 1 мс. Интервал гораздо больший получается.
Но дело не в этом. Шаг цикла увеличить надо просто.
← →
Leonid Troyanovsky © (2011-01-19 23:19) [2]
> Тимоха111 (19.01.11 22:58)
> вопрос в след., меня не устраивает скорость в sleep(1),
> медленно движется,
За подобные передвижения положен пожизненный эцих с гвоздями.
Хотя, Sleep здесь и вовсе не нужен, двигай по таймеру.
--
Regards, LVT.
← →
Inovet © (2011-01-20 00:25) [3]Выбор 1 мс и 600 шагов означает желание проехать указателем по всем 600 позициям за 0.6 с. А оно надо по всем и так быстро?
← →
KilkennyCat © (2011-01-20 00:48) [4]
> А оно надо по всем и так быстро?
а даж если и надо - не получится.
← →
Inovet © (2011-01-20 00:58) [5]> [4] KilkennyCat © (20.01.11 00:48)
> а даж если и надо - не получится.
Копьютеры становятся всё быстрее, а программы работают всё медленнее.
← →
KilkennyCat © (2011-01-20 01:07) [6]Кэролл это бы легко объяснил
← →
Тимоха111 (2011-01-20 01:21) [7]
var x: real;
sx,sy: integer;
begin
x:=-15;
while x<15 do
begin
SetCursorPos(trunc(20*x)+400,500-trunc(60*sin(x)));
x:=x+0.001;
sleep(1);
end;
допустим это медленно, как ускорить?
← →
Inovet © (2011-01-20 01:36) [8]> [7] Тимоха111 (20.01.11 01:21)
> допустим это медленно, как ускорить?
А что ты вообще делаешь? а то так загадочно двигаешь указателем, что непонять.
← →
Тимоха111 (2011-01-20 01:54) [9]Функция sin взял для проверки.
Делаю имитацию человека за компьютером. Курсор мышки должен перемещаться из точки А в точку Б, по каким либо траекториям
← →
Inovet © (2011-01-20 02:02) [10]> [9] Тимоха111 (20.01.11 01:54)
> Делаю имитацию человека за компьютером. Курсор мышки должен
> перемещаться из точки А в точку Б, по каким либо траекториям
Для проверки, как это делает система, у форму поставь обработчик на событие меремещения мыши, выводи координаты куда-нибудь в файл или в мемо, разверни форму на весь экран, попробуй мышью за 1 секунду двинуть из угла в угол, посмотри сохранённые координаты.
← →
Тимоха111 (2011-01-20 02:14) [11]x:=x+0.01; изменил шаг, стало пошустрее.
надо придумать функцию по которой будет траектория движения.
Спасибо за совет, думаю поможет в задаче!
← →
Германн © (2011-01-20 02:19) [12]
> Тимоха111 (20.01.11 01:54) [9]
>
> Функция sin взял для проверки.
> Делаю имитацию человека за компьютером. Курсор мышки должен
> перемещаться из точки А в точку Б, по каким либо траекториям
>
Тебе уже посоветовали на другом форуме увеличить шаг. Будет быстрее. Чем не подходит?
← →
Enot (2011-02-26 16:36) [13]Человек неправильно немного вопрос задал. Мышка перемещается быстро , но рывками. От этого и создается ощущение замедленности. Вот как сделать ее плавное движение ?
← →
KilkennyCat © (2011-02-26 17:21) [14]
> Вот как сделать ее плавное движение ?
>
а она в реальности разве плавно движется?
← →
sniknik © (2011-02-26 17:50) [15]> допустим это медленно, как ускорить?
var
x: real;
sx, sy: integer;
begin
x:=-15;
while x < 15 do begin
SetCursorPos(trunc(20*x)+400,500-trunc(60*sin(x)));
x:= x+0.001;
//sleep(1);
Application.ProcessMessages;
end;
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.06.05;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.003 c