16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"レコード型のデータをTListで2重ソート"
この発言は #01383 HATENA さんのレコード型のデータをTListで読み書き に対するコメントです
HATENA さん、こんにちは。
TListにセットしたレコード型データを、2重ソートします。
前記(nifty:FDELPHI/MES/16/1383)のサンプルで、ボタンを1つ追加して、名前
を btnSort としてください。
下記の比較関数と、btnSortのOnClickのイベントハンドラーを追加します。
まず Index1 で比較して、それが等しい場合は、Index2 で比較して、その結果に
基づいてソートすることによって、2重ソートになります。
function MySort(Item1, Item2: Pointer): Integer;
begin
Result := PSdata(Item1)^.Index1 - PSdata(Item2)^.Index1;
if Result = 0 then
Result := PSdata(Item1)^.Index2 - PSdata(Item2)^.Index2;
end;
procedure TForm1.btnSortClick(Sender: TObject);
begin
SDataList.Sort(MySort);
DrawGrid1.ReFresh;
end;
01/09/17(月) 16:51 HATENA(GFC03235)
Original document by HATENA 氏 ID:(GFC03235)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|