Webbrowser问题,深受困扰,求指点迷津

ROBINTTT 2011-12-06 12:31:21
小弟上周刚从VB转学Dephi,这两天研究webbrowser编程碰到一个奇怪的问题,深受困扰,希望大侠们指点迷津,万谢。以下模块是在XE2环境下调试的。
procedure HideTable(myweb:TWebBrowser);
var
i:integer;
mydoc:HtmlDocument;
myelm:IHTMLElementCollection;
mytab:HtmlTable;
begin
mydoc:=myweb.Document as htmldocument;
myelm:=mydoc.getElementsByTagName('table') as IHTMLElementCollection;
//用for循环报错--Access Violation at address 00000000
for i:=0 to myelm.length-1 do
begin
mytab:=myelm.item(i,varempty) as htmltable;
(mytab.style as ihtmlstyle).display:='none';
end;
//用以下语句逐条赋值没有报错
//mytab:=myelm.item(0,varempty) as htmltable;
//(mytab.style as ihtmlstyle).display:='none';
//mytab:=myelm.item(1,varempty) as htmltable;
//(mytab.style as ihtmlstyle).display:='none';
//mytab:=myelm.item(2,varempty) as htmltable;
//(mytab.style as ihtmlstyle).display:='none';

end;
...全文
135 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ROBINTTT 2011-12-07
  • 打赏
  • 举报
回复
自力更生,换一种思路,这个问题以后再想。如下代码执行OK
procedure HideTable(myweb:TWebBrowser);
var
i:integer;
tables:olevariant;
begin
tables:=myweb.OleObject.Document.all.tags('table');
for i:=0 to tables.length-1 do
begin
myweb.OleObject.Document.all.tags('table').item(i).style.display:='none';
end;
end;
ROBINTTT 2011-12-06
  • 打赏
  • 举报
回复
感谢grjs2004的回复。只是为什么不对呢,是语法吗,不好意思刚转学Delphi。
我就算改成 for i:=0 to 2 do也不对啊
grjs2004 2011-12-06
  • 打赏
  • 举报
回复
很显然是myelm.length不对
mytab:=myelm.item(i,varempty) as htmltable;

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