Иллюстрированный самоучитель по Delphi 7 для профессионалов

Стандартные действия. Категории.

Категория Internet

Здесь всего три – типовых для пользователя Сети – действия.

Действие 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, вы можете прервать выполнение загрузки.

Категория Format

Действия этой категории представляют собой расширенные операции редактирования для "продвинутого" редактора TRichEdit. Эти операции должны быть знакомы вам по программе WordPad из состава Windows. В крайнем случае откройте демонстрационный пример Delphi с тем же названием – там присутствуют действия настоящей категории и подавляющее большинство остальных в списке присутствуют TRichEditBold, TRichEditltalic, TRichEditUnderline, TRichEditStrikeout (установка стиля шрифта), TRichEditBullets (значки абзацев), TRichEditAlignLeft, TRichEditAlignRight, TRichEditAiignCenter (выравнивание текста).

Категория Dataset

Эти действия можно увидеть, например, в качестве кнопок на любом компоненте TDBNavigator: TDataSetFirst, TDataSetPrior, TDataSetNext, TDataSetLast, TDataSetDelete, TDataSetlnsert, TDataSetEdit, TDataSetPost, TDataSetCancel, TDataSetRefresh.

Читатель задаст вопрос: а как действие связывается с набором данных? Очень просто: через дополнительное (для данной категории) свойство DataSource. Если источник данных существует и связан с имеющимся набором данных (свойство DataSource.Dataset), то действие выполняется над ним.

Категория Tools

Здесь содержится один-единственный член: TCustomizeActionBars. Будучи вызванным, это действие вызывает диалог настройки панелей действий, относящихся к компоненту TActionManager, о котором, собственно, сейчас и пойдет речь.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.