4 つの列 (もちろんすべて文字列) を持つ TListview がありますが、データを次のように格納します。
Caption
: 任意の文字列SubItems[0]
: 整数、例えば'5016'
SubItems[1]
: 日付、例'03/22/13'
Subitems[2]
: 任意の文字列
次のコードを使用して、ユーザーが Coolumn ヘッダーをクリックしたときに並べ替えます
この投稿「サブアイテム[x]に基づいてTlistviewでソートする方法」を見ていましたが、さまざまな列タイプを考慮する方法がわかりません。
procedure TfrmFind.lvwTagsColumnClick(Sender: TObject; Column: TListColumn);
begin
ColumnToSort := Column.Index;
(Sender as TCustomListView).AlphaSort;
end;
procedure TfrmFind.lvwTagsCompare(Sender: TObject; Item1, Item2: TListItem;
Data: Integer; var Compare: Integer);
var
ix: Integer;
begin
if ColumnToSort = 0 then
Compare := CompareText(Item1.Caption,Item2.Caption)
else begin
ix := ColumnToSort - 1;
Compare := CompareText(Item1.SubItems[ix],Item2.SubItems[ix]);
end;
end;
整数列と日付列が文字列としてソートされないようにするにはどうすればよいですか?
ありがとう