Olá galera, eaqui estou para mais uma Quick TIPS. Hoje iremos falar sobre um compoente muito interessante, porém pouco conhecido e utilizada pelos desenvolvedores. Este componente é o CheckListBox.
Imagine uma lista de CheckBox. Então isto é o que este componente é na verdade. Vamos criar um exemplo para ficar mais claro.
Abra o Delphi e após criar uma nova aplicação adicione no Form 6 Botões, e um CheckListBox. A imagem abaixo mostra uma sugestão de tela:
Feito isso vamos ao evento OnClicnk de cada um dos botões da parte inferior: Todos, Nenhum e Inverter, respectivamente. Adicione a cada um deles o codigo da imagem abaixo:

Agora vamos a programação dos botões da parte laterall: cbUnchecked, cbCheckede e bGrayed. O primeiro irá desmarcar o item 0, o segundo irá marcar o item 1, e o terceiro irá dar o efeito que foi desenvolvido pela Microsoft no Windows Vista, e aproveitado também no Windows 7, veja abaixo do código, como fica o exemplo:
Com isso temos uma recurso a mais para desfrutarmos deste componente. Onde poderia me servir este novo recurso desenvolvido pela Microsoft?
Resposta : Imagine que você tenha uma lista de arquivos a serem copiados, este por sua vez estão em um CheckListbox, daí conforme forem sendo copiados os arquivos selecionados, você irá alterando o State de cbChecked para cbGrayed, e assim teria um recurso visual indicando que aqueles arquivos em cbGrayed, foram copiados. Como fazer isso? Faríamos algo deste tipo:
Var I : Integer;
begin
for I := 0 to CheckListBox1.Count - 1 do
if CheckListBox1.State[i] = cbChecked then
CheckListBox1.State[i] := cbGrayed;
end;
Sendo assim, fico por aqui e está foi mais uma da seção Quick Tips. Aproveitando gostaria de agradecer ao meu amigo Rodrigo Carreiro, pela oportunidade de divulgar esta rápidas dicas.
Um abraço.
Att,
Wesley Yamazack