Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2013, 01:57   #1
Halogen
Пользователь
 
Аватар для Halogen
 
Регистрация: 23.11.2013
Сообщений: 46
По умолчанию WebBrowser элемаеты

Добрая ночь

Есть код

Код:
procedure TfrmMyBrowser.Timer1Timer(Sender: TObject);
var
  MausPos: TPoint;
  Element: IHTMLElement;
  imgElement: IHTMLIMGElement;
  scrElement: IHTMLLinkElement;
  x, y: Integer;
  Doc: IHTMLDocument2;
  CurrentWB: TWebbrowser;
begin
  if chkShowElementInfo.Checked then
  begin
    begin
      CurrentWB := GetCurrentWB;
      if Assigned(CurrentWB) then
      begin
        Doc := CurrentWB.Document as IHTMLDocument2;
        if Assigned(doc) then
        begin
          // Get Current Mouse Position
          GetCursorPos(MausPos);
          // Convert the screen coordinates to client coordinates
          mauspos := CurrentWB.ScreenToClient(mauspos);
          x := MausPos.x;
          y := MausPos.y;
          // Get the element under the mouse cursor
          Element := GetElementAtPos(doc, x, y);
          if Assigned(Element) then
          begin
            // element properties
            edElementTag.Text := Element.tagName;
            edElementId.Text := Element.id;
            edElementinnerText.Text := Element.innerText;
            edElementinnerHTML.Text := Element.innerHTML;
            edElementclassName.Text := Element.className;
            Element.QueryInterface(IHTMLIMGElement, imgElement);
            if assigned(imgElement) then
              edElementhref.Text := imgElement.href;

            Element.QueryInterface(IHTMLLinkElement, scrElement);
            if assigned(scrElement) then
              edElementhref.Text := scrElement.href;
          end;
        end;
      end;
    end;
  end;
end;
Как я только над ним не шаманил но не как не получается
Element.className;
Element.innerText;
Просто ловить эти два значения , код был взять из исходника мини веб браузер там столько всего поэтому наверное и не могу разобраться
Halogen вне форума Ответить с цитированием
Старый 10.12.2013, 02:15   #2
Halogen
Пользователь
 
Аватар для Halogen
 
Регистрация: 23.11.2013
Сообщений: 46
По умолчанию

Все сам решил , извините , кому интересно вот реализация

uses MSHTML

Код:
procedure TFormKlick.Timer1Timer(Sender: TObject);
var
  MausPos: TPoint;
  x, y: Integer;
  Element: IHTMLElement;
   Doc: IHTMLDocument2;
begin
  Doc := Webbrowser1.Document as IHTMLDocument2;
  GetCursorPos(MausPos);
  mauspos := WebBrowser1.ScreenToClient(mauspos);
    x := MausPos.x;
          y := MausPos.y;
            Element := GetElementAtPos(doc, x, y);
          if Assigned(Element) then
          begin
           Edit1.Text := Element.className;
           edit2.Text := Element.innerText;
          end;
end;
Код:
function TFormKlick.GetElementAtPos(Doc: IHTMLDocument2; x,
  y: integer): IHTMLElement;
begin
 Result := nil;
  Result := Doc.elementFromPoint(x, y);
end;
Так нравятся такие моменты когда стараешься и все получается =)))))
Halogen вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Webbrowser brat123rus Помощь студентам 1 09.08.2013 11:38
webbrowser Arsenx777 Работа с сетью в Delphi 1 11.08.2011 14:22
webBrowser Cpluser Общие вопросы .NET 1 13.04.2011 17:22
WebBrowser Druid-druid Работа с сетью в Delphi 1 12.12.2007 13:23