急,救救我,关于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将它封装掉,我就是这样做的。 像高手求救,进销存出库出错!!! 高手请进,有关Combobox组件的下拉显示stringgrid的组件问题 PrintDBGridEh1的页码设置! 如何将如下格式的地址信息提取并插入数据库里? 急求mshflxgd.ocx控件的下载地址 如何从客户端往中间层DCOM传递TMemoryStream参数? delphi中如何判断一个函数指针是否已被付值呢? 我是新手,请帮我!!!关于power函数的 ClientDataSet更新问题 请问哪位做过打印控件的开发?如何写设计文档和如何从头开始做一个打印控? 如何一次性修改某一字段的所有记录值? 关于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.”之前吗?