yukaridaki code ekleme yaparak bunu denedim
Kod: Tümünü seç
procedure IterateFrames(const AWB: IWebBrowser2);
var
Doc: IHTMLDocument2;
Container: IOleContainer;
Enumerator: ActiveX.IEnumUnknown;
Unknown: IUnknown;
Browser: IWebBrowser2;
Fetched: Longint;
begin
if (Assigned(AWB.Document))
and (Supports(AWB.Document, IHTMLDocument2, Doc))
then begin
if (Supports(Doc, IOleContainer, Container))
and (Container.EnumObjects(OLECONTF_EMBEDDINGS, Enumerator) = S_OK)
then begin
while Enumerator.Next(1, Unknown, @Fetched) = S_OK do
if (Supports(Unknown, IWebBrowser2, Browser))
then begin
showmessage(doc.body.outerhtml);
IterateFrames(browser);
end;
end;
end;
end;
kullanimi
Kod: Tümünü seç
IterateFrames(WebBrowser1.DefaultInterface);
son hali
Kod: Tümünü seç
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,mshtml, StdCtrls, OleCtrls, SHDocVw, ExtCtrls,ActiveX;
type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
Panel1: TPanel;
Button1: TButton;
Edit1: TEdit;
procedure FormActivate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure IterateFrames(const AWB: IWebBrowser2);
var
Doc: IHTMLDocument2;
Container: IOleContainer;
Enumerator: ActiveX.IEnumUnknown;
Unknown: IUnknown;
Browser: IWebBrowser2;
Fetched: Longint;
begin
if (Assigned(AWB.Document))
and (Supports(AWB.Document, IHTMLDocument2, Doc))
then begin
if (Supports(Doc, IOleContainer, Container))
and (Container.EnumObjects(OLECONTF_EMBEDDINGS, Enumerator) = S_OK)
then begin
while Enumerator.Next(1, Unknown, @Fetched) = S_OK do
if (Supports(Unknown, IWebBrowser2, Browser))
then begin
showmessage(doc.body.outerhtml);
IterateFrames(browser);
end;
end;
end;
end;
procedure WBLocateHighlight(WB: TWebBrowser; Text: string) ;
const
prefix = '<span style="color:white; background-color: red;">';
suffix = '</span>';
var
tr: IHTMLTxtRange;
begin
if Assigned(WB.Document) then
begin
tr := ((wb.Document AS IHTMLDocument2).body AS IHTMLBodyElement).createTextRange;
while tr.findText(Text, 1, 0) do
begin
tr.pasteHTML(prefix + tr.htmlText + suffix) ;
tr.scrollIntoView(True) ;
end;
end;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
webbrowser1.Navigate('http://www.google.com.tr/');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
WBLocateHighlight(WebBrowser1,Edit1.Text) ;
IterateFrames(WebBrowser1.DefaultInterface);
end;
end.
ama sonuç yine ayni ayni hatayi veriyor....

Aklim iyice karisti