Создание эффекта перемещения указателя мыши

Эффект перемещения указателя мыши (mouseover effect) — это действие, возникающее при перемещении мыши поверх какого-либо участка формы. Web-дизайнеры часто используют этот эффект для изменения внешнего вида кнопок при перемещении по ним указателя мыши.

В программе Access легко создать эффект перемещения указателя. Необходимо только отреагировать на событие Перемещение указателя(On Mouse Move). Вы можете использо­вать событие формы Перемещение указателя(On Mouse Move), если хотите следить за перемещением мыши по всей форме. Но гораздо чаще событие Перемещениеуказателя (On Mouse Move) применяется к конкретным элементам управления, что позволяет опреде­лить перемещение указателя поверх этих элементов управления.

В форме, приведенной на рис. 16.10, применяется эффект перемещения указателя мыши.

Как обычно для реализации подобного поведения, следует начать с добавления дополни­тельных необходимых элементов управления, например кнопки Don't Click Me(не щелкай меня мышью) и рисунка (названного HappyFace(счастливое лицо)).

Когда описанные детали добавлены, необходимо создать две процедуры. Первая реагирует на событие кнопки Перемещение указателя(On Mouse Move). Она заменяет рисунок счаст­ливого лица рисунком с расстроенным лицом, когда мышь перемещается поверх кнопки:

Private Sub DoNotClickButton_MouseMove(Button As Integer, _

Shift As Integer, X As Single, Y As Single)

HappyFace.Picture = "C:\Images\UnHappy.jpg" End Sub


 
 

Рис. 16.10.Вверху: первоначальное отображение формы. Внизу: когда мышь перемещается поверх кнопки Don't Click Me(не щелкай меня мышью), на изображении, расположенном сбоку, счастливое лицо сменяется расстроенным. Подвигайте мышь где-нибудь в другом месте, и счастливая физиономия вернется на экран

В этом коде предполагается, что файл с изображением (названный UnHappy.jpg) поме­щен в папку C:\Images.

Как и при создании другого программного кода, можно ввести текст процедуры вручную в уже существующий модуль формы, или, что гораздо удобнее, применить для ее создания Окно свойств(см. разд. "Помещение кода в форму "ранее в этой главе).

 

 

Подсказка

Событие Перемещение указателя(On Mouse Move) возникает очень часто. Когда мышь пе­ремещается от одного края формы к другому, подобные события возникают многократно. По этой причине следует убедиться в быстроте выполнения написанного вами кода, реагирующего на данное событие, иначе он может сделать вашу форму медлительной.

 

 

Вторая процедура реагирует на событие Перемещение указателя(On Mouse Move) объ­екта формы Область данных, которая возникает, когда вы отодвигаете мышь от кнопки и


перемещаете ее поверх свободного пространства, находящегося вокруг нее. Данная про­цедура переключает на исходный рисунок, отображающий счастливое лицо.

 

Private Sub Detail_MouseMove(Button As Integer, _

Shift As Integer, X As Single, Y As Single)

HappyFace.Picture = "C:\Images\Happy.jpg"

End Sub

У написанного кода есть один недостаток. В данный момент он рассчитывает на то, что файлы UnHappy.jpg и Happy.jpg находятся в конкретных местах жесткого диска. Эту деталь трудно гарантировать — в конце концов, кто сказал, что вы не можете перенести их куда-нибудь в другое место или попытаться открыть БД на другом компьютере?

Лучше поместить рисунки в ту же папку, что и файл БД. Вы можете указать программе Access на подобное местоположение с помощью следующего кода:

 

HappyFace.Picture = CurrentProject.Path & "\Happy.jpg"

В этом коде применяется специальный объект, всегда доступный в любом коде, который вы пишите: объект CurrentProject (текущий проект), предоставляющий информацию о текущей БД и содержащихся в ней объектах. У объекта CurrentProject есть свойство Path (путь), задающее в виде текстовой строки местоположение текущей БД.

Поместив эту строку, вы сможете спокойно копировать вашу БД куда угодно при усло­вии, что файлы рисунков находятся в той же папке.