CheckListBox somente leitura

22/01/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.


Raserafim

Respostas

22/01/2006

Edilcimar

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;


Responder Citar

22/01/2006

Aasn

Olá raserafim,

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

[]´s
AASN


Responder Citar

22/01/2006

Edilcimar

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


Responder Citar

22/01/2006

Aasn

Ops... esqueci do teclado!

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


Valeu Edilcimar!

[]´s
AASN


Responder Citar

22/01/2006

Raserafim

resolvido.
fiz o seguinte pessoal:
no evento OnClickCheck, que é disparado tanto para o teclado como para o mouse, coloquei o seguinte código:
  ChckLstBxPermissoes.Checked[ChckLstBxPermissoes.ItemIndex&93; := not ChckLstBxPermissoes.Checked&91;ChckLstBxPermissoes.ItemIndex&93;;



Responder Citar

22/01/2006

Aasn

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


Responder Citar