创建了一个线程,结果在线程create的时候,系统就报错"abstract error"了。代码如下:procedure TFrm_E2BTest.btbtn_sendClick(Sender: TObject);
var
myurl:String;
postpara,XmlStr:WideString;
aThreadHttp:TThreadHttp;
begin
myurl:=赋值;
postpara:=赋值;
XmlStr:=赋值;
aThreadHttp:=TThreadHttp.create(myurl,postpara,XmlStr);
end; type
TThreadHttp = class(TThread) private
tURL:String;
tPostPara,tXmlStr:WideString;
protected
procedure Execute; override;
public
constructor create(aURL:String;aPostPara,aXmlStr:WideString);
end; var
mydir:String; implementation uses Unit_E2BTest, HPCounter;
constructor TThreadHttp.create(aURL:String;aPostPara,aXmlStr:WideString);
begin
inherited Create(true); //执行到这里时报"abstract error"
FreeOnTerminate := true;
tURL := aURL;
tPostPara := aPostPara;
tXmlStr:=aXmlStr;
end;
procedure TThreadHttp.Execute;
{
略;
}
var
myurl:String;
postpara,XmlStr:WideString;
aThreadHttp:TThreadHttp;
begin
myurl:=赋值;
postpara:=赋值;
XmlStr:=赋值;
aThreadHttp:=TThreadHttp.create(myurl,postpara,XmlStr);
end; type
TThreadHttp = class(TThread) private
tURL:String;
tPostPara,tXmlStr:WideString;
protected
procedure Execute; override;
public
constructor create(aURL:String;aPostPara,aXmlStr:WideString);
end; var
mydir:String; implementation uses Unit_E2BTest, HPCounter;
constructor TThreadHttp.create(aURL:String;aPostPara,aXmlStr:WideString);
begin
inherited Create(true); //执行到这里时报"abstract error"
FreeOnTerminate := true;
tURL := aURL;
tPostPara := aPostPara;
tXmlStr:=aXmlStr;
end;
procedure TThreadHttp.Execute;
{
略;
}
解决方案 »
- 求助,vc++中的一个模板函数在delphi中该如何表示
- 大家发过来的贴子都是错误的,没有一个经过调试的,有没有人知道的
- 怎样打开指定路径的文件夹并把里面的文件名显示在TLISTVIEW里面啊?
- 如何用delphi把一个word文档存入数据库,然后取出来打开?
- 關於使用ADOQuery控件插入日期型數據的問題,100分!!!!
- 用DELPHI制作扑克纸牌的问题!
- while table1.recordcount>0 do table1.delete;时,为什么程序会失去响应?
- 有一段短程序,delphi6,7,都不行,delphi5行得通,代码不难,各位发表一下意见
- 帮帮忙忙了
- 大虾请进,关于ListView
- 用CreateOleObject创建excel后怎么取得单元格中的批注?
- 求助:VC代码转成delphi的
除了excute部分,其他的代码都在上面了。
private
OwnerForm: TAccForm;
FException: Exception;
ProSucc:Boolean;
ProSta:string;
procedure DoExe_Pro;
procedure DoHandleException;
procedure ThreadDone(Sender: TObject);
protected
procedure Execute; override;
procedure HandleException;
public
constructor Create(Owner: TAccForm;FLAG:String);
end;constructor TExe_ProThread.Create(Owner: TAccForm;FLAG:String);
begin
OwnerForm:=Owner;
ProSta := FLAG;
inherited Create(True);
FreeOnTerminate := True;
Priority :=tpNormal;
end;
procedure TExe_ProThread.Execute;
begin
FException := nil;
ProSucc := False;
inherited;
if Terminated then Exit;
try
DoExe_Pro;
except
ProSucc := False;
HandleException;
end;
end;
procedure TExe_ProThread.DoExe_Pro;
begin
....
end;
procedure TExe_ProThread.DoHandleException;
begin
....
end;
procedure TExe_ProThread.HandleException;
begin
inherited;
.....
end;
.....
我就这样用的没有报错,并且线程中加了异常捕获.