Firemonkey (Delphi) TListbox with MultiSelect getting selected items
Firemonkey (Delphi) TListbox with MultiSelect getting selected items
我在 Delphi 10.2 东京使用 Firemonkey。
我有一个 TListBox
的高清表格,其 MultiSelectStyle
设置为 Extended
或 Default
。
我可以 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;
我在 Delphi 10.2 东京使用 Firemonkey。
我有一个 TListBox
的高清表格,其 MultiSelectStyle
设置为 Extended
或 Default
。
我可以 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;