odwolania do listView

dział ogólny

odwolania do listView

Nowy postprzez banita » poniedziaÅ‚ek, 27 października 2008, 21:58

wyciagam dane z bazy mysql i wrzucam je do ListView usatwionego na vsReport, z gridem itd...
mam takie pytanie: w jaki sposob dostac sie do pojedynczych komurek? tzn jak do nich zapisac to wiem ale np puzniej zaznaczam jakis wierdz i jak odczytac dane z poszcegulnych komurek tego wiersza i np je edytowac?

ListView1->ItemIndex zwraca mi index aktualnie zaznaczonego wiersza ale nie wiem jak podzielic ten wiersz na poszczegulne komurki i z nich czytac?

chwilowo nie aktualne, zapomnialem zerknac do serwisu:) ale moze jescze tu napisze z innym zapytaniem ktorego tam nie znajde
Avatar użytkownika
banita
Kreacjusz
Kreacjusz
 
Posty: 283
Dołączył(a): poniedziałek, 28 lipca 2008, 20:07
PodziÄ™kowaÅ‚ : 1
OtrzymaÅ‚ podziÄ™kowaÅ„: 18
System operacyjny: Windows 7 Professional
Kompilator: C++Builder 2010 Update 5,
Delphi 2010 Update 5,
NetBeans 6.9(MinGw + Qt),
Visual Studio 2008 + Qt
Gadu Gadu: 0
    NieznanyNieznana

Re: odwolania do listView

Nowy postprzez Cyfrowy Baron » wtorek, 28 października 2008, 11:32

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.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: odwolania do listView

Nowy postprzez banita » wtorek, 28 października 2008, 16:49

tak, wszystko co napisales wyczytalem w twoim serwisie:)

w moim przypadku w ListView jest wstawiony checkbox, a opcja zaznaczania wierszy jest w ogole wylaczona. zaznaczam konkretne checkboxy, dla tych ktore sa zaznaczone wyciagam dane i edytuje co trzeba. wada jest to ze przy zaznaczeniu np tylko ostatniego checkboxa to na darmo musze przeleciec po calosci aby dosc do tego ostatniego ale rekordow nie bedzie zbyt duzo wiec nie powinno byc z tym problemu.
Avatar użytkownika
banita
Kreacjusz
Kreacjusz
 
Posty: 283
Dołączył(a): poniedziałek, 28 lipca 2008, 20:07
PodziÄ™kowaÅ‚ : 1
OtrzymaÅ‚ podziÄ™kowaÅ„: 18
System operacyjny: Windows 7 Professional
Kompilator: C++Builder 2010 Update 5,
Delphi 2010 Update 5,
NetBeans 6.9(MinGw + Qt),
Visual Studio 2008 + Qt
Gadu Gadu: 0
    NieznanyNieznana


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przeglÄ…da forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 4 gości