|
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"ListView詳細表示時のカラムクリック時のソート"
{一番単純なソートです}
{ソートプロックの定義 この位置で定義}
function SortProc(Item1, Item2: TListItem; ParamSort: integer):
Integer; stdcall;
Var
Form1: TForm1;
implementation
{$R *.DFM}
{カラムクリック毎に昇順・降順を入れ替えるためのフラグ
列数分定義する FormCreate時に初期化(1を入れる)しておく}
var
SortArray: array[0..4] of integer;//今回は5列
{ソートプロックの実装}
function SortProc(Item1, Item2: TListItem; ParamSort: integer):
Integer; stdcall;
begin
If ParamSort = 0 Then
Result := SortArray[ParamSort] *
lstrcmp(PChar(TListItem(Item1).Caption),
PChar(TListItem(Item2).Caption))
Else
Result := SortArray[ParamSort] *
lstrcmp(PChar(TListItem(Item1).SubItems[ParamSort - 1]),
PChar(TListItem(Item2).SubItems[ParamSort - 1]));
end;
・・・・・・・・・メイン処理・・・・・・・・
{カラムクリック時の処理}
procedure TForm1.ListView1ColumnClick(Sender: TObject;
Column: TListColumn);
begin
ListView1.CustomSort(@SortProc, Column.Index);
SortArray[Column.Index] := -SortArray[Column.Index];
end;
{ 98/4/20(Mon) PXP15210 清明 }
Original document by 清明 氏 ID:(PXP15210)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|