急,救救我,关于Twebbrowser!! 我也遇到该问题,直到现在还没解决,再次关注!!!! [email protected] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 来自DFW:大家在执行TWebBrowser的某个方法以进行期望的操作,如ExecWB等的时候可能都碰到过"试图激活未注册的丢失目标"或"OLE对象未注册"等错误,或者并没有出错但是得不到希望的结果,比如不能将选中的网页内容复制到剪贴板等。以前用它编程的时候,我发现ExecWB有时侯起作用但有时侯又不行,在Delphi生成的缺省工程主窗口上加入TWebBrowser,运行时并不会出现"OLE对象未注册"的错误。同样是一个偶然的机会,我才知道OLE对象需要初始化和终止化(懂得的东东实在太少了)。 我用我的前一篇文章《Delphi程序窗口动画&正常排列平铺的解决》所说的方法编程,运行时出了上面所说的错误,我便猜想应该有OleInitialize之类的语句,于是,找到并加上了下面几句话,终于搞定!究其原因,我想大概是由于TWebBrowser是一个嵌入的OLE对象而不算是用Delphi编写的VCL吧。initialization OleInitialize(nil); finalization try OleUninitialize; except end; 这几句话放在主窗口所有语句之后,"end."之前。"查找"功能 查找对话框可以在文档获得焦点的时候通过按键Ctrl-F来调出,程序中则调用IOleCommandTarget对象的成员函数Exec执行OLECMDID_FIND操作来调用,下面给出的方法是如何在程序中用代码来做出文字选择,即你可以自己设计查找对话框。 var Doc: IHtmlDocument2; TxtRange: IHtmlTxtRange; begin Doc :=WebBrowser1.Document as IHtmlDocument2; Doc.SelectAll; //此处为简写,选择全部文档的方法请参见第三条命令操作 //这句话尤为重要,因为IHtmlTxtRange对象的方法能够操作的前提是 //Document已经有一个文字选择区域。由于接着执行下面的语句,所以不会 //看到文档全选的过程。 TxtRange :=Doc.Selection.CreateRange as IHtmlTxtRange; TxtRange.FindText('Text to be searched',0.0); TxtRange.Select; end; 还有,从Txt.Get_text可以得到当前选中的文字内容,某些时候是有用的。还有复制,必须在调用ExecWB之前选定文字!否则出现错误。//P.S:上面的东西,在我主页的Delphi猛料包里面都有的。http://kingron.myetang.com 对不起,我是新手,懂的实在太少。所有这些:initialization OleInitialize(nil); finalization try OleUninitialize; except end;是加在最后的“end.”之前吗? winapi:请问可以在线程中调用webbrowser吗? 出错“试图激活未注册的丢弃目标”,可用Try将它封装掉,我就是这样做的。 咨询一下,一般软件的中英文界面切换怎么做? 调用C++的dll报内存错误 关于用线程查询,请各位老大讲解???????????????? 关于打印的问题 两数据库自动同步 我想在自己的程序中加入对权限的分配,各位有什么好的想法?数据库我用的是SQL Server 2000 关于菜单Project/options/Application 请教OLE拖拽 spcomm通讯,重启电脑spcomm通讯不上 急急急!!!高分相求(分全给)!怎样捕获并处理ADO数据库错误? 如何一次性修改某一字段的所有记录值? 关于PageControl控件的问题?
大家在执行TWebBrowser的某个方法以进行期望的操作,如ExecWB等的时候可能都碰到过"试图激活未注册的丢失目标"或"OLE对象未注册"等错误,或者并没有出错但是得不到希望的结果,比如不能将选中的网页内容复制到剪贴板等。以前用它编程的时候,我发现ExecWB有时侯起作用但有时侯又不行,在Delphi生成的缺省工程主窗口上加入TWebBrowser,运行时并不会出现"OLE对象未注册"的错误。同样是一个偶然的机会,我才知道OLE对象需要初始化和终止化(懂得的东东实在太少了)。
我用我的前一篇文章《Delphi程序窗口动画&正常排列平铺的解决》所说的方法编程,运行时出了上面所说的错误,我便猜想应该有OleInitialize之类的语句,于是,找到并加上了下面几句话,终于搞定!究其原因,我想大概是由于TWebBrowser是一个嵌入的OLE对象而不算是用Delphi编写的VCL吧。
initialization
OleInitialize(nil);
finalization
try
OleUninitialize;
except
end; 这几句话放在主窗口所有语句之后,"end."之前。
"查找"功能 查找对话框可以在文档获得焦点的时候通过按键Ctrl-F来调出,程序中则调用IOleCommandTarget对象的成员函数Exec执行OLECMDID_FIND操作来调用,下面给出的方法是如何在程序中用代码来做出文字选择,即你可以自己设计查找对话框。 var
Doc: IHtmlDocument2;
TxtRange: IHtmlTxtRange;
begin
Doc :=WebBrowser1.Document as IHtmlDocument2;
Doc.SelectAll; //此处为简写,选择全部文档的方法请参见第三条命令操作
//这句话尤为重要,因为IHtmlTxtRange对象的方法能够操作的前提是
//Document已经有一个文字选择区域。由于接着执行下面的语句,所以不会
//看到文档全选的过程。
TxtRange :=Doc.Selection.CreateRange as IHtmlTxtRange;
TxtRange.FindText('Text to be searched',0.0);
TxtRange.Select;
end; 还有,从Txt.Get_text可以得到当前选中的文字内容,某些时候是有用的。还有复制,必须在调用ExecWB之前选定文字!否则出现错误。//P.S:上面的东西,在我主页的Delphi猛料包里面都有的。http://kingron.myetang.com
所有这些:
initialization
OleInitialize(nil);
finalization
try
OleUninitialize;
except
end;
是加在最后的“end.”之前吗?