vložil Radek Červinka
17. ledna 2013 22:33
S překvapením pozoruji jak je přehlížena komponenta TListView. Přijde mi, že v některých případech by někomu usnadnila práci.
Pro mne je nejužitečnější samozřejmě mód Report, a to jak v módu groupování (viz. první obrázek) nebo častěji v klasickém módu jako na následujícím obrázku (všimněte si pěkného vykreslení výběru).
V módu report se dá zobrazovat několik sloupců podobně jako v gridu, přičemž mřížka se dá vypnout. Tento mód se dá bez problému použít pro zobrazení menšího množství dat. Pro zobrazení v tomto módu je nutno nastavit mód na vsReport, dále je nutno definovat sloupce Columns a nechat je zobrazit (ShowColumnHeader).
Grupovací mód se zapne přes volbu GroupView a definicí Groups a pak se dá každá položka zařadit do nějaké skupiny, přičemž zobrazení pro každou skupinu je konfigurovatelné - viz obrázek.
Práce s ListView je hezky objektově zapouzdřena, např. přidávání
procedure TForm5.btn1Click(Sender: TObject);
var
li: TListItem;
begin
li := listview2.Items.Add;
li.Caption := 'První sloupec';
li.SubItems.Add('Další sloupec');
li.SubItems.AddObject('Sloupec 3', nil ); // případná reference na jiný objekt
// případné nastavení ikon
li.ImageIndex := 1;
li.SubItemImages[0] := 1;
li.SubItemImages[1] := 2;
ShowMessage(li.SubItems[1]); // zobrazí Sloupec 3
end;
Samozřejmě můžeme vzhled změnit díky stylům, např. na něco takového:
Co se bude stylovat lze nastavit
např. s výsledkem
Nakonec ještě připomenu, že existuje možnost i virtuálního módu této komponenty pro zobrazení tuny dat, ale v tom případě bych šel do Virtual TreeView, který má neskonale větší možnosti a proto se tím zabývat nebudu. A nakonec lze použít i OwnerDraw vykreslování, ale v tomto případě platí to samé jako v prvním případě.