Перейти к содержанию
  • Регистрация
  • 0
Авторизация  
tromani

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

Вопрос

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

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


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

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

  • 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

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Авторизация  

  • Последние посетители   0 пользователей онлайн

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

×
×
  • Создать...