这是什么原因????对你我他都有好处的问题(100分)

  • 主题发起人 主题发起人 天真
  • 开始时间 开始时间

天真

Unregistered / Unconfirmed
GUEST, unregistred user!
我在线程中用了这句
Web := TWebBrowser.Create(nil);
他报告出错“标志未引用存储”
这是什么意思????
分无所谓,关键能得答案,给出正克答案的人可以自己开口要分:)
谢谢大家
 
哦。。我也不知道。。。谁能说一说呢。。。哦哦。。
 
不好意思,线程没弄过。学习。
 
这是动态控的技术吗,我会一点
var
web:Twebbrowser;
begin
Web := TWebBrowser.Create(form1);
web.parent:=form1;
.....其它属性
 
在线程调用com/ole对象要先
CoInitialize(nil);
然后在线程结束的时候要
CoUnInitialize;
另外在线程中访问vcl要用Synchronize方法把代码放到主线程中执行.
 
这个在哪单元?
 
呵呵,帮你顶一下
 
在单元 activex 中.
 
XEEN,还是出错,你能举个例子?
 
procedure mythread.Execute;
begin
{ Place thread code here }
try
CoInitialize(nil);
Synchronize(createbrowser);
finally
CoUnInitialize;
end;
end;
procedure mythread.createbrowser;
begin
web:=twebbrowser.Create(nil);
end;
 
我也遇到这样的问题,经过xeen提示,在Thread.Execute中创建_Connection ,_RecordSet都没有问题。
甚至不用Synchronize也可以。用了Synchronize,Com对象就是主线程创建的了![blue][/blue]
 
在线程中为什么这句会出错?
with AWebdo
Navigate('http://www.delphibbs.com');
repeat
until ReadyState = READYSTATE_INTERACTIVE;
end;
 
TWebBrowser本身就是多线程的,为什么要把它在防到线程中呢,你把它防到form中
动态create form不就可以了,保证你create出来的50个form中的50个webbrowser能
各自navigate各自的网页
 
我把他放到线程中当然有我的理由,关键是我想知道为什么会出现这种错误:(
 
这个你的这个错误不是这个引起的。我做了测试代码如下:
TWebThread= class(TThread);
procedure TWebThread.Execute;
var
Aweb:Twebbrowser;
begin
try
CoInitialize(nil);
AWeb := TWebbrowser.Create(nil);
finally
AWeb.Free;
CoUnInitialize;
end;
end;
我用的是Dephi5,打个补丁的
 
出什么错误,代码应该是:
with AWebdo
begin
Navigate('http://www.delphibbs.com');
repeat
until ReadyState = READYSTATE_INTERACTIVE;
end;
 
我做过了也没有什么问题,不过在repeat死循环了。你永远也退不出此线程。
 
学了不少!
 
大哥,内存出错呀!:(
 
to 天真:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=825494
你的留言里的连接仔细看看(chinakey!!!!!),赶快改了吧:)
 
后退
顶部