Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сохранять данные о позициях курсора в файл


Страницы:   1 2 3

Big Daddy ©   (2002-06-07 10:09:00) 

Как сохранить данные о всех движениях курсора в file.txt
Т.е. все координаты при передвижении курсора типа так:

130,480
131,480
и т.д.


JC   (2002-06-07 14:36:00) [21]

Честно.. не знаю, может и пашет?


Big Daddy   (2002-06-07 14:25:00) [22]

Thanks.
А функция RegisterServiceProcess под XP не пашет


JC   (2002-06-07 14:18:00) [23]

Это конечно не в файл но дальше допишешь:

procedure TForm1.Timer1Timer(Sender: TObject);
var
M:TMouse;
TP:TPoint;
X1,Y1:integer;
begin
M:=TMouse.Create();
TP:=M.CursorPos;
Label1.Caption:="X:"+inttostr(Tp.x);
Label2.Caption:="Y:"+inttostr(Tp.y);
end;


и по-моему в начале перед implementation:
function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall;
external "KERNEL32.DLL";

ставишь по меньше Timer1.Intervalи что-то похожее


Big Daddy   (2002-06-07 14:07:00) [24]

Ну извини тогда, что отнял время зря!


Kaban   (2002-06-07 14:06:00) [25]

да дело не в просто так, сдесь могут подсказать, ошибку найти, а пол часа с кодом возиться, чтобы все гладко работало мне, например, лень


Big Daddy   (2002-06-07 14:04:00) [26]

Вот именно что рано. Но брата попросили написать в школу такую прогу. А он тоже ещё зелен в программировании. Поэтому и прошу код. Но видно и вравду просто так никто не даст :-((


Kaban   (2002-06-07 14:01:00) [27]

Да никто просто так не будет писать тебе код. Ты хоть попробуй сделать то, что тебе предложили. Может тебе пока рано за такие задачи браться.


Big Daddy   (2002-06-07 13:59:00) [28]

Ну, если не жалко, дайте код.
Просто надо очень!


Big Daddy   (2002-06-07 13:47:00) [29]

Но мне надо сделать рекордер.
Скажите кто-нить код pliz


AFROLOV   (2002-06-07 13:45:00) [30]

Делать можно так.
1. Пишем координаты курсора в буфер
2. когда буфер заполняется в отдельном потоке записываем его в файл. Пока файл записывается пишем в новый буфер. Новый буфер так же можно делать в отдельном потоке (подготавливать его и т.д.).


Big Daddy   (2002-06-07 13:36:00) [31]

Я всё равно не понял. У меня с математикой не очень. Если кто-нить даст код, буду благодарен!!


Kaban   (2002-06-07 13:32:00) [32]

Ну еще и код писать

Давай навскидку
допустим сдвинулся ты из (x,y) в (x",y")
Смещение по оси OX x"-x, по оси OY y"-y
Будем двигаться в три приема сначала в точку
(x + 1/3(x"-x), y + 1/3(y"-y) )
(x + 2/3(x"-x), y + 2/3(y"-y) )
(x + (x"-x), y + (y"-y) ) = (x",y")
Можно не втри приема можно больше, дергаться все равно будет.
Чтобы избежать этого нужно вычислять значение следующей точки с помощью тригонометрических функций. Наверное. Вообщем сам думай.


Big Daddy   (2002-06-07 13:23:00) [33]

Я не очень понимаю. Можно код?


Kaban   (2002-06-07 13:19:00) [34]

Ну допустим сдвинулся ты из (x,y) в (x",y") по какой-то кривой
в файл записались только значения (x,y) и (x",y"). При воспроизведении передвигай курсор не сразу из (x,y) в (x",y").
А постепенно по прямой. Разница между настоящим передвижением и воспроизведением не должна быть слишком велика.


Big Daddy   (2002-06-07 13:11:00) [35]

Не, через время фиксировать координаты не надо. Надо всё плавно. Т.е. чтобы была возможность воспроизвести. Ну что-то типа рекордера. Записал координаты в файл, а потом воспроизвёл. Вот такой код не можете написать? (сохранил, воспроизвёл)
Очень надо.


Miwa   (2002-06-07 11:42:00) [36]

Да кстати, а фрагмент то описан в функции обработки сообщений окна.


Miwa   (2002-06-07 11:39:00) [37]

Конечно, на каждое. Правда, я не уверен, считает ли система сдвиг в 1 пиксел перемещением. Во всяком случае, нижеприведенный фрагмент не дает сплошную линию

push 0ffffffh ;белый цвет
push nm_YCur ;координата
push nm_XCur ;кордната
push DrawHNDL ;указатель на рабочую область
call SetPixe ;вызов функции


Kaban   (2002-06-07 11:27:00) [38]

Да, честно говоря, вообще непонятно зачем нужны все координаты


Miron   (2002-06-07 11:24:00) [39]

А может проще будет фиксировать некоторые из положений курсова (через некоторое время) и такие дейсвия как клик


Kaban   (2002-06-07 11:15:00) [40]

Обработка WM_MOUSEMOVE даст более хороший результат, но гладкой линии IMHO добиться все равно не удасться


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо