Карта сайтаСсылкиКонтакты

Отобразить изображения и имена файлов в ListBox

PDF Печать
Статьи

Для того, чтобы отобразить изображения перед именами файлов в ListBox, запишите следующий код в обработчик события DrawItem компонента TListBox.


procedure TForm1.ListBox1DrawItem(control: TWinControl; 
        index: integer;
        rect: trect; state: DrawState);
var
  bitmap : TBitmap;
  offset : integer;
  bmprect: TRect;
begin
  with (Control as TListBox).Canvas do
  begin
    FillRect(rect);
    bitmap := TBitmap.Create;
    bitmap.LoadFromFile(ListBox1.Items[Index]); 
    offset := 0;
    if bitmap <> nil then
	begin
      bmprect := Bounds(rect.left + 2, rect.top + 2, 
        (rect.bottom - rect.top - 2) * 2, rect.bottom - rect.top - 2); 
      { StretchDraw(bmprect, bitmap); 
       Можно просто нарисовать, но лучше сначала убрать фон }
      BrushCopy(bmprect, bitmap, Bounds(
          0, 0, bitmap.width, bitmap.height),
      bitmap.Canvas.Pixels[0, bitmap.height - 1]); 
      offset := (rect.bottom - rect.top + 1) * 2; 
    end;
    TextOut(rect.left + offset, rect.top, ListBox1.Items[index]);
    bitmap.Free;
  end;
end;

 

Добавить комментарий


Защитный код
Обновить