如何时使用线程实现idhttp.get 听说使用线程实现idhttp.get是解决程序不假死的最好办法,有人可以把代码贴一下吗varurl:='http://www.1.com/'showmessage(idhttp.get(url));怎么用线程实现以上过程,请大家指教。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 创建一个线程,在线成立执行get操作吧,没用过IDHttp const WM_HTTPTEXTGOT = WM_USER + 1;THttpThread = class(TThread)private FHandle: THandle; FUrl: string; FHttp: TIdHttp;protected procedure Execute; override;public constructor Create(AHandle: THandle; AUrl: string); override; destructor Destroy; override;end;var arrResponse: array of Char;........THttpThread.Create(AHandle: THandle);begin FHttp := TIdHttp.Create(nil); FHandle := AHandle; FUrl := AURL; inherited Create(False);end;THttpThread.Destroy;begin FHttp.Free; inherited Destroy;end;THttpThread.Execute;var strReturn: string;begin FreeOnTerminated := True; strReturn := FHttp.Get(FUrl); SetLength(arrResponse, Length(strReturn)); StrPCopy(arrResponse, strReturn); //往通知的窗口发个消息,通知接收完成.然后在那个窗口中响应WM_HTTPTEXTGOT消息.访问arrResponse数组,得到结果 PostMessage(FHandle, WM_HTTPTEXTGOT, 0, 0);end; TForm1 = class(TForm).....private procedure WMHttpTextGot(var message: TMessage); message WM_HTTPTEXTGOT;....end;procedure TForm1.Button1Click(Sender: TObject);begin THttpThread.Create(Handle, 'www.google.cn');end;procedure TForm1.WMHttpTextGot(var message: TMessage);begin Memo1.Text := arrResponse;end; Application.ProcessMessages问题 关于 pchar 和string的问题 一个窗体上控件的个数有限制吗? 在DELPHI中怎么调试DLL动态链接库?可以使用断点吗? 我的DELPHI提示我要注册怎么办??? 如何直接读出文本文件中的某一行? 关于面向对象的问题(override)!国庆节了,散分! XP下,所有MenuItem的快捷键怎么都不能起作用呢? 请问怎样才能取得指针所在行的行号? 关于调用DOS命令 delphi statusbar 文字从右向左滚动 转了几次函数,数据丢失了
WM_HTTPTEXTGOT = WM_USER + 1;THttpThread = class(TThread)
private
FHandle: THandle;
FUrl: string;
FHttp: TIdHttp;
protected
procedure Execute; override;
public
constructor Create(AHandle: THandle; AUrl: string); override;
destructor Destroy; override;
end;var
arrResponse: array of Char;
........THttpThread.Create(AHandle: THandle);
begin
FHttp := TIdHttp.Create(nil);
FHandle := AHandle;
FUrl := AURL;
inherited Create(False);
end;THttpThread.Destroy;
begin
FHttp.Free;
inherited Destroy;
end;THttpThread.Execute;
var
strReturn: string;
begin
FreeOnTerminated := True;
strReturn := FHttp.Get(FUrl);
SetLength(arrResponse, Length(strReturn));
StrPCopy(arrResponse, strReturn);
//往通知的窗口发个消息,通知接收完成.然后在那个窗口中响应WM_HTTPTEXTGOT消息.访问arrResponse数组,得到结果
PostMessage(FHandle, WM_HTTPTEXTGOT, 0, 0);
end;
.....
private
procedure WMHttpTextGot(var message: TMessage); message WM_HTTPTEXTGOT;
....
end;procedure TForm1.Button1Click(Sender: TObject);
begin
THttpThread.Create(Handle, 'www.google.cn');
end;procedure TForm1.WMHttpTextGot(var message: TMessage);
begin
Memo1.Text := arrResponse;
end;