お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
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