главная продукты downloads форум тех. поддержка

 

Главная страница
 

  www.bousoft.com

   главная страница
   новости СМИ
   ссылки
   о проекте
   добавить в Избранное
   сделать стартовой
 

   наши разработки

   shareware
   freeware
   регистрация
 

справка и FAQ   

   статьи
   книги
   FAQ: WinForms
   FAQ: GDI+
   MS Office
   web-технологии
   wap-технологии
 

   программирование

   visual basic: ActiveX
   visual basic: примеры
   .net framework
   c++
   delphi
   rapidQ
 

   наши компакт-диски

   диск BouSoft #3
   диск Windows PE

Создание приложений для карманных компьютеров

 

Со стремительным развитием компьютерных технологий на рынке начало появляться множество моделей карманных компьютеров. Эти компьютеры еще иногда называют PDA (personal digital assistant). Они выполняют множество задач, среди которых ор­ганизация контактов и работа с электронной почтой. Карманные компьютеры представляют интерес для разработчиков программ VB. На рис. 27.1 показан обычный карманный компью­тер, выглядящий крошечным в сравнении персональным компьютером.

В карманных компьютерах используется упрошенная операционная система Windows, из­вестная как Windows СЕ. Эта система по своим функциям очень похожа на обычный Windows, поэтому переход на нее не вызовет особых трудностей. В дополнение, Microsoft создала для разработчиков VB отдельный пакет eMbedded Visual Basic (MVB) для создания приложе­ний под ОС Windows СЕ. В этой главе мы рассмотрим процесс создания приложений в MVB для работы в карманных компьютерах под управлением Windows СЕ.

 

Рис. 27.1. Разработчики VB легко могут создать приложения для таких карманных компьютеров

Установка eMbedded Visual Basic

Пакет MVB представляет собой отдельную, независимую редакцию Visual Basic. Этот пакет устанавливается отдельно от Visual Studio .NET. Во время создания этой книги последней вер­сией пакета являлась версия 3.0, которую абсолютно свободно можно загрузить с Web-узла Mi­crosoft. На рис. 27.2 показана среда разработки eMbedded Visual Basic.

Для загрузки MVB, на узле www.microsoft.com/mobile обратитесь к ссылке Developer.

Как и другие редакции VB, среда разработки содержит Project Explorer, Forms Designer и Toolbox. Несмотря на некоторые отличия и ограничения, вы можете использовать все извест­ные концепции обычного VB для того, чтобы начать работать с пакетом.

Использование эмулятора карманного компьютера

 

Рис. 27.2. Среда разработки MVB знакома программистам Visual Basic
 

Рис. 27.3. Эмулятор карманного компьютера можно выключить, щелкнув кнопку питания на его панели на экране
 

Вам может показаться, что теперь для работы нужно немедленно покупать карманный ком­пьютер. Однако это далеко не так. При инсталляции MVB вы можете также установить Soft­ware Development Kit (SDK) для карманных компьютеров. Он включает в себя эмулятор, моделирующий карманный компьютер на вашем рабочем столе. Для тестирования этого эму­лятора выберите программную группу Microsoft Platform SDK for Pocket PC и выберите в ней Desktop Pocket PC Emulation. Вы увидите экран, похожий на рис. 27.3.

 

Во время написания книги эмулятор карманного компьютера не работал под управлением Windows 95/98, а только а системе Windows 2000.

Когда вы запускаете приложение в MVB, ваша форма отображается в окне эмулятора, а не на рабочем столе самой Windows.

Поиск справочной информации

В последующих разделах будут рассмотрены основы создания приложений для кар­манных компьютеров. Однако если вы решили всерьез заняться разработкой программдля карманных компьютеров, то вам потребуется справочный материал по конкретным вопросам. В поисках информации вы можете обратиться к следующим ресурсам:

       Файлы помощи. Выберите Contents в меню Help и вы увидите обширный раздел помощи, установленный на вашем диске;

       API Text Viewer. Откройте программную группу Tools и отыщите в ней API Text Viewer. Он содержит список функций операционной системы Windows СЕ, которые вы можете вызвать в своей программе;

       Группы новостей в Интернет. Установите вашу программу чтения новостей на узел msnews .microsoft. com, в котором вы сможете найти различные группы новостей по тематике карманных компьютеров;

       Web-узлы. Кроме указанной выше области по тематике карманных компьютеров на официальном узле компании Microsoft, вы можете найти множество других узлов, содержащих советы и примеры программ. Вот некоторые из них: www.pocketpcpassion.com и www.purece.com.

Создание примера приложения

В настоящем разделе показывается построение интерфейса пользователя, используя формы MVB. В процессе создания приложения мы создадим программу, работающую на карманном компьютере подобно проекту Windows Application на настольном компьютере. Наше приложение предназначается для осуществления складского учета. В процессе того, как экспедиторы погружают или разгружают продукцию на складе, менеджеры склада вводят данные в карманный компьютер. Затем, когда менеджер возвращается в офис, вве­денная информация с помощью настольного компьютера автоматически подгружается в центральную базу данных. Для начала создания приложения, запустим на выполнение MVB и выберем в меню создание нового проекта Windows СЕ. В этом разделе будет напи­сан текст программы, предназначенной для работы на карманном компьютере. В следую­щих разделах будет рассмотрен вопрос передачи данных из карманного компьютера в базу данных настольного компьютера.

