CheckListBox com Itens Coloridos.
04/12/2003
0
valeu
Adriano Santos
Posts
05/12/2003
Thiago Vidal
no evento OnDrawItem:
procedure TForm1.CheckListBox1DrawItem(Control: TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
with (Control as TCheckListBox) do begin
if Checked[Index] then
Canvas.Font.Color := clRed
else begin
if Selected[Index] then
Canvas.Font.Color := clWhite
else
Canvas.Font.Color := clBlack;
end;
Canvas.FillRect(Rect);
Canvas.TextOut(Rect.Left, Rect.Top, (Control as TCheckListBox).Items[Index]);
end;
end;
Voce vai reparar que ao selecionar outro item ele mantera a cor branca do item antigo e portanto o tornara invisível, para evitar isso, chame o método CheckListBox1.Invalidate nos eventos OnClick e OnKeyDown
05/12/2003
Adriano Santos
valeu
29/01/2007
Dpinho
como fazer ??
01/02/2007
Adriano Santos
Cara, to no Linux agora e fora do Delphi. Vou tentar de dar um help aqui sem testar de fato. Se nao funcionar vc me chama.
Basta dar uma alteradinha de nada no evento.
procedure TForm1.CheckListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); begin with (Control as TCheckListBox) do begin //aqui testa se está checado e muda pra vermelho, se nao para black if Checked[Index] then Canvas.Font.Color := clRed else Canvas.Font.Color := clBlack; //aqui testa se está selecionado e muda pra branco, se nao para black if Selected[Index] then Canvas.Font.Color := clWhite else Canvas.Font.Color := clBlack; Canvas.FillRect(Rect); Canvas.TextOut(Rect.Left, Rect.Top, (Control as TCheckListBox).Items[Index]); end; end;
Clique aqui para fazer login e interagir na Comunidade :)