Создание эффекта перемещения указателя мыши
Эффект перемещения указателя мыши (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 (путь), задающее в виде текстовой строки местоположение текущей БД.
Поместив эту строку, вы сможете спокойно копировать вашу БД куда угодно при условии, что файлы рисунков находятся в той же папке.