sexta-feira, 2 de abril de 2010

Dicas Delphi - Mudando a cor de fundo de linhas diferentes de texto em um Listbox

Salve, salve

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.

// Deixe seu comentátio ok.

Take care

Nenhum comentário: