procedure ListReOrder(AResvData:array of TResvData);
  var
      i,j:integer;
      MinTime : TDateTime;
      MinStr,AStr:string;
      AID:integer;
  begin//排序
      for i:= Low(AResvData) to High(AResvData) do
      begin
          MinTime := StrToTime(AResvData[i].RTime);
          MinStr    := AResvData[i].RName;
          for j:= i+1 to High(AResvData) do
            if MinTime > StrToTime(AResvData[J].RTime) then
            begin
              AStr :=  AResvData[i].RTime;
              AResvData[i].RTime := AResvData[j].RTime;
              AResvData[j].RTime := AStr;
              MinTime := StrToTime(AStr);              AStr :=  AResvData[i].RName;
              AResvData[i].RName := AResvData[j].RName;
              AResvData[j].RName := AStr;              AID :=  AResvData[i].RID;
              AResvData[i].RID := AResvData[j].RID;
              AResvData[j].RID := AID;
            end;
      end;
      ShowMessage(AResvData[0].RName+AResvData[1].RName+AResvData[2].RName);  //2009.1.7.10.09
 end;数组的排序,到showmessage时显示的都是正确的排序,但一运行到最后一个END时,排序又变成原来的了。据个例子,原本排序是321,经过程序到最后一步之前我追踪数组是123,但最后一步运行了就变321了...为什么啊?