Deplhi TEmbeddedWB检查元素是否可见

时间:2016-07-05 21:14:36

标签: delphi element visibility

我在Delphi表单上有EmbeddedWB组件,并将其用作不同页面的webbrowser。

如果显示IHTMLelement,是否有某种方法可以检查? 我知道ihtmlelement.style.display属性,当它设置为'none'时,该元素不可见。 但是,如果它的parentelement,或者parentelement的parentelement(等等...)被隐藏了什么?

我能以某种方式检查它是否可见?

我的代码 - 无法正常使用

var
document:ihtmldocument2;
body:ihtmlelement2;
i:integer;
tag:ihtmlelement;
tags:IHTMLElementCollection;

...

document:=embeddedwb.document as ihtmldocument2;
body:=document.body as ihtmlelement2;

if assigned(body) then begin

  Tags := Body.getElementsByTagName('*');

  for i := 0 to Tags.length-1 do
  begin

  try
    Tag := Tags.item(I, EmptyParam) as IHTMLElement;
    except
   tag:=nil;
    end;
  if tag.style.display<>'none' then begin
// this condition is not good, because the tag.style.display is usually set to '' so it not telling me, if the tag is really visible or not...
...


...

感谢您的建议

1 个答案:

答案 0 :(得分:1)

好的,我解决了......

添加变量tag2: IHTMLElement2;

tag2:=tag as ihtmlelement2;

if tag2.currentstyle.display<>'none' then  ...

解决了我的问题