Twebbrowser,TidHTTP写成动态连接库后的困扰,500分求解(100分)

  • 主题发起人 主题发起人 donkeykiller
  • 开始时间 开始时间
D

donkeykiller

Unregistered / Unconfirmed
GUEST, unregistred user!
1、TIDHTTP为何速度太慢,而且返回的数据少于世纪数据
Function getdata(urllink:Pchar):Pchar;stdcall;
var
mag_http : TidHttp;
Begin
mag_http := TidHTTP.Create(NIL);
result := pchar(mag_http.Get(urllink));
mag_http.Free;
End;
2、Twebbrowser 如何判断是否已经下在完成
Function getdata(urllink:Pchar):Pchar;stdcall;
var
mag_doc : IHTMLDocument2;
i : integer;
Begin
i := 0;
mag_WebBrowser :=TWebBrowser.Create(NIL);
mag_webbrowser.Visible := true;
Try
Try
mag_WebBrowser.Navigate(urllink);
??????这里死循环,不加无法知道是否已经下载完成
while mag_webbrowser.Busy do
Begin
i := 1;
End;
mag_doc := (mag_WebBrowser.document as ihtmldocument2);
result := Pchar(string(mag_doc.body.outerText));
end;
except
messagebox(0,urllink,'执行页面错误',mb_ok);
end;
finally
mag_webbrowser.Free;
end;
End;
 
为什么我只能给100分出来
 
1.这种问题见过多次了,要么用string,要么自己为PChar分配内存
2.下载完成会触发事件
 
请给个连接,我查了大富翁以前的例子,都没有达到效果,参照中twebbrowser的下载网页时没有完成就开始执行下边的语句,造成doc为空,失败!
 
1、TIDHTTP为何速度太慢,而且返回的数据少于世纪数据
Function getdata(urllink:Pchar):Pchar;stdcall;
var
mag_http : TidHttp;
Begin
mag_http := TidHTTP.Create(NIL);
result := pchar(mag_http.Get(urllink));//这里只返回数据的地址,
//应该将数据复制到其他的数据缓冲才能释放
mag_http.Free; //这里会将数据释放掉
End;
 
大富翁们呢?????帮帮小弟吧[?]
 
yanghai,能不能说详细点,我用idhttp感觉速度很慢很慢,怎么弄到缓冲区,并且作为返回值返回呢????
 
1. http://www.delphibbs.com/delphibbs/dispq.asp?lid=2358920
2. 不用事件可以这样试试:while mag_webbrowser.Busy do Application.ProcessMessages;
 
还是不行啊,我是写在DLL提供给pb使用的
 
while mag_webbrowser.Busy do 这一段要造成死循环
 
感谢两位对我的帮助,不过还没有解决问题,分数不够,我加好了,怎么大家这么不热心啊
 
[?]要疯了!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
:D,来者有分啊!!!!!!!!!!!!!!!!!!!!!!!!!!
 
问题自行解决,感谢两位的支持!虽然没有对,还是非常感谢
 
多人接受答案了。
 
后退
顶部