unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, EasyListview, ImgList, StdCtrls, ExtCtrls, MPCommonObjects; type TForm1 = class(TForm) EasyListview1: TEasyListview; ImageList1: TImageList; Panel1: TPanel; CheckBoxFullWidth: TCheckBox; procedure FormShow(Sender: TObject); procedure CheckBoxFullWidthClick(Sender: TObject); procedure EasyListview1ItemCustomView(Sender: TCustomEasyListview; Item: TEasyItem; ViewStyle: TEasyListStyle; var View: TEasyViewItemClass); private { Private declarations } public { Public declarations } end; TCustomViewReportItem = class(TEasyViewReportItem) public procedure PaintBefore(Item: TEasyItem; Column: TEasyColumn; const Caption: WideString; ACanvas: TCanvas; RectArray: TEasyRectArrayObject; var Handled: Boolean); override; end; var Form1: TForm1; implementation {$R *.dfm} { TCustomViewReportItem } procedure TCustomViewReportItem.PaintBefore(Item: TEasyItem; Column: TEasyColumn; const Caption: WideString; ACanvas: TCanvas; RectArray: TEasyRectArrayObject; var Handled: Boolean); var R: TRect; begin inherited PaintBefore(Item, Column, Caption, ACanvas, RectArray, Handled); if Item.Index mod 2 = 0 then begin ACanvas.Brush.Color := clMoneyGreen; if Form1.CheckBoxFullWidth.Checked then begin R := TEasyListview(Item.OwnerListview).Scrollbars.MapViewRectToWindowRect(RectArray.BoundsRect); R.Right := Form1.ClientWidth; R := TEasyListview(Item.OwnerListview).Scrollbars.MapWindowRectToViewRect(R); ACanvas.FillRect(R); end else ACanvas.FillRect(RectArray.BoundsRect) end end; procedure TForm1.FormShow(Sender: TObject); var i: Integer; Item: TEasyItem; begin for i := 0 to 999 do begin ITem := EasyListview1.Items.Add; Item.Caption := 'Item: ' + IntToStr(i); Item.Captions[1] := 'Column 2'; Item.ImageIndex := Item.Index mod ImageList1.Count; end; end; procedure TForm1.CheckBoxFullWidthClick(Sender: TObject); begin EasyListview1.Invalidate end; procedure TForm1.EasyListview1ItemCustomView(Sender: TCustomEasyListview; Item: TEasyItem; ViewStyle: TEasyListStyle; var View: TEasyViewItemClass); begin if ViewStyle = elsReport then View := TCustomViewReportItem end; end.