Rates
Стандартные свойства элемента управления добавлены с помощью мастера интерфейса ActiveX. Остановимся на процедурах, которые загружают текстовый файл и выводят его в элемент управления ListBox.
Программа 21.10. Метод DownloadRates
Public Function DownloadRates(RatesURL As String)
On Error GoTo DLoadError
AsyncRead RatesURL, vbAsyncTypeFile, "Rates"
Exit Function
DLoadError:
RaiseEvent DLoadError(1024, "Could not download currency _
rates.")
' (He удалось загрузить курсы валют)
End Function
Метод, вызывающий функцию AsyncRead, передает ей URL Web-сервера в качестве параметра. Загруженная информация сохранится в файле с именем Rates.
Интересное действие выполняется, когда происходит событие
AsyncReadComplete объекта UserControl.
Private Sub UserControl_AsyncReadComplete(AsyncProp As AsyncProperty)
Dim FileName As String
On Error GoTo DLoadError
If AsyncProp.PropertyName = "Rates" Then
FileName = AsyncProp.Value
ReadRates FileName
End If
Exit Sub
DLoadError:
RaiseEvent DLoadError(1025, "Error in Downloading rates")
' (Ошибка при загрузке курсов)
End Sub
Код начинается с проверки значения свойства
PropertyName объекта AsyncProp. В элементе управления Rates это свойство принимает только значение Rates. Если элемент управления загружает несколько файлов сразу, то свойство укажет, загрузка какого файла уже завершена, чтобы его можно было обработать. Когда метод AsyncRead загружает файл, свойство Value объекта AsyncProp содержит имя файла и путь на локальном диске. Это имя не имеет никакого отношения к фактическому имени файла на сервере. Оно является уникальным именем файла, созданным системой во временной папке файлов Интернет. Имя файла используется подпрограммой ReadRates() для отображения курсов в элементе управления ListBox.
Программа 21.11. Подпрограмма ReadRates()
Private Sub ReadRates(FileName As String)
Dim FNum As Integer
Dim currencyName As String, currencyValue As Currency