Информационные технологииStfw.Ru 🔍

Категория Internet

ГЛАВА 8. Действия (Actions) и связанные с ними компоненты
🕛 14.11.2006, 17:27
Здесь всего три - типовых для пользователя Сети - действия.

Действие TBrowseURL открывает URL, заданный в одноименном свойстве. Поскольку это происходит при помощи функции shellExecute, для просмотра открывается браузер, зарегистрированный в системе по умолчанию.

Действие TSendMail запускает программу - почтового клиента для отправки письма (с помощью интерфейса MAPI). Текст письма вы можете задать в свойстве Text. Но! Ни получателя, ни тему, ни вложений задать нельзя - это придется делать вручную в почтовой программе. При желании полностью автоматизировать процесс отправки вам придется породить дочерний компонент от действия TSendMail, где и перекрыть метод ExecuteTarget.

Исходные тексты - в модуле ExtActns.

Наконец, самый сложный компонент TDownloadURL. Он позволяет загрузить содержимое с адреса URL и сохранить его на локальной машине под именем FileName.

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

property OnDownloadProgress: TDowriloadProgressEvent;

TDownloadProgressEvent = procedure(Sender: TDownLoadURL;

Progress,

ProgressMax: Cardinal; StatusCode: TURLDownloadStatus;

StatusText: String;

var Cancel: Boolean) of object;

Параметры обработчика этого события следующие. Progress и ProgressMax - текущее и максимальное значение показателя хода скачивания. Во-первых, не все HTTP-серверы правильно сообщают о размере ответа; во-вторых, для некоторых типов файлов (например, HTML) эти параметры вычисляются не всегда верно (вы можете это видеть в Internet Explorer); в-третьих, из-за маршрутизации пакетов ожидать ритмичного изменения параметра Progress не следует. Поэтому пользователю надо показывать соотношение progress/ProgressMax.

Примечание

Значение ProgressMax может быть равно нулю. В этом случае о ходе загрузки численно судить нельзя. Информацию несут другие параметры события. StatusCode и StatusText - код, описывающий текущее состояние операции и соответствующий ему текст. Список возможных кодов содержит около 30 значений. Для тех, кто знает протокол HTTP и хочет разобраться в этом глубже, следует обратиться к описанию интерфейса IBindstatusCallback в MSDN. Если же вам достаточно показать пользователю текст, то он содержится во втором параметре. По содержанию он представляет примерно то же, что вы видите при загрузке файлов с помощью Internet Explorer. Cancel - этот параметр одинаков для всех долго продолжающихся операций. Установив его в значение True, вы можете прервать выполнение загрузки.

Cамоучитель по Delphi   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