Array
(
)

CheckListBox somente leitura

Raserafim
   - 22 jan 2006

preciso usar um CheckListBox, mas preciso que ele fique como somente leitura, ou seja, as caixas de verificação não podem ser marcadas nem desmarcadas.
não quero utilizar a propriedade enabled pois fica esmaecida.


Edilcimar
   - 22 jan 2006

no onenter do checkbox faça

If checkbox1.checked then
Marcado := True
Else
Marcado := False;

e no onexit faça
If Marcado := True then
CheckBox1.Ckecked := True
Else
CkeckBox1.Ckecked := False;


Aasn
   - 22 jan 2006

Olá raserafim,

A melhor maneira de fazer isso é através de um ´Abort´ no evento OnMouseDown do CheckListBox.

[]´s
AASN


Edilcimar
   - 22 jan 2006

e se em vez do mouse a pessoa estiver usando o teclado (espaço) para marcar ou desmarcar o checkbox?


Aasn
   - 22 jan 2006

Ops... esqueci do teclado!

#Código

procedure TForm1.CheckListBox1KeyPress(Sender: TObject; var Key: Char);
begin
case key of
#13 : Abort;
32 : Abort;
end;
end;


Valeu Edilcimar!

[]´s
AASN


Raserafim
   - 22 jan 2006

resolvido.
fiz o seguinte pessoal:
no evento OnClickCheck, que é disparado tanto para o teclado como para o mouse, coloquei o seguinte código:
#Código


ChckLstBxPermissoes.Checked[ChckLstBxPermissoes.ItemIndex] := not ChckLstBxPermissoes.Checked[ChckLstBxPermissoes.ItemIndex];



Aasn
   - 22 jan 2006

Olá raserafim,

o que pode ser inconveniente neste método usado por vc é o ´piscado´ que ele gera ao clicar/teclar, algo que não acontece na sugestão que postei. Contudo, ´VOCÊ DECIDE´.

[]´s
AASN