• 0
tromani

Выделить TListViewItem нажатием правой кнопки мыши

Вопрос

Всем привет, если кто знает как выделить Item в ListView по координатам или чтоб Item выделялся после нажатия на правую кнопку мыши, спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

3 ответа на этот вопрос

  • 0

Для стандартного ListView я пользуюсь вот таким кодом (только для фиксированной высоты итемов):

var
  indx: Integer;
  ....
  indx := Trunc((ListView.AbsoluteToLocal(Point).Y + ListView.ScrollViewPos) / ListView.ItemAppearance.ItemHeight);
  if (indx >= 0) and (indx <= ListView.Items.Count - 1) then
    ListView.ItemIndex := indx;

А если пользуетесь ModernLV, то можно так:

ListView.ItemIndex := ListView.FindItemByPosition(ListView.AbsoluteToLocal(Point).X, ListView.AbsoluteToLocal(Point).Y);

 

где Point - это координаты нужной точки

Point: TPointF

 

Изменено пользователем sinuke

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

первый вариант не пойдет там Header/Footer разная высота с основным Item, к сожалению и количество Header чтоб посчитать надо перелапатить получается весь source

FindItemByPosition такого или подобного свойства не нашел у себя. видимо никак

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
40 минут назад, tromani сказал:

первый вариант не пойдет там Header/Footer разная высота с основным Item, к сожалению и количество Header чтоб посчитать надо перелапатить получается весь source


FindItemByPosition такого или подобного свойства не нашел у себя. видимо никак

FindItemByPosition - вот тут можно найти https://github.com/rzaripov1990/ModernListView. просто скопировать два файла FMX.ListView.pas и FMX.ListView.Types.pas в папку с проектом

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

Изменено пользователем sinuke
Равиль Зарипов (ZuBy) и wamaco понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу