4
我正在使用Delphi 2010和TListView列出名稱和其他數據。前兩列是姓&名TListView列排序(按前兩列排序)
標題=姓
子項目[0] =名字
我怎麼排序ListView控件由這兩列?這些只會是列表視圖將被排序的列,我希望始終保持排序(當添加,編輯,刪除項目時)
我該如何做到這一點?
我正在使用Delphi 2010和TListView列出名稱和其他數據。前兩列是姓&名TListView列排序(按前兩列排序)
標題=姓
子項目[0] =名字
我怎麼排序ListView控件由這兩列?這些只會是列表視圖將被排序的列,我希望始終保持排序(當添加,編輯,刪除項目時)
我該如何做到這一點?
將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;
正是我期待的!謝謝! – JakeSays 2013-02-25 00:41:30
我會使用虛擬模式。不要讓GUI控件成爲你的數據結構。 – 2013-02-24 23:31:02