为什么Delphi线程运行时会出现Abstract Error Exception?

wlongy2k 2003-10-18 11:42:15
Delphi线程运行时会出现Abstract Error Exception?
源代码:

type
TTest = class(TThread)
private
procedure Execute;
end;
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
FThread: TTest;
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation

procedure TTest.Execute;
begin
sleep(1000);
end;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
FThread:= TTest.Create(false);
end;
为什么??
怎样解决??
...全文
65 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wlongy2k 2003-10-20
  • 打赏
  • 举报
回复
为什么一定要把Execute放在protect中?
cmmi 2003-10-20
  • 打赏
  • 举报
回复
改成
procedure Execute; override;

纯虚函数不继承肯定要报错!
aiirii 2003-10-20
  • 打赏
  • 举报
回复
公開的就無法隱藏, 在祖先類中已經公開了, 放到 private 也沒用!!!
ruthfox 2003-10-20
  • 打赏
  • 举报
回复
祖先类在Protected中的,最好是仍旧放在Protected中,否则会给出一个警告的,除非你有其他目的
ruthfox 2003-10-19
  • 打赏
  • 举报
回复
把这个:
TTest = class(TThread)
private
procedure Execute;
end;
改为:
TTest = class(TThread)
protect
procedure Execute;override;
end;
即可
pankun 2003-10-18
  • 打赏
  • 举报
回复
procedure Execute;
begin
sleep(1000);
end;

procedure TFrom1.Button1Click(Sender: TObject);
var
ThreadHwnd, ThreadID: THandle;
begin
ThreadHwnd := CreateThread(nil, 0, @Execute, nil, 0, ThreadID)
end;

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