Форум: "Основная";
Текущий архив: 2003.09.01;
Скачать: [xml.tar.bz2];
ВнизМышь над компонентом Найти похожие ветки
← →
Checist [root] (2003-08-16 03:10) [0]Мне нужно сотворить некое действие если мышь была неподвижна 3 сек над компонентом Image1. Как мне такое заколбасить покороче?
← →
Е-Моё имя (2003-08-16 03:35) [1]запоминай время последнего перемещения над картинкой
← →
Checist [root] (2003-08-16 03:37) [2]Но какое событие для этого юзать?
← →
Yakudza (2003-08-16 04:21) [3]OnMouseEnter
← →
Spawn (2003-08-16 08:20) [4]CM_MOUSEENTER
← →
Юрий Зотов (2003-08-16 08:51) [5]> Е-Моё имя © (16.08.03 03:35) [1]
Запоминать придется время ОКОНЧАНИЯ перемещения над картинкой. То есть, момент последней ОСТАНОВКИ мыши. Не подскажете, как это сделать?
> Yakudza © (16.08.03 04:21) [3]
> Spawn © (16.08.03 08:20) [4]
И каким образом MouseEnter позволит отловить паузу в перемещении мыши НАД картинкой?
> Checist [root]
Ставите таймер на 3 сек. В обработчике OnTimer пишете свое действие, а в обработчике OnMouseMove - 2 строки:
Timer.Enabled := False;
Timer.Enabled := True;
Далее, добавляете обработчик сообщения CM_MOUSELEAVE, а в нем пишете: Timer.Enabled := False;
Таким образом, при каждом перемещении мыши над картинкой таймер будет сбрасываться. Если он в течение 3-х секунд не сбросился (т. е., мышь была над картинкой но 3 секунды не двигалась), то сработает OnTimer и выполнится Ваше действие. При уходе мыши за пределы картинки таймер отключится совсем (и Ваше действие выполняться перестанет), а при новом входе мыши в область картинки снова включится слежение за ней.
Только учтите, что ТОЧНО 3 секунды поймать не получится. Получится ПОЧТИ точно, но не точно.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.09.01;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c