Разработка интерфейса пользователя

Карманный компьютер имеет значительно меньший экран, чем обычный компьютер. В связи с этим количество доступного для размещения форм пространства в значительной мере ограничено. Карманный компьютер, показанный на рис. 27.1, имеет разрешение эк­рана 240x320 пикселей, что намного меньше, чем на обычном компьютере. В дополнение, карманный компьютер не имеет присоединенной к нему клавиатуры, поэтому, когда на его экране появляется виртуальная клавиатура, часть формы может оказаться ею закры­той. Исходя из этого, при разработке интерфейса пользователя нужно применить более тщательный подход к этому вопросу. Как мы увидим, элементы MVB содержат достаточно функций для разработки интерфейса пользователя.

 

Создание основных элементов

Для нашего примера приложения складского учета мы построим интерфейс, позволяющий вводить минимальные данные в форму. Для создания формы выполните следующие действия:

1.Установите имя формы в frmMain, а свойство Caption в Inventory Maintenance.

2.  Задайте именем проекта prjInventory.

3.  Добавьте в форму элементы, перечисленные в таблице 27.1, установив соответственно и
их свойства
Name и Caption.

Таблица 27.1. Установки элементов для примера приложения

Тип элемента

Свойство Name

Свойство Caption

Label

IblDriver

Driver  Name

Label

IblProduct

Product

Label

IblQuantity

Quantity

ComboBox

cmbDriver

 

ComboBox

cmbProduct

 

Timer

trarQuantity

 

TextBox

txtQuantity

0

OptionButton

optShipped

Shipped

OptionButton

optReceived

Received

CommandButton

cmdPlus

+

CommandButton

cmdMinus

-

CommandButton

cmdConfirm

Confirm

4.  Установите свойство Value для элемента optReceived в True.

5.  Установите свойство Enabled для tnnQuantity в False.

6.  Установите свойство Text элемента cmbDriver и cmbProduct в пустую строку.

Дополнительные элементы

Все элементы, перечисленные в таблице 27.1, включены в панель инструментов по умолча­нию. Однако, некоторые другие элементы доступны посредством пункта Components в меню Project. В нашем примере мы будем использовать два таких элемента. Для их установки вы­полните следующие действия:

1.В меню Project выберите Components. В списке выберите Microsoft CE ListView Control и Microsoft CE File System Control. Нажмите кнопку ОК диалогового окна.

2.  Добавьте элемент ListView в форму. Установите его свойство Name в IvData.

3.  Добавьте элемент FileSystem в форму. Установите его свойство Name в fsMain.

4.  В конструкторе проекта щелкните правой кнопкой на элементе frmMain и выберите пункт View Code. Добавьте следующие строки для события Load этой формы:

LvData.View_lvwReport

LvData.ColumnHeaders.Add,     ,"Entered",750

LvData.ColumnHeaders.Add,     ,"Driver",1000

LvData.ColumnHeaders.Add,     ,"Qty.",500

LvData.ColumnHeaders.Add,     ,"Product",900

5. Расположите элементы на форме так, как показано на рис. 27.4.

 

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

Динамическое изменение размеров формы

После создания всех элементов формы необходимо написать текст программы, позволяю­щий интерфейсу пользователя работать в соответствии со средой карманного компьютера. Ко­гда мы просматривали события, имеющиеся в форме, то отметили наличие некоторых особен­ностей, связанных со средой СЕ:

       событие OKClick. Отметим, что процедура обработки события OKClick автоматически
заполняется при выполнении выражения
App.End
. Приложения для карманных ком­
пьютеров имеют стандартную кнопку ОК в заголовке формы, предназначенную для за­
крытия текущего окна.

       Событие SIPChange. Это свойство можно использовать для ввода текста программы,
предназначенного для изменения размещения элементов формы и ее размеров при по­
явлении на экране эмулятора клавиатуры.

 

Рис. 27.4. Вы можете размещать элементы и устанавливать их свойства в MVB так же, как это вы делали в среде VB.NET

Клавиатура и средства распознавания рукописного текста известны  как программная панель ввода (SIP). Наряду с размерами, она является наиболее очевидным различием между карман­ным и настольным компьютером. Обрабатывая событие SIPChange в программе, можно про­граммно управлять размещением формы при появлении на экране SIP. Для добавления этих функций в наш пример, выполним следующие действия:

1.Убедимся, что свойство FormResize формы установлено в vbFormFullSIResize. Это значение обеспечивает разворачивание формы на весь экран и автоматическое изменение размеров при отображении SIP.

2.  Добавим следующую строку в событие SIPChange:
LvData.Heigth=frraMain.Heigth
-1500

Эта строка указывает табличному элементу установить свою высоту на 1500 пикселей меньше обшей высоты формы при возникновении события SIPChange.

 

