Fórum Não consigo fazer (Desafio) #367676
14/01/2009
0
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
Curtir tópico
+ 0Posts
16/01/2009
Woinch
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.
Gostei + 0
18/01/2009
Mortify
Alguem me ajuda
PleaseE[/b:960cfc87e6]
Gostei + 0
18/01/2009
Fórum Vini
Se for, é só decompor o número em binário... cada checkbox é um dígito
Gostei + 0
19/01/2009
Rodc
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;
Gostei + 0
23/01/2009
Mortify
.Vini. tu é um gênio muleke
eu devia ter pensado nisso antes
Resolveu meu problema
Abraço para todos[/b:486da6346c]
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)