23rd
Июл

Как сделать Фоновое изображение в ListView?

Posted by Chas under Пост-обзор

Stilet:

Могу предложить такое:

unit Unit1;

interface

uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, Grids, StdCtrls, ComCtrls;

type
   TForm1 = class(TForm)
     ListView1: TListView;
     procedure FormCreate(Sender: TObject);
     procedure FormClose(Sender: TObject; var Action: TCloseAction);
     procedure ListView1CustomDrawItem(Sender: TCustomListView;
       Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
   private
     { Private declarations }
   public
     { Public declarations }
   end;

var b:TBitmap;
   Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var e,i:integer;
begin
   b:=TBitmap.Create;
   b.LoadFromFile(’D:\stasya_ru_2_big.bmp’);
   for i:=1 to 100 do begin
     with ListView1.Items.Add do begin
       Caption:=TimeToStr(now);
       for e:=1 to 100 do SubItems.Add(TimeToStr(now));
     end;
   end;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   b:=nil;
end;

procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
   Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
const c=3;
var ARect:TRect;
begin
   DefaultDraw:=false;
   ARect:=Item.DisplayRect(drBounds);
   BitBlt(Sender.Canvas.Handle,ARect.Left+c,ARect.Top+c,ARect.Right-ARect.Left-c,
   ARect.Bottom-ARect.Top-c,b.Canvas.Handle,ARect.Left,ARect.Top,SRCCOPY);
end;

end.

Тема на форуме

Похожие статьи