大侠帮忙看看多线程的代码,怎么编译不过去啊??? 提示:
  FSortArray:=@SortArray;
  和
   sort(Slice(FSortArray,FSize));
  两语句通不过!unit LetSort;interface
  uses Classes;type
 TSortArray=array[0..MaxInt div sizeOf (Integer)-1] of Integer;
 PSortArray=TSortArray;
 TSortThread=class(TThread)
  Private
       {在TSortThread类中定义了如下几个私有变元}
        FSortArray:PSortArray;
         FSize:Integer;
 Protected
         {类TSortThread超越了类Tthread的Execute方法}
  procedure Execute;override;
           {类TsortThread添加了一个Sort方法}
  procedure Sort(var A:array of Integer);
  public
           { 类TSortThread超越了类Tthread的构造方法}
         constructor Create(var SortArray:array of Integer);
end;
implementationconstructor TSortThread.Create(var SortArray:array of Integer);
begin
  FSortArray:=@SortArray;
  FSize:=High(SortArray)-Low(SortArray)+1;
  FreeOnTerminate:=True;
  inherited
  Create(False);
end;
{当线程开始时,Execute方法将被调用。}
procedure TSortThread.Execute;
begin
  sort(Slice(FSortArray,FSize));
end;{下面实现了冒泡法排序}
procedure TSortThread.Sort(var A:array of Integer);
var I,J,T:Integer;
begin
  for I:=High(A)downto Low(A) do
    for J:=Low(A)to High(A)-1 do
       if A[J]>A[J+1] then
             begin
               T:=A[J];
               A[J]:=A[J+1];
               A[J+1]:=T;
               if Terminated then
                   Exit;
             end;
end;end.

解决方案 »

  1.   

    TSortArray=array[0..MaxInt div sizeOf (Integer)-1] of Integer;
     PSortArray= ^TSortArray; //修改
      

  2.   

    >>sort(Slice(FSortArray,FSize));
    看不出很問題,修改
    sort(Slice(FSortArray^,FSize));
      

  3.   

    是以下代码的问题:constructor TSortThread.Create(var SortArray:array of Integer);
    begin
      FSortArray:=@SortArray;
      FSize:=High(SortArray)-Low(SortArray)+1;
      FreeOnTerminate:=True;
      inherited
      Create(False);
    end;
    不是以下代码的问题啊:TSortArray=array[0..MaxInt div sizeOf (Integer)-1] of Integer;
     PSortArray=TSortArray;
    谁来解决啊