Хотя управление появлением SIP целиком возложено на пользователя, установив свойство siPBehavior формы, разработчик получает управление появлением SIP на экране не­посредственно из программы. Также можно установить автоматический режим для SIP, ото­бражая ее при получении фокуса определенными элементами формы.

Ввод текста пользователем

В нашем примере пользователь должен иметь возможность заполнения поля количества товара, принятого на склад или отпущенного с него. SIP может использоваться для ввода текста в любое текстовое поле. Однако ввод данных с миниатюрного эмулятора клавиатура не всегда удобен, особенно условиях напряженной работы склада. Для решения этой проблемы мы по­местили в нашу форму две дополнительные кнопки, увеличивающие и уменьшающие количе­ство в текстовом поле. Программирование функций этих кнопок сводится к написанию одной строки для события Click. Однако изменение значения набольшую величину потребует мно­гократного нажатия на эти кнопки, что так же не удобно.

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

Листинг 27.1. ppcdemo.zip быстрое изменение количества

Dim m_nlncrement   As  Integer

Private  Sub  cmdMinusMouseDown  (ByVal  Button As

Integer,  ByVal  Shift  As  Integer,_

ByVal  X  As  Single,  ByVal  У  As  Single)

m_nlncrement  =  -1

tmrQuantity.Interval  =  300

tmrQuantity.Enabled  =  True

End  Sub

Private  Sub  cmdMinus_MouseUp{ByVal  Button  As

Integer,  ByVal  Shift  As  Integer,_

ByVal  X As  Single,  ByVal  Y As  Single)

tmrQuantity.Enabled  =  False

End  Sub

Private  Sub  cmdPlus_MouseDown(ByVal  Button As

Integer,  ByVal  Shift As  Integer,_ ByVal  X  As  Single,  ByVal  Y As  Single)

m_nlncrement  =  1

tmrQuantity.Interval  =  300

tmrQuantity.Enabled  =  True

End  Sub

Private  Sub  cmdPlus_MouseUp(ByVal  Button As

Integer,  ByVal  Shift  As  Integer,_ ByVal  X  As  Single,  ByVal  Y  As  Single)

tmrQuantity.Enabled  =  False

End  Sub

Private  Sub  tmrQuantity_Timer()

txtQuantity.Text  =  CLng(txtQuantity.Text)  + m_nlncrement

If  CLng(txtQuantity.Text)  <  0  Then  txtQuantity.Text  =  0 tmrQuantity.Interval  =  tmrQuantity.Interval  -  50

If  tmrQuantity.Interval  <  50  Then

m_nlncrement  =  m_nlncrement  *  5

tmrQuantity.Interval = 400

End If

End Sub

В листинге 27.1 задействован элемент таймера, который находится в активном состоянии, пока нажата клавиша мыши (аналогично, в карманных компьютерах кнопка нажимается либо пальцем, либо указкой). Уменьшением значения свойства Interval таймера и увеличением значения шага изменения значения можно добиться постепенного прироста скорости измене­ния значений в зависимости от времени удержания кнопки в нажатом состоянии.

Тестирование интерфейса пользователя

Перед тем, как продолжить написание программы, протестируем основную часть постро­енного интерфейса. Запустим на выполнение приложение. Для этого необходимо указать вы­ходной файл для нашего приложения и тип вывода на экран. Мы будем использовать диалого­вое окно свойств проекта, показанное на рис. 27.5. Отобразим это окно, выбрав в меню Project пункт Properties. Установим в комбинированном списке Run On Target значение "Pocket PC Emulation" и зададим путь в текстовом поле: \Windows\Start Menu\ Inventory, vb.

После изменения установок согласно рис. 27.5, нажмите кнопку Start, и приложение поя­вится в окне эмулятора карманного компьютера, как показано на рис. 27.6

 

Рис. 27.5. Способ вывода можно указать тип вывода непосредственно в окне свойств проекта МVВ
 

Рис. 27.6. Koгдa вы запускаете приложение в МVВ, то можете производить его работу в эмуляторе карманного компьютера
 

Протестируем функции интерфейса пользователя, Вначале нажмем на пиктограмму кла­виатуры для отображения SIP, затем проверим скорость изменения значений количества при удержании кнопок + или -. Чтобы завершить процесс отладки, нажмите кнопку ОК эмулятора или кнопку Stop в MVB.

Каждый раз, когда вы запускаете проект для карманного компьютера на выполнение в эмуляторе или на реальном устройстве, файлы копируются в целевую директорию; так что мож­но выполнять проект непосредственно из меню Start устройства

 

Функции работы с базами данных ADOCE

Теперь, когда создан интерфейс пользователя для нашего примера, необходимо добавить в при­ложение функции передачи информации в приложение для карманного компьютера и из него. (В данном примере мы предполагаем отсутствие соединения карманного компьютера с локальной се­тью. Если же таковое существует, то требуется создать прямое соединение приложения с базой дан­ных или Web.) Операционная система Windows СЕ содержит минимальную версию ADO