FMX Delphi组合框排序不存在

FMX Delphi组合框排序不存在,delphi,firemonkey,Delphi,Firemonkey,我需要对FMX上的组合框进行排序,收到一条消息错误:“未声明的标识符” VarC:TComboBox c、 排序:=真//错误未声明的标识符 在VCL上工作良好 谢谢你的帮助 Giorgio不幸的是,FMX中的事情并没有那么简单,因为正如您所发现的,FMX中的TComboBox没有排序属性 一旦你调到FMX的波长,有一个简单的解决办法 您需要做的是在ComboxBox上调用Sort,并提供一个TFmxObjectSortCompare函数作为其参数,该函数可根据需要对项目进行排序。显然,这比仅仅

我需要对FMX上的组合框进行排序,收到一条消息错误:“未声明的标识符”

VarC:TComboBox

c、 排序:=真//错误未声明的标识符

在VCL上工作良好

谢谢你的帮助
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“向下”图标的正下方。仍然没有找到“勾号”图标吗?