|
|
|
|
|
Dicas
|
|
Visual Basic (Miscelâneas)
|
|
|
Título da Dica: Forma rápida de identificar um option button selecionado
|
|
|
|
Postada em 1/9/2003 por Ð@®l@n
Quando se utiliza options buttons em um form eles normalmente estão contidos em um control array. Existe uma formula simples que nos permite descobrir qual option button encontra-se marcado sem a necessidade de fazermos diversos IF's ou utilizar select case.
Veja :
intselected = optteste(0).Value * 0 - optteste(1).Value * 1 - optteste(2).Value * 2 - optteste(3).Value * 3 - optteste(4).Value * 4 - optteste(5).Value * 5
O valor true é visto pelo VB como -1, enquanto que false é visto como 0. Assim sendo, a multiplicação o value do option que está marcado pelo seu peso gera o valor do option marcado, só que negativo.
Todos os outros calculos vão gerar 0. Supondo que o option marcado não seja o primeiro então a conta final ficará algo como 0 - (-3) (exemplo). A subtração de um valor negativo inverte a operação (0+3) e obtem-se o valor do option selecionado.
Caso seja o 1o, a operação será 0-0, que irá gerar 0, o índice do 1o que encontra-se marcado.
Essa fórmula ainda pode ser simplificada, já que a 1a operação irá sempre gerar 0. Veja :
intselected = -optteste(1).Value * 1 - optteste(2).Value * 2 - optteste(3).Value * 3 - optteste(4).Value * 4 - optteste(5).Value * 5
O sinal (-) é mantido no inicio do calculo para garantir que o resultado seja invertido de sinal.
|
|
|
|
|