Рис. 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.13
Rem 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», «Полужирный»
mnuFile.Items.Item(1). SubItems.Add 2, «itItal», «Наклонный»
mnuFile.Items.Item(1). SubItems.Add 3, «itSize», «Размер»
Rem 6
mnuFile.Items.Item(1). SubItems.Item(3). SubItems.Add 1, «it8», «* 8»
mnuFile.Items.Item(1). SubItems.Item(3). SubItems.Add 2, «it10», «10»
mnuFile.Items.Item(1). SubItems.Item(3). SubItems.Add 3, «it12», «12»
Rem 7
mnuFile.Items.Add 2, "", ""
mnuFile.Items.Item(2). Style = mbrMenuSeparator
Rem 8
mnuFile.Items.Add 3, «itOpen», «Открыть»
Rem 9
mnuFile.Items.Add 5, "", ""
mnuFile.Items.Item(5). Style = mbrMenuSeparator
Rem 10
mnuFile.Items.Add 6, «itExit», «Завершить работу»
Rem 11
Set mnuSep = MenuBar1.Controls.AddButton(«mnuSep»)
mnuSep.Style = mbrSeparator
Rem 12
Set mnuClr1 = MenuBar1.Controls.AddButton("1")
mnuClr1.Style = mbrButtonGroup
mnuClr1.Caption = " 1»
Set mnuClr2 = MenuBar1.Controls.AddButton("2")
mnuClr2.Style = mbrButtonGroup
mnuClr2.Caption = " 2»
Set mnuClr3 = MenuBar1.Controls.AddButton("3")
mnuClr3.Style = mbrButtonGroup
mnuClr3.Caption = " 3»
Rem 13
Frame1.Top = -200
List1.Clear
End Sub
13. Теперь этот листинг надо детально рассмотреть. В качестве ссылок будут использоваться номера комментариев в тексте.
1) Объявляется переменная типа MenuBarMenu. Переменная одна, значит, на панели команд устройства будет один пункт меню.
2) Объявляются переменные типа MenuBarButton. Переменных этого типа четыре, значит, на панели команд устройства будет четыре кнопки.
3) Создается объект типа MenuBarMenu как элемент коллекции. При создании ему присваивается уникальный идентификатор mnuFile, задаем надпись, которая будет отображаться на кнопке меню, и этот объект связывается с переменной mnuFile.
4) Поскольку пункт меню может содержать в себе команды, коллекция команд содержится в свойстве Items. Она может быть пополнена при помощи вызова метода Add, что и происходит в этом фрагменте кода. Добавляются команды меню Файл и Редактирования шрифта. В качестве аргументов метода Add выступает индекс добавляемого элемента (1), уникальный ключ (itFont) и надпись, которая будет выведена в пункт меню – Редактированиешрифта. То, к какой именно команде меню относятся данные действия, определяется индексом, который указывается в скобках после свойства Item.
Читать дальше
Конец ознакомительного отрывка
Купить книгу