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;
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;
Result:=PMyGame(item1)^.Value-PMyRec(item2)^.Value;
改成
Result:=PMyGame(item1)^.GameID-PMyRec(item2)^.GameID;