Delphi 德尔福Firemonkey TListView';s项目重新排列
我想动态地重新排列TListView的项目,例如,我有以下项目:Delphi 德尔福Firemonkey TListView';s项目重新排列,delphi,firemonkey,Delphi,Firemonkey,我想动态地重新排列TListView的项目,例如,我有以下项目: Item #1 Apple Item #2 Banana Item #3 Orange and so on..... 我想在第1项中设置橙色,可以吗 我在10.2和10.3中使用过类似的东西,不确定TComparer是什么时候出现的 这是一个带有两个基本分拣机的单元-您可以更改代码以执行比较功能中的任何操作 unit MyFMXListView_ItemSorters; interface uses System.Gene
Item #1 Apple
Item #2 Banana
Item #3 Orange
and so on.....
我想在第1项中设置橙色,可以吗 我在10.2和10.3中使用过类似的东西,不确定TComparer是什么时候出现的
这是一个带有两个基本分拣机的单元-您可以更改代码以执行比较功能中的任何操作
unit MyFMXListView_ItemSorters;
interface
uses
System.Generics.Defaults
, FMX.ListView.Appearances
;
type
TMyListViewItemComparer_AscendingItemText = class( TComparer<TListViewItem> )
function Compare(const Left, Right: TListViewItem): Integer; override;
end;
TMyListViewItemComparer_DescendingItemText = class( TComparer<TListViewItem> )
function Compare(const Left, Right: TListViewItem): Integer; override;
end;
implementation
uses
sysutils;
{ TMyListViewItemComparer_Ascending }
function TMyListViewItemComparer_AscendingItemText.Compare(const Left,
Right: TListViewItem): Integer;
begin
result := CompareText(Left.Text,Right.Text);
end;
{ TMyListViewItemComparer_DescendingItemText }
function TMyListViewItemComparer_DescendingItemText.Compare(const Left,
Right: TListViewItem): Integer;
begin
result := CompareText(Right.Text,Left.Text);
end;
end.
下面的三个图像(创建后、升序单击后和降序单击后)
我在10.2和10.3中使用过类似的东西,不确定TComparer是什么时候出现的
这是一个带有两个基本分拣机的单元-您可以更改代码以执行比较功能中的任何操作
unit MyFMXListView_ItemSorters;
interface
uses
System.Generics.Defaults
, FMX.ListView.Appearances
;
type
TMyListViewItemComparer_AscendingItemText = class( TComparer<TListViewItem> )
function Compare(const Left, Right: TListViewItem): Integer; override;
end;
TMyListViewItemComparer_DescendingItemText = class( TComparer<TListViewItem> )
function Compare(const Left, Right: TListViewItem): Integer; override;
end;
implementation
uses
sysutils;
{ TMyListViewItemComparer_Ascending }
function TMyListViewItemComparer_AscendingItemText.Compare(const Left,
Right: TListViewItem): Integer;
begin
result := CompareText(Left.Text,Right.Text);
end;
{ TMyListViewItemComparer_DescendingItemText }
function TMyListViewItemComparer_DescendingItemText.Compare(const Left,
Right: TListViewItem): Integer;
begin
result := CompareText(Right.Text,Left.Text);
end;
end.
下面的三个图像(创建后、升序单击后和降序单击后)
如果将数据和表示分开,这是没有问题的。只需重新排列您的数据,并相应地重建ListView。这就是我所做的。那么,除了组件不允许更改项目(除了其视觉属性)之外,还有什么问题?询问者似乎希望自动创建列表,类似于TStringList。Sorted=true。如果将数据和表示分开,这没问题。只需重新排列数据,并相应地重建ListView。这就是我所做的。那么,除了组件不允许更改项目(除了它的视觉属性)之外,还有什么问题呢?询问者似乎希望自动获得列表,类似于TStringList.Sorted=true.Yup,这将进行排序。但是它会动态排序吗?当添加项目时,它会自动排序列表还是在正确的位置插入新项目?AFAIK TList不像stringlist那样具有“排序”属性。是的,这将进行排序。但是它会动态排序吗?当添加项目时,它会自动排序列表还是在正确的位置插入新项目?AFAIK TList不像stringlist那样具有“排序”属性。