Читать книгу Программирование для карманных компьютеров - Владимир Волков - Страница 35

Глава 3
Разработка программ для Pocket PC с помощью Microsoft eMbedded Visual Basic 3.0
Использование встроенных компонентов eVB
Другие встроенные компоненты

Оглавление

На рис. 3.23 изображена палитра встроенных компонентов eVB. Каждый из компонентов на рисунке помечен выноской. Краткое описание каждого из компонентов в соответствии с номером на выноске приведено в соответствующем списке.

Рис. 3.23. Набор встроенных компонентов eVB.


1. Shape. Компонент предназначен для вывода на форму закрашенной плоской фигуры (круг, овал, прямоугольник, квадрат, квадрат или прямоугольник со сглаженными углами). Выбор типа фигуры осуществляется установкой свойства Shape. Благодаря наличию методов Move, Refresh и ZOrder возможно манипулирование объектом Shape во время выполнения программы. Объект Shape не может служить контейнером для других объектов. События у объекта Shape отсутствуют.

2. Line. Компонент выводит на форму отрезок прямой заданного цвета, толщины и длины. Отрезок задается координатами двух точек. Метод Move у объекта Line отсутствует, но перемещение отрезка во время выполнения возможно при помощи изменения его координат.

3. Label. Компонент обеспечивает отображение на форме многострочного текста. Сам текст задается установкой свойства Caption и может иметь в длину до 1024 символов. На отображение текста влияют свойства Autosize (компонент изменяет свой размер согласно объему введенного текста) и WordWrap (введенный текст, достигнув горизонтальной границы компонента, переносится на следующую строку по границе слова). Также возможна установка параметров шрифта при помощи изменения свойства Font и параметров выравнивания установкой значения свойства Alignment. Компонент Label реагирует на событие Change, которое возникает при программном изменении свойства Caption. Для управления расположением компонента на форме во время выполнения можно использовать методы Move, Refresh и ZOrder.

4. TextBox. Компонент обеспечивает вывод на форму однострочного или многострочного редактируемого текста. Текст присутствует в компоненте в качестве значения свойства Text. Свойство MultiLine позволяет переключаться между однострочным и многострочным режимом. В однострочном режиме длина строки ограничена 2048 символами, в многострочном режиме общий объем текста может достигать 32 Кбайт. Возможно задание параметров шрифта (свойство Font) и выравнивания текста (свойство Alignment). Если компонент находится в многострочном режиме, то наличие вертикальной и горизонтальной полос прокрутки можно задать установкой свойства ScrollBars. В компоненте Text возможно выделение фрагментов при помощи сочетания клавиш виртуальной клавиатуры или стилуса, а также вырезание, копирование, удаление и вставка из буфера. При осуществлении этих операций программным путем хорошим подспорьем в работе будут свойства SelLength (количество выделенных символов), SelStart (индекс символа, с которого начато выделение) и SelText (строка, содержащая выделенный текст). Естественно, основным предназначением этого компонента является ввод текста с виртуальной клавиатуры. Поэтому компонент реагирует на такие события клавиатуры, как нажатие и отпускание клавиш (KeyDown, KeyPress и KeyUp). К сожалению, эти три события в eVB не используются по отдельности. Причины этого досадного недоразумения излагались в комментариях к упражнению 3.5.

5. Frame. Компонент-контейнер, который позволяет объединять другие видимые компоненты в функциональные группы. Событий не имеет. Свойства компонента в особых комментариях не нуждаются. Чаще всего в компонент Frame помещают несколько компонентов OptionButton, которые при этом автоматически объединяются в группу.

6. CommandButton. Командная кнопка, главное назначение которой – генерировать событие щелчка на кнопке. Это событие с именем Click является основным для компонента CommandButton.

7. CheckBox. Компонент, обеспечивающий индикацию или выбор состояния одного из нескольких независимых параметров. Основным свойством компонента является свойство Value. Значение 0 указывает, что компонент не выбран, значение 1 указывает, что пользователь взвел флажок, а значение 2 свидетельствует о том, что компонент не активен. Основным событием компонента CheckBox является событие Click, которое возникает при изменении значения свойства Value, вне зависимости от того, программным путем меняется это значение или в результате нажатия стилусом.

8. OptionButton. Компонент, обеспечивающий выбор только одного из нескольких зависимых параметров, объединенных в группу. Если не считать функционального назначения, то свойства компонента OptionButton практически не отличаются от свойств CheckBox. Еще одно важное отличие состоит в том, что любой контейнер, в который помещаются несколько компонентов OptionButton, объединяет их в зависимую группу.

