const
HTMLID_FIND = 1;
HTMLID_VIEWSOURCE = 2;
HTMLID_OPTIONS = 3;
...
procedure TForm1.FindIE;
const
CGID_WebBrowser: TGUID = '{ED016940-BD5B-11cf-BA4E-00C04FD70816}';
var
CmdTarget : IOleCommandTarget;
vaIn, vaOut: OleVariant;
PtrGUID: PGUID;
begin
New(PtrGUID);
PtrGUID^ := CGID_WebBrowser;
if WebBrowser1.Document <> nilthentry
WebBrowser1.Document.QueryInterface(IOleCommandTarget, CmdTarget);
if CmdTarget <> nilthentry
CmdTarget.Exec( PtrGUID, HTMLID_FIND, 0, vaIn, vaOut);
finally
CmdTarget._Release;
end;
except// nothingend;
Dispose(PtrGUID);
end;
Программный код на Delphi, используемый для вызова команд Find, Options или View Source в контроле WebBrowser. Контрол WebBrowser использует интерфейс IOleCommandTarget для выполнения команд.
Процедура FindIE вызывает команду Find в веб-браузере. Работает следующим образом:
Получает экземпляр интерфейса IOleCommandTarget из свойства Document контрола WebBrowser.
Затем вызывает метод Exec интерфейса IOleCommandTarget с параметрами:
PtrGUID: GUID контрола WebBrowser.
HTMLID_FIND: ID команды Find (1).
0: Опциональный параметр, указывающий состояние команды.
vaIn: Входное значение для команды. В этом случае не используется.
vaOut: Выходное значение для команды. В этом случае не используется.
Чтобы вызвать другие команды, такие как Options или View Source, вы бы заменили HTMLID_FIND на HTMLID_OPTIONS или HTMLID_VIEWSOURCE, соответственно.
Вот альтернативное решение с более дельфийским синтаксисом:
В этом альтернативном решении вы бы вызвали ViewSourceIE или OptionsIE, чтобы выполнить команды View Source или Options, соответственно.
В статье описывается вызов команд Find, Options и View Source в Delphi-приложении с помощью WebBrowser1, для чего необходимо использовать интерфейс IOleCommandTarget и GUID для указания типа документа.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.