2015-03-24 15 views
5

Mam TListView w formie i chciałbym poznać indeks wybranego elementu. Próbowałem znaleźć metodę lub właściwość mojego TListView, która podaje tę informację, ale jedyną rzeczą, którą znalazłem była lvClients.Selected i nie podaje ona indeksu tego elementu.Delphi - Uzyskaj aktualny indeks wybranego elementu w TListView

Czy ktoś może mi pomóc w znalezieniu indeksu wybranego elementu w moim widoku TListView? Dzięki.

Odpowiedz

8

Użyj właściwości ItemIndex.

Wartość -1 oznacza brak wyboru.

Z dokumentacji:

Czytaj ItemIndex aby określić, który element jest zaznaczony. Pierwsza pozycja na liście ma indeks 0, druga pozycja ma indeks 1 i tak dalej. Jeśli nie wybrano żadnej pozycji, wartość ItemIndex wynosi -1. Jeśli kontrolka listy obsługuje wiele wybranych elementów, ItemIndex jest indeksem dla wybranego elementu, który ma fokus.

+0

Dzięki, zastanawiam się, dlaczego nie pojawia się w autouzupełnianiu kodu, kiedy go piszę ... – Moussamoa

+1

Nie ma za co. Pojawia się przynajmniej w autouzupełnianiu w XE7. –

+1

Powinno pojawić się w autouzupełnianiu kodu po prostu dobrze. Robi to w każdej wersji Delphi, którą znam i zacząłem z powrotem w Delphi 6. Jedynym powodem, dla którego to nie mogło działać, jest trafienie błędu, który był obecny w niektórych wersjach Delphi, w których kodowanie nie działało poprawnie na naprawdę dużym projekty lub jeśli masz jakiś błąd składniowy w kodzie gdzieś powyżej aktualnej pozycji kodu, ponieważ może to uniemożliwić wgląd w kod w prawidłowe skanowanie całej jednostki. – SilverWarior

2

Zastosowanie Index własnością Selected pozycji

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

W ten sposób wewnętrznie zaimplementowano getter właściwości 'TListView.ItemIndex'. –

Powiązane problemy