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:

chk


     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:

chk

 
     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:

chk 


 

     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:

procedure TFrmCheckListBox.BtnTeste(Sender: TObject);
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