Категории
Самые читаемые
onlinekniga.com » Компьютеры и Интернет » Программирование » Программирование для карманных компьютеров - Владимир Волков

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

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

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 25 26 27 28 29 30 31 32 33 ... 102
Перейти на страницу:

Rem 11

intInt = 10000

For intCount = 0 To intInt

On Error Resume Next

List1.AddItem strAr(intCount)

If Err.Number Then

Err.Clear: Exit For

End If

Next

Rem 12

Dim intCount2 As Integer

For intCount = 1 To List1.ListCount

For intCount2 = intCount + 1 To List1.ListCount

If (StrComp(List1.List(intCount), List1.List(intCount2), vbTextCompare) = 0)

Then

List1.RemoveItem (intCount2): intCount2=intCount2-1

End If

Next

Next

End If

End Select

End Sub

Будут рассмотрены те блоки кода, где установлены комментарии.

1) На экран выводится диалог открытия файла.

2) Если диалог открытия файла вернул имя файла, то происходит переход к блоку 3.

3) Открывается файл с переданным именем при помощи объекта File.

4)В Рнициализируется переменная intText, Рё РІ нее считывается количество строк РІ файле.

5) После прохождения файла до конца при помощи функции LineInputString его необходимо открыть заново.

6) Считывается «английская» часть файла одной строкой в переменную varEnText.

7) Первая русская фраза выводится в текстовое поле Label1, а соответствующая ей английская фраза – в текстовое поле Label2.

8) Счетчик фраз увеличивает свое значение.

9) Пробелы справа и слева удаляются.

10) Строка varEnText разбивается на слова, которые помещаются в массив strAr. Массив динамический, поэтому нельзя сразу сказать, сколько в нем элементов.

11) Значение intInt предполагает, что в массиве не более 10 000 элементов. Каждый элемент массива заносится в список List1 до тех пор, пока не будет достигнут конец массива. Следующий шаг вызывает исключительную ситуацию, которая перехватывается при помощи блока On Error Resume Next. Проверка значения Err.Number позволяет определить наличие исключительной ситуации, вызов Err.Clear очищает флаг ошибки, а оператор Exit For завершает цикл.

12) В последнем блоке кода из списка удаляются все повторяющиеся слова.

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

30. Щелчок стилусом на слове в списке добавляет это слово к предложению, составляемому в поле Label3. Соответствующий код приведен в листинге 3.21.

Листинг 3.21

Private Sub List1_Click()

varStrng = Label3.Caption

Label3.Caption = Label3.Caption + List1.List(List1.ListIndex) + " "

End Sub

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

1 ... 25 26 27 28 29 30 31 32 33 ... 102
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Программирование для карманных компьютеров - Владимир Волков.
Комментарии