SPECIAL OFFER        Order and save right now!
20% off with the 729824315 dicscount code for Ultimate Pack and any another product for Delphi from Greatis Programming!

⤷ Set background image in ListBox

You should use onDrawItem event of ListBox component, if you want to create ListBox with some background picture.
Pay attention to the IntersectRect function.

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var
  ImageRect1, NewRect, ImageRect2, ResRect: TRect;
begin
  ImageRect1 := Classes.Rect(
    0,
    0,
    Image1.Picture.Bitmap.Width,
    Image1.Picture.Bitmap.Height);

  ImageRect2 := ImageRect1;
  IntersectRect(ResRect, ImageRect2, Rect);

  NewRect.Left:=ImageRect1.Left;
  NewRect.Top:=ImageRect1.Top+ResRect.Top-ImageRect2.Top;
  NewRect.Right:=ImageRect1.Right;
  NewRect.Bottom:=ImageRect1.Bottom+
                    ResRect.Bottom-
                    ImageRect2.Bottom;

  ListBox1.Canvas.CopyRect(
    ResRect,
    Image1.Picture.Bitmap.Canvas,
    NewRect);

  ListBox1.Canvas.Brush.Style:=bsClear;
  ListBox1.Canvas.TextOut(
    Rect.Left+2,
    Rect.Top,
    ExtractFileName(ListBox1.Items[Index]));
More for developers
Databases for Amazon Associates
Amazon Categories
Amazon Nodes