Sco*_*uer 5 delphi sorting tlistbox
我有一个TListBox,其中包含一个位置列表(每个位置都有一个名称和距当前位置的距离).我想让用户选择按位置名称(即按字母顺序)或与当前位置的距离对列表进行排序.位置名称存储为项目的ItemData.Text值,距当前位置的距离存储为ItemData.Detail值.问题是常规TListBox排序方法在排序时不使用ItemData.Detail属性(只是ItemData.Text属性).是否可以向TListBox添加自定义排序方法,根据每个项目的ItemData.Detail值进行排序?
我尝试了以下,但它不起作用:
procedure TFrmSelect.btnSortLocationClick(Sender: TObject);
var Compare: TFMXObjectSortCompare;
begin
btnSortLocation.Enabled := False;
btnSortAlpha.Enabled := True;
Compare := function(item1, item2: TFmxObject): Integer
begin
Result := TListBoxItem(item1).ItemData.Detail.CompareTo(TListBoxItem(item2).ItemData.Detail);
end;
self.ListBox.Sort(Compare);
self.ListBox.Sorted := False;
self.ListBox.Sorted := True;
end;
Run Code Online (Sandbox Code Playgroud)
以下是要排序的示例列表的图像:
归档时间: |
|
查看次数: |
366 次 |
最近记录: |