用过TWEBBROWSER的请进来,高分求救 VCL组件开发及应用http://www.delphi2007.net/DelphiVCL/html/delphi_20061222111048196.html
用TWEBBROWSER做了一个浏览器,调用本机的两个网页文件
网页中有大量的JAVESCRIP脚本,
在来回切换时出现三种错误,这三种错误不经常出,但总有,
一个是MSHTML。DLL异常
二是弹出一个对话框,标题为“实时调试”
最上方是:“请选择一个调试器”
下面是一个列表框,标题为“可能的调试器”
列表框中有一个“新实例Mircosoft script editor”
下方是一个复选框,内容是将当前的调试器设为默认调试器,对后最下方是,是否希望用选定的调试器进行调试然后是按钮
三是 出现一个对话框,从英文看是告诉我在调试状态下
第一个问题是测试时在所有机器上都会出现
第二个问题和第三个问题,在有的机器上不出现,
第三个问题出现后,会直接关闭程序
开发环境 D7 XP
网页 javascrip,加MP7是由工具软件生成的
请高手解决
关注中...
// 有没有初始化Ole?
// 全当路过
uses ActiveX;
//...
initialization
OleInitialize(nil);
finalization
OleUninitialize;
end.
http://support.microsoft.com/default.aspx/kb/261003
伴水清清和蒋晟,我其它的问题都是看你们的回复解决的,就想着你们了
我试试先,不过那个网页我看来之后,还没有找到思路,可否详细点
自顶一下
webBrowser.Silent:=true?
剪兄也来了,还没看到小河
剪兄,我这个不是脚本运行错误的问题,
:)
up
再顶一下,帮顶有分啊
再次声明,帮顶有分
没有看到你的网页脚本
你叫大家怎么帮你调试?
至少你要提供一个调试环境
问题没有解决,但已经两天了,我决定结贴,感谢捧场的朋友
我将再开一贴,继续求助,
伴水兄
我的代码是这样
我有一个单元,定义了一个类,这个类从数据库中读出参数,生成实例,然后在界面上生成按钮
每个按钮对应这个类的一个实例
点击一个按钮则会打开相应的网页,这些网页都是存在本地的,是由软件生成的MP7课件
包含视频和PPT,并由网页中的javaSCRIPt 脚本负责视频和PPT的播放,同步问题,
网页内的脚本是由软件生成的,而且单独播放一个是没有问题的
问题都出在我不停的按按钮的时候,也就是我打开一个网页之后,马上又打开一个网页
我想是WEBBROWSER调入了新的网页,但原网页中的脚本没有释放干净,或者还在运行,造成了冲突,所以出现了这个问题
主要代码如下,
unit define;
//
TPowerCtl = class(TObject)
private
but: Boolean;
Fobj: Tcontrol;
FCtlInfo: TCtlFieldINfo;
oldx: Integer;
oldy: Integer;
procedure objClick(Sender:Tobject);
procedure objenter(sender:Tobject);
procedure TPowerCtl.objClick(Sender:Tobject);
var
i:integer;
doc:IHTMLDOCUMENT2;
// temp:integer;
begin
// temp:=0;
For i:=0 to TControl(sender).Parent.ControlCount-1 do
begin
if TControl(TControl(sender).Parent.Controls[i]).Tag =9999 then //网页控件的TAG
begin
while TWebBrowser(TControl(sender).Parent.Controls[i]).ReadyState <>4 do
Application.ProcessMessages;// 完成后再执行
TWebBrowser(TControl(sender).Parent.Controls[i]).Stop ;
doc:=TWebBrowser(TControl(sender).Parent.Controls[i]).document as IhtmlDOCument2;
doc.close ;
doc.clear ;
TWebBrowser(TControl(sender).Parent.Controls[i]).Navigate(MainPath+self.FCtlInfo.FINdexPage); //调入相应的网页
doc._Release;
end;
end;
end;
由主窗体调用这个单元,
在这个单元的初始化事件中初始化了OLE控件//这点我有疑问,到底在那初始化好
// WEB是办面上固定的,是否应当写在PRJ的初始化事件
//或是主窗体单元的初始化事件中
各位兄台,如果有办法,请到新贴中回复,解决一定再给分,谢谢