Visual Basic 6. Руководство разработчика



         

Код элемента управления - часть 2


FNum = FreeFile

CurrencyList.Clear

On Error GoTo ReadError

Open FileName For Input As FNum

Input ttFNum, m_LastUpdate

i=1

While Not EOF(FNum)

Input #FNum, currencyName, currencyValue

CurrencyList.AddItem currencyName & Chr(9) & _

Format(currencyValue, "#.000")

CurrencyNames(i) = currencyName

AllRates.Add Str(currencyValue), currencyName

i = i + 1

Wend

RaiseEvent RatesRead

Exit Sub

ReadError:

RaiseEvent DLoadError(1025, "Unkown data format")

                                ' (Неизвестный формат данных)

End Sub

Это прямолинейный VB-код, который открывает текстовый файл и помещает его строки в элемент управления CurrencyList типа ListBox. Он сохраняет курсы валюты в списке AllRates, используя имя валюты в качестве ключа. Эта методика упрощает поиск курса обмена валюты. Подпрограмма ReadRates(), описанная в параграфе Private объекта UserControl, не может вызываться из основного приложения.

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

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

"Error in downloading rates" ("Ошибка в загрузке курсов"). Метод AsyncRead может вызываться для загрузки файла, пока загружается другой файл, но он не может загружать один и тот же файл дважды.

Тестирование элемента управления Rates

Тестирование элемента управления, который загружает значения свойства с HTTP-сервера, требует, чтобы приложение было соединено с сервером, а документ, используемый для тестирования, находился на сервере. Если имеется собственный Web-сервер (Internet Information или Server Personal Web Server), то можно только скопировать Rates, txt файл в виртуальный каталог Web-сервера. Или просто скопировать файл в корневой каталог и соединиться с сервером, используя следующий URL.




Содержание  Назад  Вперед