21. В тех фрагментах кода, где устанавливалось свойство Caption для кнопок, нужно закомментировать строки установки Caption и вместо них ввести команды присвоения изображений. Поскольку сам ImageList с компонентом MenuBar уже связывался в методе Form_Load, то связывание изображений с кнопками производится простым указанием индекса изображения в коллекции ImageList, как показано в листинге 3.17.
Листинг 3.17
Rem mnuClr1.Caption = «1»
mnuClr1.Image = 1
…
Rem mnuClr2.Caption = «2»
mnuClr2.Image = 2
…
Rem mnuClr3.Caption = «3»
mnuClr3.Image = 3
22. Теперь можно запустить проект и удостовериться, что изображения выведены на поверхность кнопок.
23. Также программа должна взять текстовый файл, считать из него фразу на русском языке и вывести в верхнее текстовое поле, считать соответствующую ей английскую фразу и вывести ее в нижнее текстовое поле, находящееся на заднем плане, а затем в случайном порядке считать английские слова в количестве в три раза большем, чем надо для составления фразы, и заполнить ими список ListBox.
24. Прежде всего нужно создать текстовый файл. Достаточно в Блокноте открыть текстовый файл, назвать его phrase.txt и сохранить в каталоге проекта. Содержимое файла приведено в листинге 3.18.
Листинг 3.18
Kak dela
Vsego horoshego
Do vstrechi
how are you
good luck
see you later
25. Этот файл нужно добавить к проекту, как это было сделано с файлами рисунков. Русские фразы написаны транслитерацией, поскольку эмулятор не русифицирован. В случае запуска данной программы на корректно русифицированном Pocket PC 2003 русские фразы можно писать кириллицей.
26. Чтобы загрузить файл, нам понадобятся еще две ActiveX библиотеки – File System и Common Dialog. Их нужно добавить в проект, а затем разместить на форме. Библиотека File System при добавлении к проекту создает компоненты File и FileSystem. Компонент FileSystem дает возможность осуществлять манипуляции с файлами и каталогами, такие как создание, удаление, переименование, перемещение, изменение атрибутов. В нашем приложении этот компонент не потребуется, на форме надо разместить только компонент File, который позволяет открыть файл, читать из него и записывать информацию в файл.
27. После размещения этих компонентов на форме нужно добавить объявления переменных в начало модуля, как это показано в листинге 3.19.
Листинг 3.19
Option Explicit
Dim intText, intInt, intStep, intCount As Integer
Dim varText, varEnText
Dim varStrng As String
Rem Объявляем переменную и связываем ее с объектом File
Dim flFile As File
Set flFile = File1
Rem Объявляем переменную и связываем ее с объектом диалога
Dim fdOpen As CommonDialog
Set fdOpen = CommonDialog1
28. Теперь необходимо создать обработчик события щелчка на пункте меню Открыть. Для этого в уже имеющийся обработчик события Private Sub MenuBar1_ MenuClick нужно добавить еще одну секцию Case. Код будет выглядеть так, как показано в листинге 3.20. Листинг 3.20
Private Sub MenuBar1_MenuClick(ByVal Menu As MenuBarLib.MenuBarMenu)
Select Case Menu.Key
Case «itExit»
App.End
Case «itOpen»
Rem 1
fdOpen.ShowOpen
Rem 2
If fdOpen.FileName <> "" Then
Rem 3
flFile.Open fdOpen.FileName, fsModeInput, 1
Rem 4
intText = 0
While Not flFile.EOF
intText = intText + 1
flFile.LineInputString
Wend
Rem 5
flFile.Close
flFile.Open fdOpen.FileName, fsModeInput, 1
Rem 6
For intCount = 1 To intText
varText = flFile.LineInputString
If intCount > intText/2 Then varEnText=varEnText +" "+varText
Next
intStep = 1
flFile.Close
Rem 7
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
Rem 8
intStep = 2
flFile.Close
Dim strAr
Dim strSt As String
Rem 9
varEnText = Trim(varEnText)
Rem 10
strAr = Split(varEnText, " ", – 1, vbTextCompare)
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) Пробелы справа и слева удаляются.
Читать дальше
Конец ознакомительного отрывка
Купить книгу