FMX Delphi组合框排序不存在
我需要对FMX上的组合框进行排序,收到一条消息错误:“未声明的标识符” VarC:TComboBox c、 排序:=真//错误未声明的标识符 在VCL上工作良好 谢谢你的帮助FMX Delphi组合框排序不存在,delphi,firemonkey,Delphi,Firemonkey,我需要对FMX上的组合框进行排序,收到一条消息错误:“未声明的标识符” VarC:TComboBox c、 排序:=真//错误未声明的标识符 在VCL上工作良好 谢谢你的帮助 Giorgio不幸的是,FMX中的事情并没有那么简单,因为正如您所发现的,FMX中的TComboBox没有排序属性 一旦你调到FMX的波长,有一个简单的解决办法 您需要做的是在ComboxBox上调用Sort,并提供一个TFmxObjectSortCompare函数作为其参数,该函数可根据需要对项目进行排序。显然,这比仅仅
Giorgio不幸的是,FMX中的事情并没有那么简单,因为正如您所发现的,FMX中的TComboBox没有排序属性 一旦你调到FMX的波长,有一个简单的解决办法 您需要做的是在ComboxBox上调用
Sort
,并提供一个TFmxObjectSortCompare
函数作为其参数,该函数可根据需要对项目进行排序。显然,这比仅仅将Sorted
属性设置为true要灵活得多,但工作量要大一些。幸运的是,通过将Compare函数作为匿名方法提供,您可以相当轻松地完成此任务:
procedure TForm1.FormCreate(Sender: TObject);
var
Compare: TFMXObjectSortCompare;
begin
ComboBox1.Items.Add('C');
ComboBox1.Items.Add('B');
ComboBox1.Items.Add('A');
Compare := function(Item1, Item2: TFmxObject): Integer
begin
if TListBoxItem(Item1).Text = TListBoxItem(Item2).Text then
Result := 0
else
if TListBoxItem(Item1).Text > TListBoxItem(Item2).Text then
Result := 1
else
Result := -1;
end;
ComboBox1.Sort(Compare);
end;
PS:在阅读您的q之前,我不知道该怎么做,并且开始围绕主题阅读。非常感谢您的帮助!嗨,对不起,让我知道“勾号”图标在哪里。。。谢谢我的答案左上角是“向上”和“向下”图标,用于向上和向下投票答案,勾号图标应位于rge“向下”图标的正下方。仍然没有找到“勾号”图标吗?