Delphi - Получить текущий индекс выбранного элемента в TListView.

У меня есть TListView в форме, и я хотел бы знать индекс выбранного элемента. Я попытался найти метод или свойство моего TListView, которое дает эту информацию, но единственное, что я нашел, было lvClients.Selected и это не дает индекс этого элемента.

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

4 ответа

Решение

Используйте свойство ItemIndex.

Значение -1 указывает на отсутствие выбора.

Из документации:

Прочитайте ItemIndex, чтобы определить, какой элемент выбран. Первый элемент в списке имеет индекс 0, второй элемент имеет индекс 1 и т. Д. Если элемент не выбран, значение ItemIndex равно -1. Если элемент управления списком поддерживает несколько выбранных элементов, ItemIndex - это индекс выбранного элемента, который имеет фокус.

Использование Index собственностью Selected вещь

if lvClients.Selected <> nil then
  index := lvClients.Selected.Index;

В событии щелчка () вы также можете перейти к столбцу с подпунктами:

TListview(sender).items[TListview(sender).itemindex].subitems[1]);

вы должны использовать его как таковой:TListViewItem(ListView1.Selected).Indexнапример:

      procedure TfrmMain.ListView1ItemClick(const Sender: TObject;
  const AItem: TListViewItem);
begin

  { Old usage was like this:
    // Label1.Text := ListView1.Selected.Text;
  }
  // Now we have to cast it as such:

  Label1.Text := TListViewItem(ListView1.Selected).Index;
    
  // New usage of TListViewItem's selected item properties
  {
    TListViewItem(ListView1.Selected).ButtonText;
    TListViewItem(ListView1.Selected).Text;
    TListViewItem(ListView1.Selected).Index;
    TListViewItem(ListView1.Selected).Detail;
   ...
  }
end;
Другие вопросы по тегам