Strona 1 z 1

Komponenent typu TListView z TCheckBox'ami

Nowy postNapisane: sobota, 26 lipca 2008, 12:54
przez Darek_C++
W nowym posicie zapytam: czy istnieje sposób aby do kolumny komponentu TListView dodać TCheckBox'y?

Potrzebował bym komponent w stylu TheckListBox1, ale z wieloma kolumnami tak jak TListView.

Lub czy znacie sposób na programowa utworzenie takiego komponentu, bo widziałem, że takie są w programach :)

Re: Komponenent typu TListView z TCheckBox'ami

Nowy postNapisane: sobota, 26 lipca 2008, 13:04
przez Cyfrowy Baron
Można tam wstawić CheckBox, ale trzeba przestawić ListView w tryb OwnerDraw (właściwość OwnerDraw = true), niestety w tym trybie wyświetlana jest tylko zawartość pierwszej kolumny, SubItems nie są obsługiwane, gdyż ten tryb nie obsługuje vsRaport (właściwośc ViewStyle). Rozwiązaniem może być użycie zdarzeń OnAdvancedCustromDraw i OnAdvancedCustomDrawItem, (OwnerDraw może równać się false), tylko nie wiem czy ListView w BCB w wersji 6 obsługuje takie zdarzenia.
Tak czy inaczej to wymaga przeprowadzenia testów. Dziś już nic w tej sprawie chyba nie zrobię...

Re: Komponenent typu TListView z TCheckBox'ami

Nowy postNapisane: sobota, 26 lipca 2008, 13:16
przez Darek_C++
Z tym nie ma pośpiechu, ale też był bym niezmiernie wdzięczny za pomoc w tej kwestii. Albo sposobie na programowe stworzenie takiego komponentu.

Re: Komponenent typu TListView z TCheckBox'ami

Nowy postNapisane: niedziela, 27 lipca 2008, 11:32
przez Darek_C++
Okazało się to prostsze niż by się wydawało :) Wystarczy ustawić właściwość
Kod: Zaznacz cały
ListView1->Checkboxes = true;

i w pierwszej kolumnie mamy checkboxy o co mi właśnie chodziło....

Pozdrawiam ALL

Re: Komponenent typu TListView z TCheckBox'ami

Nowy postNapisane: niedziela, 27 lipca 2008, 12:29
przez Cyfrowy Baron
Rzeczywiście... :roll: :shock: :?
Nigdy nie zwróciłem na to uwagi.

Re: Komponenent typu TListView z TCheckBox'ami

Nowy postNapisane: niedziela, 27 lipca 2008, 13:20
przez Darek_C++
Ja kiedyś prawie cały dzień szukałem bezskutecznie na to sposobu, a to okazało się tak proste ;)