Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.04.29;
Скачать: [xml.tar.bz2];

Вниз

Еще один вопрос   Найти похожие ветки 

 
SerJaNT ©   (2007-04-04 05:40) [0]

На событие Image OnMouseMove и обновляю положение другого Image вот так:

image3.Left:=x - (image3.width div 2);
image3.top:=y+25;


Вопрос такой: когда я перемещаю курсор, то image3 просто перемещается за курсором, а как сделать чтобы он плавно перемещался так сказать с эффектом "оставания", т.е. если я резко дерну мышку, то image3 плавно проследует за ней?


 
KSergey ©   (2007-04-04 06:08) [1]

Я вижу, например, 2 варианта
Какой будет лучше работать - не знаю.

а) таймер. Собственно перемещение делаем в собитии таймера. В OnMouseMove лишь активизируем таймер, разумеется.
б) в OnMouseMove кидаем себе некое кастомное сообщение, в его обработчике двигаем картинку и, если новое положение картинки не достигло требуемых координат - кидаем снова себе это же кастомное сообщение. Разумеется - через PostMesage, т.е. в очередь. Возможно. придется добавить небольшую задержку (таймером? может быть, но только не Sleep или пустой цикл!!), чтобы не получалось, что перемещение происходит слишком быстро, да еще с разной скоростью в зависимости от производительности.

Разумеется, в обоих случаях картинку двигаем не в позицию координат мыши, а на кукоторую величину относительно предыдущего положения. Короче тут подумать немного надо как лучше координаты пересчитывать.

Кроме того, возможно (для красоты эффекта) есть смысл сделать даже так: в основном потоке - отрисовка картинки и ее "возбуждение события2 по ее перемещения (отриковке в новых координатах), а в дополнительном - таймер, который бы вне зависимости от всего прочего отсчитывал кол-во шагов, на которое надо переместить картинку. В противном случае на медленных машинах рискуем получить эффект, когда картинка будет двигаться медленее из-за того, что каждый раз будет сдвигатья лишь на один шаг, в то время, как время прошло уже порядочно и надо бы двинуться на два-три и т.д. шага, пусть это и будет приводить к некоторым "рывкам" - зато скорость движения будет постоянна (при большом времени отрисовки или прочих расходов на полезную работу приложения).



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2007.04.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.036 c
9-1148897218
аматор
2006-05-29 14:06
2007.04.29
каким образом создать модель?


2-1176011061
ditork
2007-04-08 09:44
2007.04.29
матрица


15-1175578849
StriderMan
2007-04-03 09:40
2007.04.29
отладочный попроцедурный лог


2-1176065678
ElectriC
2007-04-09 00:54
2007.04.29
Минимизация API-окна


2-1175946045
Temp_Yuriy
2007-04-07 15:40
2007.04.29
Изменение положения объектов в зависимости от размера формы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский