总是出现类型不兼容
[DCC Error] Unit1.pas(64): E2009 Incompatible types: 'method pointer and regular procedure'
unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;type
  TForm1 = class(TForm)
    Button1: TButton;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);  private
    { Private declarations }
      procedure ThreadsDone(Sender: TObject);
  public
    { Public declarations }  end;
type
  TFooThread=class(TThread)
    protected
      procedure Execute;override;
  end;
var
  Form1: TForm1;implementation{$R *.dfm}
const
  MaxSize=128;
var
  NextNumber:integer=0;
  DoneFlags:Integer=0;
  GlobalArray:array[1..MaxSize]of integer;
function GetNextNumber:integer;
begin
  Result:=NextNumber;
  Inc(Nextnumber);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
  TFooThread.Create(False);
  TFooThread.Create(false);
end;procedure TForm1.ThreadsDone(sender: TObject);
var
  i: Integer;
begin
  Inc(DoneFlags);
  if DoneFlags = 2 then
    for i := 1 to MaxSize do
      Listbox1.Items.Add(IntToStr(GlobalArray[i]));
end;
procedure TFooThread.Execute;
var
  I:integer;
begin
  OnTerminate:=TForm1.ThreadsDone;
  for I:=1 to MaxSize do
  begin
    GlobalArray[i]:=GetNextNumber;
    Sleep(5);
  end;
end;
end.