Firemonkey (Delphi) TListbox with MultiSelect getting selected items

Firemonkey (Delphi) TListbox with MultiSelect getting selected items

我在 Delphi 10.2 东京使用 Firemonkey。

我有一个 TListBox 的高清表格,其 MultiSelectStyle 设置为 ExtendedDefault

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

这个代码

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 的各种属性和方法,但我无法找到找出哪些项目是 selected 的方法。

谁能帮我解决这个问题?

在 FireMonkey 中,TListBox.Selected property is a pointer to the first selected TListBoxItem object. It is NOT an array of boolean states like it is in VCL。您一定一直在查看 VCL 示例,而不是 FMX 示例。

错误消息是因为您试图将 [loop] 索引应用于特定的 TListBoxItem 对象,该对象没有 default 属性.

改用这个:

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