Problemas com CheckListBox

Delphi

02/10/2007

Boa tarde pessoal!

Alguém sabe como mudar a cor da fonte dos itens de um CheckListBox ??

Agradeço a quem puder ajudar!


Vfmartins

Vfmartins

Curtidas 0

Respostas

Mayron Cachina

Mayron Cachina

02/10/2007

Existe uma forma simples de fazer este tipo de trabalho. Inclua alguns itens no seu CheckListBox, vá até a propriedade Style e altere para lbOwnerDrawVariable, agora vá até ao evento OnDrawItem e inclua o código abaixo:

 CheckListBox1.Canvas.FillRect(Rect);
if not (odFocused in State) then
begin
if CheckListBox1.Checked[index] then
begin
CheckListBox1.Canvas.Font.Color := clRed;
CheckListBox1.Canvas.Brush.Color := clWhite;
end
else
begin
CheckListBox1.Canvas.Font.Color :=
clBlack;
CheckListBox1.Canvas.Brush.Color :=
clWhite;
end;
end;
CheckListBox1.Canvas.TextOut(Rect.Left+2,Rect.
Top,CheckListBox1.Items.Strings[Index]);


acho que dai da pra vc ter uma idéia de mudar a cor da fonte...


GOSTEI 0
Vfmartins

Vfmartins

02/10/2007

Mayron Cachina, eu tentei da forma que vc explicou, mas deu o seguinte erro:

´No enough actual paramters´

e parou na linha:

´CheckListBox2.Canvas.FillRect(Rect);´

Vc sabe o que ha de errado? Ou alguém sabe?
Agradeço se puder me ajudar!!


GOSTEI 0
Mayron Cachina

Mayron Cachina

02/10/2007

eu tenho isso pronto lá em casa eu acho...
até de noite eu vou tentar postar aqui, blz!


GOSTEI 0
Mayron Cachina

Mayron Cachina

02/10/2007

olha.. aqui deu certo..
to mandando um exemplo feito no delphi 7...

http://www.4shared.com/file/25618271/54a83ad2/CheckListBox.html?dirPwdVerified=d964819f


GOSTEI 0
Vfmartins

Vfmartins

02/10/2007

cara, obrigado pela ajuda, mas ainda não consegui resolver meu problema..

no seu exemplo vc colocou as condições no ´CheckListBox1DrawItem´ e funcionou, mas eu preciso que seja colocado no ´onclick de um button´, aí não funciona...

o que eu faço????


GOSTEI 0
Paulo

Paulo

02/10/2007

No OnClick do botão, você chama o OnDraw do Checlist.


GOSTEI 0
Mayron Cachina

Mayron Cachina

02/10/2007

No OnClick do botão, você chama o OnDraw do Checlist.

não dá, ele n faz a opção...

rpz não sei n, viu...
apertando o botão eu n consegui fazer....


GOSTEI 0
Vfmartins

Vfmartins

02/10/2007

Que pena, é algo do tipo que eu preciso!!

Alguém sabe me dizer alguma maneira (não precisa ser exatamente mudar as cores dos itens), mas preciso encontrar uma forma de diferenciar um item do outro ao clicar em um botão.

Por favor, agradeço mto a quem puder me ajudar!!


GOSTEI 0
Mayron Cachina

Mayron Cachina

02/10/2007

vc terá que fazer algo nesse estilo.. sendo que terá que trartar esse if de uma forma diferente, pois vc terá que ver qual foi o index do check q vc ta apertando e se vc colocar isso ai no botão eu acho q n vai funcionar não...
mais já é meio caminho andado...
if CheckListBox1.Checked[index] then
begin
CheckListBox1.Canvas.Font.Color := clRed;
CheckListBox1.Canvas.Brush.Color := clWhite;
end
else
begin
CheckListBox1.Canvas.Font.Color :=
clBlack;
CheckListBox1.Canvas.Brush.Color :=
clWhite;
end; 



GOSTEI 0
Vfmartins

Vfmartins

02/10/2007

realmente pessoal, no button não funciona msm!!
bom, de qualquer forma agradeço por tentarem me ajudar!!


GOSTEI 0
POSTAR