delphi - Firemonkey (Delphi) TListbox 与 MultiSelect 获取选定项目

标签 delphi firemonkey delphi-10.2-tokyo tlistbox

我在 Delphi 10.2 Tokyo 中使用 Firemonkey。

我有一个带有 TListBox 的 HD 表单,其 MultiSelectStyle 设置为 ExtendedDefault

我可以选择多个项目,但是我找不到以编程方式确定选择哪些项目的方法。

这段代码

for loop := 0 to Listbox1.Count - 1 do
if Listbox1.Selected[loop] then ; //Do Something

我见过无法编译的变体:

[dcc32 Error] MainApplication.pas(60): E2149 Class does not have a default property

我已经了解了 TListBox 的各种属性和方法,但我看不出有什么方法可以找出选择了哪些项目。

有人可以帮我解决这个问题吗?

最佳答案

在 FireMonkey 中,TListBox.Selected属性是指向第一个选定的TListBoxItem的指针目的。它不是像 it is in VCL 这样的 bool 状态数组。您一定一直在查看 VCL 示例,而不是 FMX 示例。

错误消息是因为您尝试将 [loop] 索引应用到特定的 TListBoxItem 对象,该对象没有 default > 属性(property)。

改用这个:

for loop := 0 to ListBox1.Count - 1 do
begin
  if ListBox1.ListItems[loop].IsSelected then
    ...
end;

关于delphi - Firemonkey (Delphi) TListbox 与 MultiSelect 获取选定项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50977490/

相关文章:

Delphi XE2 FireMonkey 报告选项

string - Delphi 5中的OleVariant和String分配

delphi - 使用 Delphi 获取 sqlite3.dll 未找到错误

database - 如何使用 dbExpress 和 Delphi(也可能是 DataSnap)来抽象我的业务模型?

iOS - 分发证书错误

class - Delphi 10.2 - 无法解析单元名称 'Controls' 和 'Dialogs'

delphi - 添加工具按钮到 delphi ide 时出现奇怪的行为

delphi - 如何区分来自具有相同 IP 地址的多个客户端的连接?

ios - 如何在 MyApp.entitlements 中设置 com.apple.developer.linked-domains 的值?

delphi - LiveBinding值无法通过代码设置