Hola que tal!!!!
Aqui dando lata y esperando que mi amigo croketingdahouse no este molesto conmigo y si sabe pueda ayudarme un poquito o algun otro colega....
Estoy haciendo mi sistema aquel que les comenté estaba haciendo llego el momento de hacer las restricciones de usuario! Hasta el momento venia haciendo todo con potencias de base dos (BINARIOS) realizo mi arbol de opciones del sistema (treeview con checks) y el usuario clickeando dice acorde al perfil y al usuario a donde tendra acceso o no en nuestra aplicacion (El nodo que selecciona en la propiedad TAG tiene la potencia 2 que le corresponde segun sea el caso) y al final guarda el valor de potencia 2 que selecciono y esos son sus privilegios.
Todo funcionaba de maravilla en proyectos pasados pero en este "tengo 77 Accesos que debo restringir" y SOPAS se me truena realizo una validacion de este tipo:
Nodo.Checked = ((Privilegio AND CDbl(Nodo.Tag)) = CDbl(Nodo.Tag) * -1
con esa instruccion reviso que los privilegios del usuario contengan la seccion X (recordemos que todo son binarios) por ello realizo un AND que debe devolver True or False dependiendo si se encuentra la opcion o no....
El punto que al llegar a la potencia numero 2^62 y validarla con un AND algo parecido a:
Privilegio = 0 (o cualquier numero mayor)
Nodo.Tag = 2^62(o cualquier numero mayor a 62)
Privilegio AND Nodo.Tag
me marca el error: LA OPERACION ARITMETICA HA PROVOCADO UN DESBORDAMIENTO
ahora cabe decir que Privilegio es un DOUBLE y Nodo.Tag pues la potencia dos queda como double pero lo que se truena ES EL AND si yo tomo los valores por separado los puedo manipular hasta la potencia 2^76 pero cuando hago mi AND se truena y no puedo hacer nada... Sugerencia de que puede pasar? que sucede?? como solucionar el problema??? Ojala alguien pueda asesorarme y/o hecharme una manita saludos cordiales.
PD: Propuestas bien recibidas