Firemonkey (Delphi) TListbox с MultiSelect для получения выбранных элементов
Я использую Firemonkey в Delphi 10.2 Токио.
У меня есть форма HD с TListBox
с этими MultiSelectStyle
установить либо Extended
или же Default
,
Я могу выбрать несколько элементов, однако не могу найти способ программно определить, какие элементы выбраны.
Этот код
for loop := 0 to Listbox1.Count - 1 do
if Listbox1.Selected[loop] then ; //Do Something
что я видел варианты не компилируется:
[ошибка dcc32] MainApplication.pas(60): класс E2149 не имеет свойства по умолчанию
Я прошел через различные свойства и методы TListBox
и я не вижу способа узнать, какие предметы выбраны.
Может кто-нибудь помочь мне в этом?
1 ответ
В FireMonkey TListBox.Selected
свойство является указателем на первый выбранный TListBoxItem
объект. Это НЕ массив логических состояний, как в VCL. Вы, наверное, смотрели примеры VCL, а не примеры FMX.
Сообщение об ошибке вызвано тем, что вы пытаетесь применить [loop]
индекс для конкретного TListBoxItem
объект, который не имеет default
имущество.
Используйте это вместо:
for loop := 0 to ListBox1.Count - 1 do
begin
if ListBox1.ListItems[loop].IsSelected then
...
end;