Программирование для карманных компьютеров
Шрифт:
При этом предыдущее содержимое Label3 запоминается в переменной varStrng.
31. Кнопка Сброс просто присваивает свойству Caption компонента Label3 пустую строку, как это показано в листинге 3.22.
Листинг 3.22Private Sub Command2_Click
Label3.Caption = ""
End Sub32. Кнопка ? отменяет ввод последнего слова при помощи кода, приведенного в листинге 3.23. Листинг 3.23
Private Sub Command3_Click
Label3.Caption = varStrng
End Sub33. Нажатие и отпускание стилуса проверяются на кнопке Подсказка. При нажатии стилусом Label2 выводится поверх Label3, а при отпускании снова перемещается на задний план. Это реализуется при помощи кода, приведенного в листинге 3.24. Листинг 3.24
Private Sub Command4_MouseDown(button, shift, x, y)
Label2.ZOrder vbBringToFront
End Sub
Private Sub Command4_MouseUp(button, shift, x, y)
Label2.ZOrder vbSendToBack
End Sub34. Обработка
Private Sub Command1_Click
If intText <> 0 Then
If StrComp(Trim(Label2.Caption), Trim(Label3.Caption), vbTextCompare) = 0 Then
MsgBox «Ай, малодец! Получилось! Следующая фраза», vbOKOnly
flFile.Open fdOpen.FileName, fsModeInput, 1
For intCount = 1 To intText
varText = flFile.LineInputString
If intCount = intStep Then Label1.Caption = varText
If intCount = intStep + intText / 2 Then Label2.Caption = varText
Next
flFile.Close
Label3.Caption = ""
If intStep > intText / 2 Then
MsgBox «Вы закончили упражнение», vbOKOnly
App.End
End If
intStep = intStep + 1
Else
MsgBox «He получилось, попробуйте еще раз», vbOKOnly
End If
End If
End Sub35. На этом этапе приложение уже работает практически полностью. Осталось разобраться с командой меню Редактирование шрифта и его подменю. Весь код реакций на выбор одного из пунктов подменю команды Редактирование шрифта будет помещен в событие MenuBarl_MenuClick и будет обрабатываться при помощи конструкций Case, как это показано в листинге 3.26. Листинг 3.26
Case «itBold»
If mnuFile.Items.Item(1). SubItems(1). Caption = «Полужирный» Then
Label1.FontBold = True
Label2.FontBold = True
Label3.FontBold = True
List1.FontBold = True
mnuFile.Items.Item(1). SubItems(1). Caption = «*Полужирный»
Else
Label1.FontBold = False
Label2.FontBold = False
Label3.FontBold = False
List1.FontBold = False
mnuFile.Items.Item(1). SubItems(1). Caption = «Полужирный»
End If
Case «itItal»
If mnuFile.Items.Item(1). SubItems(2). Caption = «Наклонный» Then
Label1.FontItalic = True
Label2.FontItalic = True
Label3.FontItalic = True
List1.FontItalic = True
mnuFile.Items.Item(1). SubItems(2). Caption = «*Наклонный»
Else
Label1.FontItalic = False
Label2.FontItalic = False
Label3.FontItalic = False
List1.FontItalic = False
mnuFile.Items.Item(1). SubItems(2). Caption = «Наклонный»
End If
Case «it8»
If mnuFile.Items.Item(1). SubItems(3). SubItems(1). Caption = «8» Then
Label1.FontSize = 8
Label2.FontSize = 8
Label3.FontSize = 8
List1.FontSize = 8
mnuFile.Items.Item(1). SubItems(3). SubItems(1). Caption = «*8»
mnuFile.Items.Item(1). SubItems(3). SubItems(2). Caption = «10»
mnuFile.Items.Item(1). SubItems(3). SubItems(3). Caption = «12»
End If
Case «it10»
If mnuFile.Items.Item(1). SubItems(3). SubItems(2). Caption = «10» Then
Label1.FontSize = 10
Label2.FontSize = 10
Label3.FontSize = 10
List1.FontSize = 10
mnuFile.Items.Item(1). SubItems(3). SubItems(1). Caption = "8"
mnuFile.Items.Item(1). SubItems(3). SubItems(2). Caption = «*10»
mnuFile.Items.Item(1). SubItems(3). SubItems(3). Caption = «12»
End If
Case «it12»
If mnuFile.Items.Item(1). SubItems(3). SubItems(3). Caption = «12» Then
Label1.FontSize = 12
Label2.FontSize = 12
Label3.FontSize = 12
List1.FontSize = 12
mnuFile.Items.Item(1). SubItems(3). SubItems(1). Caption = "8"
mnuFile.Items.Item(1). SubItems(3). SubItems(2). Caption = «10»
mnuFile.Items.Item(1). SubItems(3). SubItems(3). Caption = «*12»
End If36. На этом можно закончить работу над кодом приложения. Оно полнофункционально, хотя далеко от совершенства. Можно было бы сделать еще достаточно много. Нужно вынести в подпрограммы повторяющийся
Поставка приложений eVB
Создание приложений для эмулятора – это, конечно, увлекательное занятие, но рано или поздно приходит момент, когда приложение, опробованное на эмуляторе, необходимо поставить на настоящее устройство. В этой книге не будут рассматриваться многочисленные инструменты сторонних фирм, позволяющие создавать инсталляционные пакеты. Стоит обратить внимание на «штатный» мастер создания пакетов установки, который запускается при помощи команды меню Tools ? Remote Tools ? Application Install Wizard.
После запуска этого мастера нужно выполнить простую последовательность действий.
1. Нажать кнопку Далее.
2. Указать полный путь к файлу проекта. ebp
3. Указать полный путь к скомпилированному приложению, которое представлено файлом с расширением. vb. Скорее всего, этот файл будет отсутствовать в каталоге проекта. Чтобы он там появился, необходимо выполнить команду File ? Make Project.vb.
4. Указать полный путь к папке, в которой будет создаваться установочный комплект. Если папка с таким именем отсутствует, то она будет создана. В этом примере будет использоваться папка C: \MyInstall.
5. Взвести флажок Arm 1100 (4К) v 3.00.
6. Взвести флажки для библиотек, которые будут включены в состав проекта и автоматически установлены и зарегистрированы на устройстве. Библиотеки, компоненты которых использовались в проекте, будут выбраны автоматически.
7. Указать, какие дополнительные файлы должны быть установлены вместе с проектом. В рассматриваемом проекте это будут файлы white.bmp, green.bmp, yellow.bmp и phrase.txt. Каждый раз при добавлении одного из этих файлов, будет отображаться диалоговое окно с вопросом Is this a System file? Следует ответить на него отрицательно, и файлы будут установлены в каталог проекта. Если ответить «Да», то соответствующий файл будет установлен в каталог Windows на устройстве. Если создается инсталляционный пакет для Pocket PC 2002, то нужно снять флажок Include Device Runtime in Cab file. В случае создания пакета для Pocket PC 2003 нужно, наоборот, взвести этот флажок, поскольку в операционную систему Pocket PC 2003 не входит VB.
8. Теперь необходимо заполнить 4 поля. В поле Default Install Directory указывается имя каталога, в который будет установлено приложение. Для рассматриваемого случая нужно использовать значение EnPhrase. В поле Application Name указывается имя, под которым приложение будет зарегистрировано на устройстве. Для этого поля тоже нужно использовать значение EnPhrase. В поле Description задается краткое описание проекта. В поле Company Name указывается наименование компании, разработавшей приложение. Приложение будет установлено в каталог, имя которого будет состоять из имени приложения и наименования компании.
9. На завершающем этапе нужно просто нажать кнопку Create Install. На этом создание инсталляционного пакета будет завершено.
Созданный пакет можно будет найти в каталоге C: \MyInstall\CDl. Если установить сейчас приложение на устройство, то оно вряд ли будет работать. Скорее всего, будет отображено сообщение о том, что файл не найден. Все дело в том, что приложение не будет установлено в каталог \Windows\Start Menu\, а в приложении есть прямая ссылка на этот каталог. Именно оттуда загружаются изображения. Это довольно часто встречающаяся проблема для тех, кто начинает программировать на eVB. Решение состоит в том, чтобы переписать указанный фрагмент так, как показано в листинге 3.27.
Вызов функции Арр. Path позволяет получить текущий путь к каталогу, в котором установлено приложение.
Если приложение устанавливается на русифицированный Pocket PC, то можно переписать файл phrase.txt, так чтобы русская его часть была написана кириллицей. После этого нужно заново создать установочный пакет и протестировать его, запустив из каталога C: \MyInstall\CD1 файл Setup.exe.
Листинг 3.27
Dim imLst As ImageList
Set imLst = ImageList1
MsgBox App.Path, vbOKOnly