2015-12-21 2 views
3

Я использую XE7 и FMX.TListbox - OnChangeEvent не срабатывает над многопользовательской системой

Моя проблема заключается в том, что OnChange-Event для TListbox работает неправильно с помощью multiselect (он не срабатывает каждый раз, когда произошло изменение).

Шаги для воспроизведения:

  • Создать FMX-приложение и добавить TListBox к его форме.
  • Добавить элементы в этот список.
  • Установите 'MultiSelectStyle' из списка на 'default'.
  • Обрабатывать OnChangeEvent (установить точку останова или сделать что-то ...).
  • Теперь запустите проект и щелкните по первому элементу -> Выполняется OnChange.
  • Но если первая деталь снова нажал OnChange будет не быть выполнена.

Может ли кто-нибудь сказать мне, как я могу это исправить, так что каждый раз, когда меняется выбор, я получаю событие.

+1

использовать onClick событие, чтобы справиться с этим. Выбранный элемент не изменяется при повторном нажатии. – sddk

ответ

1

Из документации FMX.ListBox.TCustomListBox.OnChange:

Происходит, когда выбор в изменении списка. Напишите обработчик события OnChange, чтобы выполнить определенные действия сразу после того, как в списке появится новый элемент или элементы.

Используйте OnClick или OnItemClick событие вместо того, чтобы контролировать, когда пользователь повторно выбирает тот же выбор. И сохраните обработчик OnChange для всех новых выборов.

+0

OnClick срабатывает только в том случае, если элемент выбран с помощью мыши и не срабатывает, когда элемент выбран с клавиатуры. – Rynardald

+1

@ Rynardald, вы будете использовать событие onClick для обработки выбранного элемента. для других вы будете использовать onChange – sddk

Смежные вопросы