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

Работа с HTML-формами и выбор элементов списка в TWebBrowser для Delphi

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

В данной статье мы рассмотрим, как программно выбрать элемент списка в HTML-форме, используя компонент TWebBrowser в среде разработки Delphi. Разберемся, как выбрать элемент option по атрибуту value в выпадающем списке select.

Описание проблемы

В вашем приложении Delphi вы используете компонент TWebBrowser для отображения HTML-документов. В одном из таких документов присутствует элемент select (выпадающий список) с несколькими элементами option (пунктами списка). Вам необходимо программно выбрать элемент списка, значение которого соответствует thirdvalue.

Пример HTML-документа:

<html>
<body>
  <select id="ComboBox">
    <option value="firstvalue">First Value</option>
    <option value="secondvalue">Second Value</option>
    <option value="thirdvalue">Third Value</option>
  </select>
</body>
</html>

Решение проблемы

Для решения задачи можно использовать интерфейс IHTMLSelectElement и его свойство selectedIndex. Ниже представлена функция SelectOptionByValue, которая позволяет найти и выбрать элемент списка по значению атрибута value.

Функция SelectOptionByValue

Функция принимает три параметра:

  • ADocument - интерфейс к входному HTML-документу
  • AElementID - идентификатор элемента select (ID выпадающего списка)
  • AOptionValue - искомое значение атрибута элемента option (значение пункта списка)

Функция возвращает индекс найденного элемента списка, или -1, если элемент не найден.

Пример кода на Object Pascal:

function SelectOptionByValue(const ADocument: IDispatch; const AElementID,
  AOptionValue: WideString): Integer;
var
  HTMLDocument: IHTMLDocument3;
  HTMLElement: IHTMLSelectElement;

  function IndexOfValue(const AHTMLElement: IHTMLSelectElement;
    const AValue: WideString): Integer;
  var
    I: Integer;
  begin
    Result := -1;
    for I := 0 to AHTMLElement.length - 1 do
      if (AHTMLElement.item(I, I) as IHTMLOptionElement).value = AValue then
      begin
        Result := I;
        Break;
      end;
  end;
begin
  Result := -1;
  if Supports(ADocument, IID_IHTMLDocument3, HTMLDocument) then
  begin
    if Supports(HTMLDocument.getElementById(AElementID), IID_IHTMLSelectElement,
      HTMLElement) then
    begin
      Result := IndexOfValue(HTMLElement, AOptionValue);
      HTMLElement.selectedIndex := Result;
    end;
  end;
end;

Пример использования

Чтобы выбрать элемент со значением thirdvalue в выпадающем списке из HTML-документа, используйте следующий код:

procedure TForm1.Button1Click(Sender: TObject);
var
  Index: Integer;
begin
  Index := SelectOptionByValue(WebBrowser1.Document, 'ComboBox', 'thirdvalue');

  if Index <> -1 then
    ShowMessage('Option was found and selected on index: ' + IntToStr(Index))
  else
    ShowMessage('Option was not found or the function failed (probably due to ' +
      'invalid input document)!');
end;

Этот код предполагает, что в компоненте WebBrowser1 уже загружен HTML-документ, содержащий выпадающий список.

Заключение

Используя интерфейс IHTMLSelectElement и его свойства, вы можете программно управлять элементами HTML-форм внутри TWebBrowser в вашем приложении Delphi. Обратите внимание на проверку типов интерфейсов с помощью Supports, чтобы обеспечить корректную работу с элементами формы.

Создано по материалам из источника по ссылке.

Статья посвящена программному выбору элемента списка в HTML-форме с использованием компонента `TWebBrowser` в среде разработки Delphi.


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

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




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


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


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-02-20 22:33:11/0.0019810199737549/0