Владимир Волков - Программирование для карманных компьютеров
Компонент MenuBar
Ртот компонент предназначен для создания РѕСЃРЅРѕРІРЅРѕРіРѕ меню РІ программах для Pocket PC.
При помещении на форму данный компонент может сбить с толку тех, кто привык к визуальному дизайну. Выглядит он бедненько, и никаких средств настройки в инспекторе объектов обнаружить нельзя. В режиме дизайна компонент похож на кнопку, а не на меню. Тем не менее этот компонент позволяет создавать полнофункциональное основное меню.
Свойство Enabled позволяет делать меню недоступным РІ С…РѕРґРµ выполнения приложения. Для этого достаточно лишь установить для свойства значение false. Если для свойства NewButton задать значение true, то РЅР° полосе меню появится новая РєРЅРѕРїРєР° СЃ именем New. Рспользование этих свойств обсуждается РІ следующем упражнении.
Упражнение 3.6
1. Создать новый проект с формой и сохранить его в папке EnPhrase с именем EnPhrase.ebp.
2. Установить для свойства формы Caption значение Учим английские фразы, а значение свойства Height нужно сделать равным 7050. Такая длинная форма нужна для того, чтобы посмотреть, как работает компонент VScrollBar.
3. Добавить к проекту компонент Frame. Значения его свойств приведены в таблице 3.7.
Таблица 3.7. Свойства компонента Frame4. Добавить к проекту три компонента Label. Значения свойств этих компонентов приведены в табл. 3.8.
Таблица 3.8. Значения свойств компонентов Label1, Label2 и Label35. Добавить к проекту четыре компонента CommandButton. Значения свойств этих компонентов приведены в табл. 3.9.
Таблица 3.9. Значения свойств компонентов Command1, Command2, Command3 и Command46. Добавить к проекту компонент ListBox. Значения свойств этого компонента приведены в табл. 3.10.
Таблица 3.10. Значения свойств компонента ListBox7. В первом приближении дизайн программы завершен. В дизайнере форм он будет выглядеть так, как это показано на рис. 3.28.
Рис. 3.28. Дизайн программы.8. Чтобы фрейм, который имеет размер больший, чем размер экрана, можно было прокручивать при помощи вертикальной полосы прокрутки, нужно написать обработчик события Change для компонента VScroll. Код этого обработчика приведен в листинге 3.12. Листинг 3.12
Private Sub VScroll1_Change()
Frame1.Top = -200 – VScroll1.Value
End SubТеперь можно запустить проект в эмуляторе и посмотреть, как при помощи полосы вертикального скроллинга происходит прокрутка экрана. Граничные значения свойства Value равны тому значению, на которое надо будет сдвигать фрейм в окне, и поэтому обработчик события получился простым. Начальное значение -200 нужно для того, чтобы край фрейма не отображался на форме и не портил общий внешний вид приложения.
9. Чтобы создать в приложении основное меню, необходимо сначала подключить к приложению соответствующую библиотеку. Для этого надо выполнить команду Project ? Components и установить флажок напротив компонента Microsoft Pocket PC MenuBar Control. Следует также задать настройки для автоматической регистрации компонента на устройстве при помощи команды Project ? Project Properties|Update Components ? Always|Component to Updates ? Project Components.
10. После того как библиотека будет добавлена Рє проекту, соответствующий значок появится РЅР° палитре компонентов, Рё компонент MenuBar можно будет поместить РЅР° форму. Для свойства NewButton нужно установить значение false. Запуск проекта РІ таком состоянии РЅРµ покажет никаких изменений. Чтобы меню отобразилось РЅР° форме, необходимо настроить Рё создать объекты, соответствующие тому, что должно отображаться РЅР° форме. Рто делается программным путем РІ обработчике события Form_Load().
11. Прежде чем писать обработчик события, нужно разобраться с компонентом MenuBar. Сам компонент представляет собой коллекцию команд меню (объект MenuBarMenu) и кнопок (объекты MenuBarButton), которая создается и отображается на нижней панели экрана Pocket PC. Кроме свойств объекта MenuBar, которые отображены в инспекторе, есть еще свойство Collection, содержащее индексированную коллекцию меню и кнопок, и свойство ImageList, содержащее ссылку на коллекцию изображений, которые будут отображаться на кнопках. События ButtonClick, MenuClick и NewClick предназначены для обработки событий щелчка на кнопках, пунктах меню и кнопки New соответственно.
Добавление компонентов к коллекции производится при помощи методов AddButton и AddMenu объекта Collection. Доступ к элементам коллекции может производиться как по индексу, так и по символьному ключу, который задается для каждого элемента коллекции в момент его создания.
12. Добавить к коду приложения обработчик события Form_Load(). Код обработчика приведен в листинге 3.13. В него добавлены комментарии, которые можно не вводить в код приложения. Они потребуются лишь для удобства рассмотрения этого фрагмента.
Листинг 3.13Rem 1
Dim mnuFile As MenuBarMenu
Rem 2
Dim mnuSep, mnuClrl, mnuClr2, mnuClr3 As MenuBarButtor
Rem 3
Set mnuFile = MenuBarl.Controls.АсШепиС'Файл", «mnuFile»)
Rem 4
mnuFile.Items.Add 1, «itFont», «Редактирование шрифта»
Rem 5
mnuFile.Items.Item(1). SubItems.Add 1, «itBold», «Полужирный»