名前やその他のデータを一覧表示するためにDelphi2010とTListViewを使用しています。最初の2列は、名前と名です。
キャプション=姓
SubItems[0]=名
ListViewをこれらの2つの列で並べ替えるにはどうすればよいですか?これらはリストビューが並べ替えられる列のみであり、常に並べ替えを維持したいと思います(アイテムの追加、編集、削除時)
どうすればこれを達成できますか?
名前やその他のデータを一覧表示するためにDelphi2010とTListViewを使用しています。最初の2列は、名前と名です。
キャプション=姓
SubItems[0]=名
ListViewをこれらの2つの列で並べ替えるにはどうすればよいですか?これらはリストビューが並べ替えられる列のみであり、常に並べ替えを維持したいと思います(アイテムの追加、編集、削除時)
どうすればこれを達成できますか?
SortType
「stBoth」に設定し、OnCompare
イベント ハンドラーを実装します。例:
procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem;
Data: Integer; var Compare: Integer);
var
S1, S2: string;
begin
S1 := Item1.Caption;
if Item1.SubItems.Count > 0 then
S1 := S1 + Item1.SubItems[0];
S2 := Item2.Caption;
if Item2.SubItems.Count > 0 then
S2 := S2 + Item2.SubItems[0];
Compare := CompareText(S1, S2);
end;