Pessoal, tô com problemas com o CheckListBox e não encontro solução na 
internet, é uma questão de lógica de programação, mas não encontro a solução.

Preciso fazer com que o CheckListBox funcione da seguinte forma:

- Quando o usuário clicar em um dos itens, se este item estiver com a 
propriedade State = cbGrayed, assuma cbUnchecked;

- Quando o usuário clicar em um dos itens, se este item estiver com a 
propriedade State = cbUnchecked, assuma cbGrayed (se ele estava cbGrayed), 
senão passe para a propriedade cbChecked;

O caso é o seguinte:

No OnShow do form eu vou verificar o Registry, se encontrar alguns valores eu 
marco o item encontrado como cbGrayed, senão deixo como cbUnchecked.

O usuário seleciona o que deseja configurar, mas somente os que não estiverem 
já configurado no registry, ou seja, ele pode querer remover o item que esteja 
cbGrayed, basta dar um clique no item cbGrayed para ficar cbUnChecked, se 
desejar marcar um que não esteja cbGrayed ele fique cbChecked.

Não sei se ficou claro.

cbGrayed = Já se encontra no Registry;
cbChecked = Ele quer colocar a configuração no Registry;
cbUnchecked = Ele quer remover a configuração do Registry;

Só que, se já está com cbGrayed ele pode apenas querer remover do Registry

Pensei em fazer dois CheckListBox, um mostrando os encontrados no Registry e 
outro o que ele deseja instalar (aí eu removo a propriedade AllowGrayed do 
ObjectInspector), mas se tiver uma maneira de deixar apenas um seria mais 
cômodo.

Grato pela ajuda.

Responder a