Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Получить выделенные объекты из TWebBrowser

Delphi , Интернет и Сети , Браузер

Получить выделенные объекты из TWebBrowser

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

procedure TForm1.Button1Click(Sender: TObject);
 begin
   if Webbrowser1.OleObject.Document.Selection.type = 'Control' then
   begin
     if Webbrowser1.OleObject.Document.Selection.CreateRange.CommonParentElement.tagName =
       'IMAGE' then
       ShowMessage('An Image is selected');
   end
   else
   begin
     if Webbrowser1.OleObject.Document.Selection.createRange.Text = '' then
       ShowMessage('Nothing is selected - ');
   end;
 end;

Here's the translation of the provided content into Russian:

Код, который вы предоставили, - это процедура в Delphi, которая запускается при клике по кнопке Button1. Эта процедура проверяет, выбран ли объект в контролле TWebBrowser, и если да, то она проверяет тип выбранного объекта.

Вот разбивка того, что код делает:

  • if Webbrowser1.OleObject.Document.Selection.Type = 'Control' then: эта строка проверяет, является ли выборка в веб-браузере контролем. Выборка может быть текстом, таблицей, изображением и т.д.
  • if Webbrowser1.OleObject.Document.Selection.CreateRange.CommonParentElement.tagName = 'IMAGE' then: если выборка - это контролл и его тип равен 'Control', эта строка проверяет, является ли этот контрол изображением. Она делает это, сравнивая tagName общего родительского элемента созданного диапазона, который содержит выбранное текст или контрол.
  • ShowMessage('An Image is selected');: если выбранный объект - это действительно изображение, она отображает сообщение с текстом 'An Image is selected'.
  • else if Webbrowser1.OleObject.Document.Selection.CreateRange.Text = '' then: если выборка не является изображением, эта строка проверяет, есть ли выбранное текст. Она делает это, сравнивая свойство Text созданного диапазона.
  • ShowMessage('Nothing is selected');: если нет выбранного текста, она отображает сообщение с текстом 'Nothing is selected'.

Вот предложенная альтернативная решение:

procedure TForm1.Button1Click(Sender: TObject);
begin
  if Webbrowser1.OleObject.Document.Selection.Type = vsHTMLSelectionTypeControl then
    if GetSelectedElement(Webbrowser1.OleObject.Document) = 'IMG' then
      ShowMessage('An Image is selected')
    else
      ShowMessage('Something else is selected');
  else
    if Trim(Webbrowser1.OleObject.Document.Selection.CreateRange.Text) <> '' then
      ShowMessage('Some text is selected')
    else
      ShowMessage('Nothing is selected');
end;

function TForm1.GetSelectedElement(Document: IHTMLDocument2): string;
var
  Selection: IHTMLSelectionObject;
  Element: IHTMLElement;
begin
  Selection := Document.Selection;
  Element := Selection.CreateRange.CommonAncestor as IHTMLElement;
  Result := Element.tagName;
end;

В этом альтернативном решении логику разделяют на две процедуры. Функция GetSelectedElement проверяет, какой тип элемента выбран и возвращает его tagName. Основная процедура использует эту функцию для проверки, является ли изображением или текстом выбранный объект, и отображает сообщение соответственно.

В статье описывается процедура, которая позволяет получить выделенные объекты из TWebBrowser и отображать сообщение в зависимости от типа выбранного объекта или отсутствия выделения.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Браузер ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-10-12 15:56:45/0.0037858486175537/0