总是出现类型不兼容解决思路

总是出现类型不兼容
总是出现类型不兼容
[DCC Error] Unit1.pas(64): E2009 Incompatible types: 'method pointer and regular procedure'
Delphi(Pascal) code
unit Unit1;

interface

uses
  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.


------解决方案--------------------
解决了 恭喜LZ
------解决方案--------------------
最近总是很郁闷啊
------解决方案--------------------
又是一个代码书写的问题呀
解决了就好呀
给份吧