Zanim przejdziemy do przykładowych kodów, musisz wiedzieć jedno, w ListView można zaznaczać tylko całe wiersze, czyli nie możesz sobie zaznaczyć wybranej "komórki" w dowolnym wierszu, tak jak ma to miejsce w StringGrid, można jednak zaznaczając wiersz wybrać, czy chcemy pobrać wartość pierwszej kolumny (głównej - Caption), czy dalszych kolumn (SubItem), ma to jednak tą wadę, że nie można sobie wybrać kursorem myszki z której kolumny zaznaczonego wiersza chcemy pobrać wartość, ale można wybrać tą wartość za pomocą kodu, tylko że trzeba określić wewnątrz kodu z której kolumny pobieramy.
Przejrzałem wszystkie dostępne funkcje, włącznie z tymi, które pobierają pozycje wskaźnika myszy i niestety zwracają one tylko pozycję wskazanego wiersza, żadna nie jest w stanie podać pozycji SubItem.
Zakładam, ze wiesz jak pobrać wartość Caption (pierwszej kolumny) lub wartości SubItem określone poprzez kod, ale dla przypomnienia.
W zdarzeniu OnSelectItem dla ListView (najlepsze rozwiÄ…zanie):
- Kod: Zaznacz cały
//---------------------------------------------------------------------------
void __fastcall TForm1::ListView1SelectItem(TObject *Sender, TListItem *Item,
bool Selected)
{
Edit1->Text = Item->Caption; // pierwsze kolumna
Edit2->Text = Item->SubItems->Strings[0]; // druga kolumna
Edit3->Text = Item->SubItems->Strings[1]; // trzecia kolumna
}
//---------------------------------------------------------------------------
W zdarzeniu OnMouseUp dla ListView:
- Kod: Zaznacz cały
//---------------------------------------------------------------------------
void __fastcall TForm1::ListView1MouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if(ListView1->ItemIndex >= 0)
{
Edit1->Text = ListView1->Selected->Caption; // pierwsze kolumna
Edit2->Text = ListView1->Selected->SubItems->Strings[0]; // druga kolumna
Edit3->Text = ListView1->Selected->SubItems->Strings[1]; // trzecia kolumna
}
}
//---------------------------------------------------------------------------
Nie znalazłem sposoby na pobranie wartości SubItem wskazywanej przez kursor i sam byłbym czymś takim zainteresowany.