Чтение онлайн

на главную

Жанры

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

Волков Владимир

Шрифт:

При этом предыдущее содержимое Label3 запоминается в переменной varStrng.

31. Кнопка Сброс просто присваивает свойству Caption компонента Label3 пустую строку, как это показано в листинге 3.22.

Листинг 3.22

Private Sub Command2_Click

Label3.Caption = ""

End Sub

32. Кнопка ? отменяет ввод последнего слова при помощи кода, приведенного в листинге 3.23. Листинг 3.23

Private Sub Command3_Click

Label3.Caption = varStrng

End Sub

33. Нажатие и отпускание стилуса проверяются на кнопке Подсказка. При нажатии стилусом 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 Sub

34. Обработка

щелчка на кнопке Принять отличается некоторой сложностью. Надо не только проверить правильность набора фразы и сообщить об этом пользователю, но и перейти к следующей фразе, если предыдущая была набрана удачно. Это реализуется при помощи кода, приведенного в листинге 3.25. Листинг 3.25

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 Sub

35. На этом этапе приложение уже работает практически полностью. Осталось разобраться с командой меню Редактирование шрифта и его подменю. Весь код реакций на выбор одного из пунктов подменю команды Редактирование шрифта будет помещен в событие 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 If

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

код, сами подпрограммы следует вынести в отдельный модуль. Можно развивать функциональность, вести подсчет статистики, добавить редактор файлов. Можно развивать дизайн и добавить окно-заставку при запуске, справочную систему и окно О программе. Все это, если у вас будет желание, вы можете проделать сами, ведь надо же на чем-то тренироваться самостоятельно.

Поставка приложений 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

Поделиться:
Популярные книги

Магия чистых душ 2

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.56
рейтинг книги
Магия чистых душ 2

Камень

Минин Станислав
1. Камень
Фантастика:
боевая фантастика
6.80
рейтинг книги
Камень

Прогрессор поневоле

Распопов Дмитрий Викторович
2. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прогрессор поневоле

Адепт: Обучение. Каникулы [СИ]

Бубела Олег Николаевич
6. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.15
рейтинг книги
Адепт: Обучение. Каникулы [СИ]

Газлайтер. Том 4

Володин Григорий
4. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 4

Провинциал. Книга 7

Лопарев Игорь Викторович
7. Провинциал
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Провинциал. Книга 7

Назад в СССР 5

Дамиров Рафаэль
5. Курсант
Фантастика:
попаданцы
альтернативная история
6.64
рейтинг книги
Назад в СССР 5

Темный Лекарь 3

Токсик Саша
3. Темный Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Темный Лекарь 3

Наследник

Кулаков Алексей Иванович
1. Рюрикова кровь
Фантастика:
научная фантастика
попаданцы
альтернативная история
8.69
рейтинг книги
Наследник

Долг

Кораблев Родион
7. Другая сторона
Фантастика:
боевая фантастика
5.56
рейтинг книги
Долг

Жребий некроманта 2

Решетов Евгений Валерьевич
2. Жребий некроманта
Фантастика:
боевая фантастика
6.87
рейтинг книги
Жребий некроманта 2

Путь (2 книга - 6 книга)

Игнатов Михаил Павлович
Путь
Фантастика:
фэнтези
6.40
рейтинг книги
Путь (2 книга - 6 книга)

Гром над Империей. Часть 1

Машуков Тимур
5. Гром над миром
Фантастика:
фэнтези
5.20
рейтинг книги
Гром над Империей. Часть 1

Великий род

Сай Ярослав
3. Медорфенов
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Великий род