gpt4 book ai didi

delphi - FMX Delphi ComboBox 排序不存在

转载 作者:行者123 更新时间:2023-12-01 19:26:47 24 4
gpt4 key购买 nike

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

var c: TComboBox;

c.sorted := true;//错误未声明标识符

在 VCL 上工作正常。

感谢帮助乔吉奥

最佳答案

不幸的是,FMX 中的事情并不那么简单,因为正如您所发现的,FMX 中的 TComboBox 没有 Sorted 属性。

一旦您调谐到 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:在阅读您的问题并开始围绕该主题阅读之前,我不知道如何执行此操作。

关于delphi - FMX Delphi ComboBox 排序不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54475608/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com