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

Вниз

WebBrowser фреймы   Найти похожие ветки 

 
xroot   (2006-02-06 13:27) [0]

Вопрос такой, в TWebBrowser (WB) загружен документ, в нем может быть несколько фреймов. Если их несколько нужно выбрать тот у кого больше картинок и получить все их ссылки на исходник, аля src. Пытаюсь так, но в runtime вылетает ошибка. Поправьте код. Прошу.

var  
 IDisp: IDispatch;
 IWindow2:IHTMLWindow2;
 IDoc: IHTMLDocument2;
 Images: IHTMLElementCollection;
 Item: IHTMLElement;
begin
ImgCount := 0;
FrameCount := WB.OleObject.Document.frames.Length;
if FrameCount > 1 then for i := 0 to FrameCount - 1 do if WB.OleObject.Document.frames[i].document.images.length > ImgCount then
begin
 IDisp:=WB.OleObject.Document.Frames.item(i).document;
 IDisp.QueryInterface(IHTMLWindow2,IDoc);
end
else WB.ControlInterface.Document.QueryInterface(IHtmlDocument2,IDoc);

ImgCount :=  IDoc.images.length;
ImgGrid1.RowCount := ImgCount div ImgGrid1.ColCount + 1;
Result := true;
for i := Index to ImgCount - 1 do
begin
 Images := IDoc.images;
 ImgAdr := (Images.Item(i, "") as IHTMLImgElement).Src;
 ...


 
Gero ©   (2006-02-06 13:35) [1]

> ImgAdr := (Images.Item(i, "") as IHTMLImgElement).Src;

Ошибка, скорее всего, из-за этого.

Замени на

IDisp := OleObject(IDoc.images).item(i);
ImgArd := (IDisp as IHTMLImgElement).Src;


 
xroot   (2006-02-06 13:41) [2]

Извиняюсь за неточность ошибка возникает на строке
ImgCount :=  IDoc.images.length;
Тип ошибки не явный


 
Gero ©   (2006-02-06 13:53) [3]

> IDisp.QueryInterface(IHTMLWindow2,IDoc);

А при чем здесь Window?


 
xroot   (2006-02-06 13:54) [4]

Блин, извините за беспокойство. Прямо орехи колю! Так нужно было.

if FrameCount > 1 then
begin
 for i := 0 to FrameCount - 1 do if WB.OleObject.Document.frames[i].document.images.length > ImgCount then
 begin
  IDisp := WB.OleObject.Document.Frames.item(i).document;
  IDisp.QueryInterface(IHTMLWindow2,IDoc);
 end;
end
else
begin
 WB.ControlInterface.Document.QueryInterface(IHtmlDocument2,IDoc);
end;


 
xroot   (2006-02-06 13:55) [5]

Получаем доступ к интерфейсу IHTMLDocument2. А разве можно как то по другому?



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

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

Наверх




Память: 0.47 MB
Время: 0.029 c
15-1139155208
VictorT
2006-02-05 19:00
2006.02.26
Редирект без сохранения в истории переходов броузера (PHP)


2-1139573718
kyn66
2006-02-10 15:15
2006.02.26
Как сравнить два числа, с дробными частями !!!


3-1136030914
makvell
2005-12-31 15:08
2006.02.26
импорт в Word


2-1139327879
dabreezy
2006-02-07 18:57
2006.02.26
Вопрос по потокам.


15-1139223923
pargo
2006-02-06 14:05
2006.02.26
Magic Forum не пускает в ветку "Начинающим"