Delphi для профессионалов. Действия (Actions) и связанные с ними компоненты
Категория Internet
Здесь всего три — типовых для пользователя Сети — действия.
Действие TBrowseURL открывает URL, заданный в одноименном свойстве. Поскольку это происходит при помощи функции
shellExecute, для просмотра открывается браузер, зарегистрированный в системе по умолчанию.
Действие TSendMail запускает программу — почтового клиента для отправки письма (с помощью интерфейса MAPI). Текст письма вы можете задать в свойстве
Text. Но! Ни получателя, ни тему, ни вложений задать нельзя — это придется делать вручную в почтовой программе. При желании полностью автоматизировать процесс отправки вам придется породить дочерний
компонент от действия TSendMail,
где и перекрыть метод ExecuteTarget.
Исходные тексты — в модуле ExtActns.
Наконец, самый сложный компонент TDownloadURL. Он позволяет загрузить содержимое с адреса URL и сохранить его на локальной машине под именем
FileName.
Поскольку загрузка — процесс долгий, в то время, пока она происходит, периодически возникает событие
Progress
и ProgressMax — текущее и максимальное значение показателя
хода скачивания. Во-первых, не все HTTP-серверы правильно сообщают о размере
ответа; во-вторых, для некоторых типов файлов (например, HTML) эти параметры
вычисляются не всегда верно (вы можете это видеть в Internet
Explorer); в-третьих, из-за маршрутизации пакетов ожидать ритмичного
изменения параметра Progress не следует. Поэтому пользователю
надо показывать соотношение progress/ProgressMax.
Примечание
Значение ProgressMax
может быть равно нулю. В этом случае о ходе загрузки численно судить нельзя.
Информацию несут другие параметры события.
StatusCode и
StatusText — код, описывающий текущее состояние операции и соответствующий
ему текст. Список возможных кодов содержит около 30 значений. Для тех, кто
знает протокол HTTP и хочет разобраться в этом глубже, следует обратиться
к описанию интерфейса IBindstatusCallback в MSDN.
Если же вам достаточно показать пользователю текст, то он содержится во втором
параметре. По содержанию он представляет примерно то же, что вы видите при
загрузке файлов с помощью Internet Explorer.
Cancel — этот параметр
одинаков для всех долго продолжающихся операций. Установив его в значение
True, вы можете прервать выполнение загрузки.
Знаете ли Вы, что Polymorphism, полиморфизм в объектно-ориентированном программировании - это способность объекта выбирать правильный метод в зависимости от типа данных, полученных в сообщении.