КАК ПРИ НАВЕДЕНИИ МЫШКОЙ НА TImage изменить его рисунок
курсора на TImage, а затем при его снятии, чтобы картинка изменилась на первоначальную?
Спасибо.
У TImage есть событие OnMouseMove, в нём всё и реализуйте. Как только первый раз событие произошло, так установите флаг и измените картинку. Как только OnMouseMove сработает у того, на чём лежит TImage (на форме, фрейме или панели), то при наличии установленного флага измените картинку на первоначальную и сбросьте флаг.
Огромное спасибо за все Ваши советы (за TeeChart тоже :) ).
В чем общем-то задача: мне нужно реализовать набор картинок-кнопок (что-то типа ToolBar'a) и чтобы эти кнопки были круглые и имели 3 состояния: обычное, наведение курсора и нажатие на кнопке.
Пропробовал воспользоваться Вашим алгоритмом, но сразу возникают проблемы. TImage на форме окружен разными компонентами. Что делать допустим в случае, если после наведения на картинку, курсор сразу же попадает на такой компонент как, допустим, TMainMenu, у которого нет свойства OnMouseMove?
В чем общем-то задача: мне нужно реализовать набор картинок-кнопок (что-то типа ToolBar'a) и чтобы эти кнопки были круглые и имели 3 состояния: обычное, наведение курсора и нажатие на кнопке.
Пожалуй, тогда лучше создать свои собственные кнопки. Наверное, есть компоненты для реализации лично рисуемых (owner draw) кнопок.
TImage на форме окружен разными компонентами. Что делать допустим в случае, если после наведения на картинку, курсор сразу же попадает на такой компонент как, допустим, TMainMenu, у которого нет свойства OnMouseMove?
Я сталкивался с какой проблемой. Пробовал ставить всем компонентам в обработчик события OnMouseMove такую функцию как пишет fellow. Но беда в том, что мышка движется рывками (есть какая-то частота скачков в секунду), и при резком рывке мышью с кнопки на компонент не имеющий OnMouseMove, кнопка оставалась "поднятой".
Правильнее всего было бы научить программу реагировать на событие "перемещение мыши по экрану" (это делается на WinAPI), и, зная координаты окна и координаты кнопок на нем, проверять, не находится ли указатель мышки над какой-то из кнопок. И принимать соответствующие меры.
Кстати, функция реагирующая на перемещение мыши (будь она в OnMouseMove или как я написал выше) должна быть хорошо оптимизирована, т.к. она будет вызываться много раз в секунду.