Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.48 MB
Время: 0.003 c
15-1297841206
И. Павел
2011-02-16 10:26
2011.06.05
Явамастер


4-1248431121
Игорь
2009-07-24 14:25
2011.06.05
Перечисление групп процесса


2-1299047111
filimonic
2011-03-02 09:25
2011.06.05
Re


15-1297848575
DelphiN!
2011-02-16 12:29
2011.06.05
Ошибка в bat файле


2-1294930060
Scott Storch
2011-01-13 17:47
2011.06.05
загрузка dll из ресурса





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский