Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.10.25;
Скачать: CL | DM;

Вниз

TWebBrowser список ссылок ячейки таблицы   Найти похожие ветки 

 
ford ©   (2009-09-03 12:05) [0]

Здравствуйте!
На форме установлен компонент TWebBrowser, загружаю туда HTML
внутри есть такая табличка
<table class="grid" cellspacing="0">
<tr>
   <th> </th>
   <th>name</th>
   <th>param</th>
   <th>count</th>
   <th>else</th>
   <th colspan="2">doing</th>
</tr>
       <tr class="inactive">
       <td> </td>
       <td nowrap>art</td>
       <td nowrap>100%</td>
       <td nowrap align="right">2</td>
       <td>nothing</td>
               <td colspan="2" align="center"><a href="/positions/clear/art">Clear</a></td>
           </tr>
       <tr>
       <td> </td>
       <td nowrap>canon</td>
       <td nowrap>70%</td>
       <td nowrap align="right">10</td>
       <td>nothing</td>
               <td><a href="/positions/add/1">add</a></td>
       <td><a href="/positions/del/1">del</a></td>
           </tr>
   </table>
достаю текст ячеек таблицы следующим способом

 ovTable := Web.OleObject.Document.all.tags("TABLE").item(1);
  for i := 0 to (ovTable.Rows.Length - 1) do
  begin
    Form1.ListBox1.Items.Add("");
    for j := 0 to (ovTable.Rows.Item(i).Cells.Length - 1) do
    begin
        Form1.ListBox1.Items[Form1.ListBox1.Items.Count-1]:=Form1.ListBox1.Items[Form1.ListBox1.Items.Count-1]+"|"+ovTable.Rows.Item(i).Cells.Item(j).InnerText;
    end;
  end;


с текстом все замечательно
но как вытащить из текущей ячейки ссылку ???
попробовал взять Children текущего IHTMLElement как IHTMDocument и взять его Links но как выяснилось
Children у всех ячеек = nil

можно конечно взять свойство InnerHTML
и парсить строку на наличие там ссылок, но не хочется изобретать велосипед, наверняка есть более изящный способ, например с использованием свойств и методов IHTMLElement

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


 
ford ©   (2009-09-03 14:40) [1]

Хоть хтонибудь бы подсказал что Children это не что иное как IHTMLElementsCollection !!!!

в итоге код такой :

  ovTable := Web.OleObject.Document.all.tags("TABLE").item(0);
  for i := 0 to (ovTable.Rows.Length - 1) do
  begin
    Form1.ListBox1.Items.Add("");
    for j := 0 to (ovTable.Rows.Item(i).Cells.Length - 1) do
    begin
       IDisp:=ovTable.Rows.Item(i).Cells.Item(j).Children;
       IDisp.QueryInterface(IHTMLElementCollection,El);
       ovLinks:=El.tags("a");
       for k:=0 to ovLinks.Length-1 do
        Begin
         IDisp:=OvLinks.Item(k);
         IDisp.QueryInterface(IHTMLElement,ch);
         Form1.ListBox1.Items[Form1.ListBox1.Items.Count-1]:=Form1.ListBox1.Items[Form1.ListBox1.Items.Count-1]+"|"+ch.GetAttribute("href",1);
        End;
       Form1.ListBox1.Items[Form1.ListBox1.Items.Count-1]:=Form1.ListBox1.Items[Form1.ListBox1.Items.Count-1]+"|"+ovTable.Rows.Item(i).Cells.Item(j).InnerText;//+"("+ovTable.Rows.Item(i).Cells.Item(j).GetAttribute("href",0)+")";
    end;
  end;


так я получаю ссылку из выбранной ячейки таблицы


 
Омлет   (2009-09-03 15:26) [2]

Мы дали тебе возможность самому разобраться. Здесь личностный рост превыше куска кода.


 
ford ©   (2009-09-03 16:03) [3]


> Омлет   (03.09.09 15:26) [2]
>
> Мы дали тебе возможность самому разобраться. Здесь личностный
> рост превыше куска кода.


если бы дали ссылку хотябы на кусок MSDN в котором все это написано
то я не потратил бы несколько часов на глупости
а как Вы выразились занимался бы дальнейшим "личностным ростом"


 
Омлет   (2009-09-03 16:10) [4]

Если бы Вы не написали "Хоть хтонибудь бы подсказал", я бы не иронизировал. Честно )


 
KilkennyCat ©   (2009-09-03 18:59) [5]


> если бы дали ссылку хотябы на кусок MSDN

ссылка MSDN находится легко.

> то я не потратил бы несколько часов

поиск в MSDN устроен просто

> на глупости

ты потратил не из-за нас

> занимался бы дальнейшим "личностным ростом"

фигня все это. в 2012 году мы все умрем.



Страницы: 1 вся ветка

Текущий архив: 2009.10.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
2-1251984161
LDV
2009-09-03 17:22
2009.10.25
TListBox - Color select item


11-1207080572
Lotos
2008-04-02 00:09
2009.10.25
Заполнение данных в mdvXLGrid


3-1228665526
Guest
2008-12-07 18:58
2009.10.25
DBGrid по образу и подобию инспектора объектов.


3-1201334641
mega
2008-01-26 11:04
2009.10.25
DirectMysqlObjects (TMySQLClient, TMysqlResult) + Jpeg


15-1251178540
Andy BitOff
2009-08-25 09:35
2009.10.25
Что думают знатоки по поводу такой конфигурации?