9. ComboBox. Выпадающий список, обеспечивающий выбор одной из строк списка, или ввод нужного значения непосредственно в строку редактирования. Основным свойством компонента является набор значений. Этот набор можно ввести в режиме дизайна, нажав кнопку, которая появляется в поле значений при выборе свойства Custom. В окне редактора свойств для каждого элемента списка можно ввести строковое значение (ListData) или целочисленное значение (ItemData). Список выводится только во время выполнения программы, причем в списке отображается только набор строк ListData, а набор значений ItemData служит для связи списка с другими объектами. Свойство Style позволяет разрешить или запретить непосредственный ввод значений в строку редактирования. Редактирование текста в строке производится при помощи тех же свойств (SelLength, SelStart, SelText), что и в компоненте TextBox. Доступ к элементам списка в момент выполнения программы осуществляется при помощи дополнительных свойств. Свойство List возвращает строку, соответствующую указанному индексу. Свойство ListCount возвращает количество элементов в списке. Свойство ListIndex возвращает индекс выбранного элемента списка. Свойство NewIndex возвращает индекс последнего добавленного элемента списка, а свойство TopIndex возвращает индекс первого видимого элемента в прокручиваемом списке. При последовательном изменении значения этого свойства можно программным путем осуществлять прокрутку списка. Наконец, свойство Sorted при установке значения true вынуждает компонент отображать элементы списка отсортированными в алфавитном порядке. Для манипуляций элементами списка во время выполнения программы необходимо использовать методы AddItem и RemoveItem, которые добавляют и удаляют элементы списка с указанным индексом. Метод Clear позволяет очистить список.

События компонента ComboBox не радуют нас разнообразием. Событие Change наступает при программном или пользовательском редактировании строки ввода. Событие Click наступает при выборе элемента списка. При прокрутке списка наступает событие Scroll.

10. ListBox. Поскольку компонент ComboBox является комбинацией компонентов TextBox и ListBox, то все, относящееся к нему, будет верно и для компонента ListBox. Компонент ListBox отличается только реализацией. Он постоянно присутствует на форме в виде прямоугольной области, в которой размещен прокручиваемый список. Небольшое отличие состоит в том, что в компоненте ListBox возможно осуществлять выбор сразу нескольких элементов списка. Для этого необходимо установить свойству MultiSelect значение 1 для последовательного выделения элементов или значение 2 для произвольного выделения нескольких элементов списка одновременно.

11. HScrollBar. Компонент реализует горизонтальную полосу прокрутки. Используется для установки или для индикации значения, которое может плавно изменяться в широких пределах. Свойство Max позволяет задавать максимальное значение, которое может принимать свойство Value. Оно соответствует крайнему правому положению движка компонента. Свойство Min устанавливает минимальное значение, которое может принимать свойство Value. Свойство Value хранит значение, соответствующее текущему положению движка полосы прокрутки. Свойство LargeChange содержит значение смещения, которое соответствует большому шагу движка, при щелчке стилусом на полосе прокрутки. Свойство SmallChange соответствует малому шагу движка при нажатии стилусом на кнопке со стрелкой на полосе прокрутки. Кроме этого, для передачи значений от компонента Scrollbar в настраиваемое свойство используют события Scroll (происходит при перемещении движка) и Change (происходит при перемещении движка или изменении свойства Value программным путем).

12. VScrollBar. Компонент реализует вертикальную полосу прокрутки. В остальном компонент соответствует HScrollBar.

13. Timer. Единственным назначением этого компонента является генерация события Timer с интервалом, который устанавливается свойством Interval. Свойство Interval может быть установлено в пределах от 1 до 65 535. Когда надо приостановить работу таймера, следует установить его свойство Enabled в false.

Несмотря на то что встроенные компоненты eVB позволяют реализовать довольно широкий набор функций, можно заметить, что для создания полноценного приложения не хватает достаточно многих компонентов. На палитре нет элементов меню, нет операций с файлами, нет компонентов для работы с данными, представленными в табличном виде или в виде иерархического дерева. Даже графические изображения вывести нельзя.

Вся эта функциональность, безусловно, есть. Но реализована она в виде компонентов ActiveX. Компоненты ActiveX вынесены в отдельную группу, поскольку в самой среде eVB создать их невозможно. Visual Basic не умеет полноценно работать с COM-технологиями, но зато умеет эффективно использовать плоды их работы, то есть созданные ранее компоненты ActiveX.

Программирование для карманных компьютеров

Подняться наверх