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;
整数列と日付列が文字列としてソートされないようにするにはどうすればよいですか?
ありがとう