Перейти к содержанию
Fire Monkey от А до Я
  • 0

Выделяется итем, хотя клик идет не по нему


xenon54

Вопрос

Скажите пожалуйста, это нормальное поведение TListView? Создаем обычный TListView, добавляем в него 1 итем. Тыкаем мышкой в область TListView, но ниже итема в любом месте и каким-то чудом выделяется самый нижний итем, в данном примере он всего один. Если так и задумано {censored} то как с этим бороться

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Сам спросил, сам ответил...

В FMX.ListView в функции определения индекса итема по абсолютной координате клика на ListView почему-то заложено такое поведение ( возвращает индекс последнего элемента если клик пришелся на область, вертикальная координата которой больше чем начало последнего итема). Вот так исправляется:

function TCustomListView.FindItemAbsoluteAt(ViewAt: Integer): Integer;
var
  Left, Right, Pivot, Value: Integer;
begin
  UpdateItemLookups;

  if Items.Count < 1 then
    Exit(-1);
  if ViewAt < 1 then
    Exit(0);
  {
  if ViewAt >= FHeightSums[FHeightSums.Count - 1] then
    Exit(FHeightSums.Count - 1);
  }
  if ViewAt > FHeightSums[FHeightSums.Count - 1] + GetItemHeight( GetItemCount - 1 ) then
  Exit(- 1);

Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...