Fórum Não consigo fazer (Desafio) #367676

14/01/2009

0

[b:60adc8791d]Estou até com vergonha de postar isso.. mas preciso terminar logo!!

Na minha tela eu tenho varios CheckBox
cada um com um número em hexadecial

[ ] 00000001
[ ] 00000002
[ ] 00000004
[ ] 00000008
[ ] 00000010
[ ] 00000020
[ ] 00000040
[ ] 00000080
[ ] 00000100
[ ] 00000200
[ ] 00000400
[ ] 00000800
[ ] 00001000
[ ] 00004000
[ ] 00008000
[ ] 00010000
[ ] 00020000
[ ] 00040000
[ ] 00080000
[ ] 00200000
[ ] 00400000
[ ] 00800000
[ ] 01000000
[ ] 02000000
[ ] FFFFFFFF

Eu preciso fazer teste de combinação de todas para poder marca-los
Exemplo:
Em um edit eu tenho o número: A
Para fazer o número A eu teria que somar os números 8 e 2
Ou seja eu teria que marcar os CheckBox dos números 8 e 2
Tem como eu fazer um código para verificar todas as combinações sem ter q faze-las uma por uma??

Em outras palavras: Eu preciso marcar os CheckBox equivalentes a cada número digitado em um Edit em tempo de execução!
Desde já agradeço a ajuda..
Grande abraçoO[/b:60adc8791d]


Mortify

Mortify

Responder

Posts

16/01/2009

Woinch

Você já tentou trabalhar com números decimais (que fica muito mais fácil) e apenas mostrar a combinação em hexadecimal?
Talvez você possa fazer uma rotina para que retorne primeiro num array os valores (em decimal) que você precisa marcar. Depois basta fazer uma rotina para percorrer todos os componentes da tela do tipo TCheckBox e marcá-los se o valor estiver no array. Sugiro utilizar a propriedade Tag dos Checkboxes para guardar o valor correspondente ao mesmo em decimal.


Responder

Gostei + 0

18/01/2009

Mortify

[b:960cfc87e6]mesmo usando em decimal eu n consegui criar um código pra pode marcar todos os checkbox =[

Alguem me ajuda
PleaseE[/b:960cfc87e6]


Responder

Gostei + 0

18/01/2009

Fórum Vini

Os valores dos checkboxes são sempre esses (potências de 2)?
Se for, é só decompor o número em binário... cada checkbox é um dígito


Responder

Gostei + 0

19/01/2009

Rodc

Você precisar testar os bits do valor e marcar os checkbox correspondentes a cada bit. Por exemplo: A em binário é 1010. Como binário se lê da direita para esquerda, você precisa marcar o segundo e o quarto checkbox, que é o 2 e o 8, respectivamente.
Agora, para fazer a validação de um bit em Delphi eu não tenho certeza de como é. Em C++ é assim:
CheckBox1->Checked = (Valor & 0x01) != 0;
CheckBox2->Checked = (Valor & 0x02) != 0;
CheckBox3->Checked = (Valor & 0x04) != 0;
CheckBox4->Checked = (Valor & 0x08) != 0;
CheckBox5->Checked = (Valor & 0x10) != 0;
CheckBox6->Checked = (Valor & 0x20) != 0;
CheckBox7->Checked = (Valor & 0x40) != 0;
CheckBox8->Checked = (Valor & 0x80) != 0;

Em Delphi acho que é assim:
CheckBox1.Checked := (Valor and 0x01) != 0;


Responder

Gostei + 0

23/01/2009

Mortify

[b:486da6346c]Valeu a todos q vieram aki me da essa força
.Vini. tu é um gênio muleke
eu devia ter pensado nisso antes
Resolveu meu problema
Abraço para todos[/b:486da6346c]


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar