Mam TEmbeddedWB (https://sourceforge.net/projects/embeddedwb/) z elementem iFrame. Muszę się dowiedzieć, że konkretny znacznik HTML znajduje się w tym iFrame, czy nie. Mój obiekt iFrame to IHTMLFrameBase2
, a Tag to IHTMLElement
. Wiem, że iFrame.contentWindow.document
(który jest IHTMLDocument2
) jest taki sam jak Tag.document
. Ale Tag.document
jest obiektem IDispatch, dlatego dodaje daje fałszywy:Jak ustalić, czy dokument IHTMLDocument2 jest równy dokumentowi IDispatch w Delphi?
if iFrame.contentWindow.document = Tag.document then ShowMessage('In iFrame')
else ShowMessage('Not in iFrame');
wiem, że dwa przedmiot jest taki sam, ponieważ lista obserwacyjna może pokazać swój adres pamięci:
Ale nie mogę pobrać ich adresów z kodu. Co próbowałem:
Addr(iFrame.contentWindow.document) // Gives variable required error
@iFrame.contentWindow.document // Gives variable required error
Pointer(iFrame.contentWindow.document) //Compiles, but gives wrong address
Format('%p',[iFrame.contentWindow.document]) //Compiles, but gives EConvertError
Uwaga: Jeśli uruchomić linię po linii adresy że lista obserwacyjna jest pokazujące zmiany po każdej linii kodu, bez względu na kod wpływa na WebBrowser czy nie.
Idealne i proste rozwiązanie. Dzięki :) – Fenistil