Интернет-журнал "Домашняя лаборатория", 2007 №7
Шрифт:
Для того, чтобы элемент управления из какой-либо библиотеки мог быть использован при создании формы в программе на Visual Basic for Applications, эту библиотеку необходимо подключить. Делается это простым проставлением отметки против имени нужной библиотеки в окне "Сервис — Дополнительные элементы". При этом на Панели инструментов "Панель управления" (та, которая Toolbox) появляются новые элементы, которые можно располагать на форме.
Рис. 4.21. Подключаемые элементы управления.
Как
Стоит помнить, что подключаемые элементы отнюдь не всегда имеют файл с описанием их свойств и команд передачи параметров. Часто такие элементы для своей работы требуют, чтобы им сообщили из программы определенную информацию, без которой их использование невозможно. Поэтому зачастую работа с ними бывает затруднена. Удобство же работы с подключаемым элементом и наличие справочной системы к нему целиком зависят от программиста, который этот элемент создавал, — зачастую элемент и не предназначен для использования в других программах, и потому никакой справки не имеет.
Весьма полезным элементом управления является "Календарь" (рис. 4.22), представляющий собой календарь на определенный месяц. "Календарь" устанавливается при инсталляции Microsoft Office (если он отмечен как устанавливаемый в соответствующей графе установщика в разделе "Microsoft Access") и отображает распределение дней определенного месяца по дням недели. При смене месяца или года с помощью входящих в "Календарь" выпадающих меню распределение дней автоматически пересчитывается. "Календарь" снабжен подробной справкой (выводится по F1, если нажать ее, выделив вставленный на форму "Календарь"), в русской версии Microsoft Office даже переведенной на русский язык. С помощью "Календаря" весьма удобно получать от пользователя какую-либо дату, которую он должен ввести.
"Календарь" подключается к Редактору VBA там же, где и все остальные дополнительные элементы управления — в окне "Сервис — Дополнительные элементы".
Рис. 4.22. Элемент управления "Календарь".
С помощью элемента управления "Windows Media Player" можно вставить на форму проигрыватель аудио- и видеофайлов. Имя файла для проигрывания, а также параметры отображения полосы поиска, кнопок управления проигрыванием и показом задаются либо через Окно Свойств, либо программно. Теперь Word можно превратить в настоящий кинозал и даже развлекать пользователя просмотром фильма в то время, пока программа работает (рис. 4.23). Возможности проигрывателя по воспроизведению мультимедийных файлов, встроенного в программу на Visual Basic for Applications, такие же, как и у самого Windows Media Player.
Рис. 4.23. Любимый фильм в среде Word — это не шутка.
Если вы желаете, чтобы во время работы программы играла фоновая музыка, просто расположите "Windows Media Player" за пределами видимой части формы (соответственно задав ему значения отступа сверху или слева — Тор или Left). Только помните, что воспроизводимый файл не сохраняется вместе с шаблоном или документом, содержащим программу, поэтому позаботьтесь о том, чтобы при инсталляции он оказался в известном программе месте (например, в папке автозагружаемых файлов Word или
системном каталоге Windows), и чтобы путь к этому файлу в свойстве FileName соответствовал действительности.Подключение элемента управления требуется только на этапе создания программы, — для того, чтобы он отображался на "Панели управления". Для работы программы, содержащей какой-нибудь дополнительный элемент управления, его подключение не требуется. Однако в том случае, если файл с этим элементом отсутствует на том компьютере, где запускается программа, то будет выдано сообщение об ошибке. Поэтому весьма желательно по возможности ограничиваться традиционными элементами управления или использовать лишь те из них, которые наверняка окажутся у пользователя программы. Впрочем, нужные библиотеки или файлы с элементами управления можно и установить вместе с программой современные программы — производители инсталляторов позволяют автоматически делать подобные установщики.
События форм. Необходимо помнить, что создание элемента — только начало работы над формой. Подавляющее большинство элементов сами по себе элемент никаких действий не выполняют, за исключением тех, которые их определяют. Кнопка — нажимается под мышкой или Enter'ом, список показывает значения, бегунок на полосе прокрутки двигается, во флажке можно поставить и убрать галку, но не более того! (Разве что "Windows Media Player" играет сам по себе.)
Для того, чтобы элемент выполнял какое-нибудь действие при действии с ним, нужно написать для него программу реакции на события.
Событий, могущих произойти с элементом, много. Это и двойной щелчок мыши на нем, это и проводка мыши над ним, это и ввод текста в поле ввода, это и нажатие на вкладке, это и переход к другому элементу, и многое другое.
Для того, чтобы написать программу обработки реакции на событие, нужно два раза щелкнуть на элементе. Откроется окно написания программ реакций на события, и автоматически написанная заготовка будет иметь вид:
Private Sub CommandButtonl_Click
End Sub
Теперь в текст этой процедуры можно вводить команды, которые выполнятся, если событие в заголовке — Click мыши — произойдет. Это событие считается стандартным для кнопок, флажков, рисунков, рамок, переключателей и окон отображения текста. Для остальных стандартных элементов — полей ввода текста, полос прокрутки, счетчиков и др. — стандартным считается событие Change, то есть их изменение, а для дополнительных элементов управления — те события, которые заданы таковыми их создателями.
Список возможных событий для элемента можно получить, поставив курсор внутрь процедуры обработки стандартного события и выбрав нужное из выпадающего меню справа вверху окна написания программы (рис. 4.23). В выпадающем меню слева вверху этого окна указаны все процедуры и функции программы реакции формы на события.
Рис. 4.24. Выпадающий список событий.
В программе реакции формы на события могут быть и другие процедуры и функции, не связанные с элементами формы.
У некоторых событий есть параметры, с которыми информация об его происшествии передается программе. Так, процедура обработки события KeyDown (то есть нажатия какой-либо клавиши тогда, когда активен данный элемент) имеет вид
Private Sub CommandButtonl_KeyDown(ByVal KeyCode As MSForms.Returnlnteger, ByVal Shift As Integer)
End Sub
Переменная KeyCode будет после срабатывания данной процедуры будет иметь значение, равное коду нажатой клавиши, а переменная Shift — 1, если соответствующая клавиша была нажата, и 0, если нет. Эти переменные можно использовать в процедуре обработки события.