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;
implementationprocedure TTest.Execute;
begin
  sleep(1000);
end;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
    FThread:= TTest.Create(false);
end;
为什么??
怎样解决??

解决方案 »

  1.   

    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;
      

  2.   

    把这个:
    TTest = class(TThread)
    private
      procedure Execute;
    end;
    改为:
    TTest = class(TThread)
    protect
      procedure Execute;override;
    end;
    即可
      

  3.   

    为什么一定要把Execute放在protect中?
      

  4.   

    祖先类在Protected中的,最好是仍旧放在Protected中,否则会给出一个警告的,除非你有其他目的
      

  5.   

    公開的就無法隱藏, 在祖先類中已經公開了, 放到 private 也沒用!!!
      

  6.   

    改成
    procedure Execute; override;纯虚函数不继承肯定要报错!