我在 Delphi 10.2 Tokyo 中使用 Firemonkey。
我有一个带有 TListBox
的 HD 表单,其 MultiSelectStyle
设置为 Extended
或 Default
。
我可以选择多个项目,但是我找不到以编程方式确定选择哪些项目的方法。
这段代码
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/