type
  TMyGame=Record
    GameName:string[3];
    GameID:integer;
  end;
var
MyGame:array [0..50] of TMyGame;
根据GameID如何排序?

解决方案 »

  1.   

    type
      TMyGame=Record
        GameName:string[3];
        GameID:integer;
      end;
    implementation
    procedure TForm1.Button2Click(Sender: TObject);
      type
        PMyGame=^TMyGame;
      function MySort(item1,item2:Pointer):integer;
      begin
        Result:=PMyGame(item1)^.Value-PMyRec(item2)^.Value;
      end;
    var
      MyGame:array[0..50] of TMyGame;
      i:integer;
      List:TList;
      p:PMyRec;
    begin
      List:=TList.Create;
      Randomize;
      for i := 0 to 50 do
      begin
        MyGame[i].GameName:=inttostr(i);
        MyGame[i].GameID:=Random(1000);
        List.Add(@MyGame[i]);
        p:=List.Items[i];
        Memo1.Lines.Add(p^.GameName+'*'+IntToStr(p^.GameID));
      end;
      Memo1.Lines.Add('---------');
      List.Sort(@MySort);
      for i := 0 to MaxNum- 1 do
      begin
        p:=List.Items[i];
        Memo1.Lines.Add(p^.GameName+'*'+IntToStr(p^.GameID));
      end;
      List.Free;
    end;
      

  2.   

    错了上面的
    Result:=PMyGame(item1)^.Value-PMyRec(item2)^.Value;
    改成
    Result:=PMyGame(item1)^.GameID-PMyRec(item2)^.GameID;