定义了一个IHTMLDocument2接口的数组,用于存储一个多frame页面中每个frame的IHTMLDocument2接口,大概如下
Doc2s: array[0..255] of IHTMLDocument2;假设现在已经获取了其中的一个frame的IHTMLDocument2接口,Doc2,我想判断是前面存储数组的第几个,为什么判断 Doc2 = Doc2s[i] 这样没有效果呢?对delphi不是很熟,但是c++下,可以定义一个IHTMLDocument2的指针数组,然后直接比较就可以了啊

解决方案 »

  1.   

    如果IHTMLDocument2中没有Data这种指针类型的成员可以继承一下用来判断
    type myIHTMLDocument = class(IHTMLDocument2)
         ID:Integer;
    end;Doc2s: array[0..255] of myIHTMLDocument 通过  Doc2.ID = Doc2s[i].ID 来判断,不知道是不是你要的效果?
      

  2.   

    谢谢楼上的回复,可是如果我自己继承的话,那个ID该如何赋值?我枚举的时候,可以比如从0到255的赋值,可是我如果在某个frame下找到某个接口的时候,这个值会是我当初的赋值吗,接口和指针好像不一样吧?谢谢
      

  3.   

    =如果无效,你可以用IHTMLDocument2中重载的=,比如Doc2.operator =Doc1,这样之类的
      

  4.   

    楼主啊,你的问题跟你的思路有关!你可以用动态数据嘛。这样定义:Doc2s: array of IHTMLDocument2;然后取frame.Length,接着来一句:SetLength(Doc2s,frame.Length)设置,然后再引用Doc2s[i]