WebBrowser的两个老问题:查找和加亮(100分)

  • 主题发起人 主题发起人 zw84611
  • 开始时间 开始时间
Z

zw84611

Unregistered / Unconfirmed
GUEST, unregistred user!
1.WebBrowser的查找功能,要求不出现查找对话框,按序查找所有内容。
我试过:
procedure TForm1.Button3Click(Sender: TObject);
const
CLSID_WebBrowser: TGUID = '{ED016940-BD5B-11cf-BA4E-00C04FD70816}';
var
CmdTarget: IOleCommandTarget;
begin
try
WebBrowser1.Document.QueryInterface(IOleCommandTarget, CmdTarget);
if CmdTarget <> nil then
try
CmdTarget.Exec(@CLSID_WebBrowser, 1, 0, EmptyParam, EmptyParam);
finally
CmdTarget._Release;
end;
except
end;
end;
但这个方法会出现查找对话框。
以及:
procedure TForm1.Button4Click(Sender: TObject);
var
Doc: IHtmlDocument2;
Txt:IHTMLTxtRange;
begin
Doc := WebBrowser1.Document as IHTMLDocument2;
WebBrowser1.ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT,
EmptyParam,EmptyParam);
Txt :=Doc.selection.createRange as IHTMLTxtRange;
Txt.findText('a',0,0);
Txt.select;
end;
这个方法不出现查找对话框,但只能找到第一个。

============================================================================
2.WebBrowser中的加亮功能,即类似CHM文件搜索后出现的那种加亮。
我试过:
procedure TForm1.SearchAndHighlightText(aText: string);
var
i: Integer;
begin
for i := 0 to WebBrowser1.OleObject.Document.All.Length - 1 do
begin
if Pos(aText, WebBrowser1.OleObject.Document.All.Item(i).InnerText) <> 0 then
begin
WebBrowser1.OleObject.Document.All.Item(i).Style.Color := '#FFFF00';
//WebBrowser1.OleObject.Document.All.Item(i).ScrollIntoView(True);
end;
end;
end;
但效果不理想。

请告诉我具体做法,不要只给出个网址,如:http://www.euromind.com/iedelphi/
 
//给3000元都不过分
//绝对的正宗解决方案,我找不出问题
procedure TForm1.Button1Click(Sender: TObject);
var
sString,bgColor:string;
doc:IHTMLdocument2;
R:IHTMLTxtRange;
begin
sString :='document'
//=Edit1.text
要查找的字符串,空格都能找
//还可以跨边界 比如 <u>docum<b>entdo</b>cument</u>
bgColor :='magenta'
//=Edit2.text
也可以是 #FF00FF FFFF00 这种形式
try
doc :=IHTMLdocument2(webbrowser1.Document)
R :=IHTMLTxtRange(doc.selection.createRange);
while R.findText(sString,1,0) do begin
R.select;
R.execCommand('Backcolor',false,bgColor);
R.setEndPoint('StartToEnd',R);
end;
except
end;
end;
 
:),好另外给你300。
 

Similar threads

I
回复
0
查看
509
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
618
import
I
后退
顶部