Incluir Icone em ( Memo ou ListBox )

Delphi

16/07/2003

Bom queria saber se tem como colocar, icones em Memo ou ListBox, Estou desenvolvendo um sistema de chat e presciso desta utilidade, Obrigado !!!!!!!!!!!


Walter Faria

Walter Faria

Curtidas 0

Respostas

Cebikyn

Cebikyn

16/07/2003

Coloque no evento OnDrawItem do ListBox:

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
  Bitmap: Tbitmap;
  Rect2: TRect;
begin
  Bitmap := TBitmap.Create;
  ListBox1.Canvas.Brush.Color := clWhite;
  ListBox1.Canvas.FillRect(Rect);
  // Aqui você pode escolher o icone:
  Bitmap.LoadFromFile(´C:\Seu arquivo.bmp´);
  Rect2.Left := Rect.Left;
  Rect2.Top := Rect.Top;
  Rect2.Left:= Rect.Left+Bitmap.Width;
  Rect2.Bottom:= Rect.Top+Bitmap.Height;
  ListBox1.Canvas.CopyRect(Bitmap.Canvas.ClipRect, Bitmap.Canvas, Rect2);
  ListBox1.Canvas.TextOut(Rect2.Right, Rect.Top, ListBox1.Items[Index]);
  Bitmap.Free;
end;


Para escolher o incone, você pode usar algo como
case Index of
  0: Bitmap.LoadFromFile(´C:\Seu arquivo.bmp´);
  1: Bitmap.LoadFromFile(´C:\Outro arquivo.bmp´);
end;

ou então
if ListBox1.Items[Index] = ´string´ 
then
  Bitmap.LoadFromFile(´C:\Seu arquivo.bmp´)
else
  Bitmap.LoadFromFile(´C:\Outro arquivo.bmp´);


Mas antes mude a propriedade [i:7e57e728a5]Style[/i:7e57e728a5] do ListBox para [i:7e57e728a5]lbOwnerDrawFixed[/i:7e57e728a5]


GOSTEI 0
POSTAR