Dicas - Zebrando um ListBox

Mudando a cor de fundo de linhas diferentes de texto em um Listbox.

Mudando a cor de fundo de linhas diferentes de texto em um Listbox

 

Crie uma nova aplicação, insira um Listbox e altere a propriedade Style para lbOwnerDrawFixed, depois clique na propriedade Items (...) e digite alguns valores em linhas diferentes. Copie o código abaixo no evento OnDrawItem do Listbox.

 

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;

Rect: TRect; State: TOwnerDrawState);

var

  myColor: TColor;

  myBrush: TBrush;

begin

  myBrush := TBrush.Create;

  with (Control as TListBox).Canvas do

  begin

if not Odd(Index) then

myColor := clSilver

else

myColor := clWhite;

myBrush.Style := bsSolid;

myBrush.Color := myColor;

Windows.FillRect(handle, Rect, myBrush.Handle);

Brush.Style := bsClear;

TextOut(Rect.Left, Rect.Top,(Control as TListBox).Items[Index]);

MyBrush.Free;

  end;

end;

 

Não se esqueça de incluir valores no Listbox para que possa ser visto o efeito das cores. Execute a aplicação e veja a o funcionamento.

 

por Erick Rhamnusia

uploader@clubedelphi.net

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados