Array
(
)

1 Listbox com linhas de cores diferente..

Rcasistemas
|
MVP
    09 fev 2006

Bom dia a todos...

Gostaria de escrever em um listbox varias linhas, sendo q cada linha com a cor da fonte diferente:

Exemplo:

Citação:

11111111111111
33333333333333
22222222222222
11111111111111
33333333333333
55555555555555
44444444444444


Tentei assim mas naum deu certo
#Código


procedure TForm1.BitBtn1Click(Sender: TObject);
var
i : Byte;
begin
ListBox1.Items.Add(´1111111111111´);
ListBox1.Items.Add(´3333333333333´);
ListBox1.Items.Add(´2222222222222´);
ListBox1.Items.Add(´1111111111111´);
ListBox1.Items.Add(´3333333333333´);
ListBox1.Items.Add(´5555555555555´);
ListBox1.Items.Add(´4444444444444´);

with ListBox1 do
begin
for i := 0 to ListBox1.Count -1 do
begin
if Pos(´1´,ListBox1.Items[ i]) > 0 then
Canvas.Font.Color := clRed
else if Pos(´2´,ListBox1.Items[ i ]) > 0 then
Canvas.Font.Color := clBlack
else if Pos(´3´,ListBox1.Items[ i ]) > 0 then
Canvas.Font.Color := clYellow
else if Pos(´4´,ListBox1.Items[ i ]) > 0 then
Canvas.Font.Color := clGreen
else if Pos(´5´,ListBox1.Items[ i ]) > 0 then
Canvas.Font.Color := clblue;
Canvas.TextOut(ListBox1.ItemRect(i).Left,ListBox1.ItemRect(i).Top,ListBox1.Items[ i ]);
end;
end;

end;


alguem pode me dar uma soluçao

desde jah sou muito grato.

Abraços


Edilcimar
   - 09 fev 2006

no listbox creio que não dá, só dá se for um richedit, dbgrid


Rcasistemas
|
MVP
    09 fev 2006

Karo edilcimar... tenho certeza q isto eh possivel, eu tinha um codigo fonte com o tal codigo, soh q perdi no meio de minhas formatacaos...

Lembro q era usado realmente em um ListBox nativo do delphi....

Caso alguem saiba como fazer, agradeço muito se puder compartilhar tal codigo.

Abraços


Rcasistemas
|
MVP
    09 fev 2006

Ae.. um amigo me deu a dica...


Citação:

Primeiro altere propriedade Style do ListBox para lbOwnerDrawFixed , depois no evento OnDrawItem do ListBox coloque o seguinte código:
#Código


with TListBox(Control).Canvas do
begin
FillRect(Rect);
if(Index mod 2 = 0)then
Font.Color := clBlue
else
Font.Color := clRed;
TextOut(Rect.Left,Rect.Top,TListBox(Control).Items[Index]);
end;



Abraços