12 febrero 2007

Condicionado mis broncas

La vida está llena de decisiones que hacer. ¿La quiero o no la quiero? ¿Me debo casar o no? ¿Le digo que si o no? ¿Está más guapo que mi novio anterior? ¿Existe vida inteligente en Marte? Las decisiones de la vida son agobiantes y precisamente por eso las computadoras pueden tomar algunas decisiones por nosotros.

En Visual Basic hay dos maneras de decidir. Una usando el comando IF y otra con el SELECT CASE.

Hice un pequeño programa para demostrarlo. El programa completo con todo y ejecutable lo puedes bajar aquí. Se trata de un pequeño programa que muestra una ventana con dos cajas de texto para que el usuario escriba dos números. De lado derecho hay 4 botones (Command1 al Command4) para indicar la operación que quieres hacer con ellos. Abajo de las cajas de texto está una etiqueta (Label3) grandotote que al principio no tiene nada, pero que al apretar los botones de operaciones ponen en la etiqueta grandote el signo de la operación seleccionada. Abajo de eso está el botón Calcular (Command5) que hace la operación deseada (la que está en el Label3). Para terminar, está el botón Salir que finaliza la ejecución del programa. Esta es la pantalla principal:


La etiqueta de la operación no aparece hasta que presiono un botón de operación. Así se ve cuando ya escribí numeritos y le pido una suma.


Cuando le picas al botón Calcular, aparece un MessageBox con el resultado. Se lo pueden imaginar, pero 'nomás por andar de farol, les pongo la imagen aquí:



No es un programa que haga mucho, sin embargo, ejemplifica el uso del SELECT CASE y el IF. Ahora veamos como funciona.

Esta es la pantalla principal en la vista diseño:


Algunos detallitos, pura cultura general y nada que ver con el IF o SELECT CASE. El Label3 es el área que no tiene puntitos abajo de las cajas de texto. Le cambié la propiedad Font para que fuera más grande y en negritas. También le cambié la propiedad Forecolor para que fuera rojo. Para que los botones Calcular y Salir (Command5 y Command6) tuvieran imágenes, alteré la propiedad Picture, que te permite elegir una imágen (yo usé uno en formato .ICO, formato de los íconos de Windows) y hay que cambiar la propiedad Style a la opción Graphical.

Ahora toca la programación de los controles. Lo más fácil es lo que hacen los botones de suma, resta, multiplicación y división (Command1, Command2, Command3 y Command4 respectivamente). Lo único que hacen es ponerle un valor a la propiedad Caption del Label3. Como esta propiedad es la "defáult" de un label, omití escribirlo (si, soy flojo y que, jeje). Solo voy a poner el código del Command1 por simple simplificación simple:


El Command6 (el botón Salir) no tiene chiste, así que ni lo escribo ni lo explico. Solo tiene la función End para finalizar la ejecución del programa.

La función que hace toda la talacha es el Command5. Este es el código. Abajo lo explico.


Como puedes observar, comienzo declarando las variables que voy a usar. En x y y voy a almacenar los números que escriban en las cajas de texto (recuerden que hay que convertir la cadena que están en Text1 y Text2 en números para poder hacer operaciones con ellas) y en z voy a almacenar el resultado de la operación. SePudo solo me va a decir si se pudo realizar la operación o no y Resultado es una cadena donde voy a poner el resultado, formateado como numerito para que se vea chuvidubis.

Inicializo a SePudo en False porque soy negativo, no te creas, es porque si fallan las verificaciones, ya sé que no se pudo (me evito escribirlo en todos los casos del IF). Creo que va a quedar más claro ahorita que llegue a las verificaciones.

Reviso que haya algo escrito en Text1. Si no tiene nada escrito (o sea que Text1=""), despliego un mensaje de error y pongo el cursor (la rayita vertical parpadeante) en Text1. Si tiene algo, hago la misma verificación hago con Text2. Después de verificar que hayan numeritos en las cajas de texto, reviso que haya presionado uno de los botones de operaciones. Como se vió antes, los botones de operaciones (del Command1 al Command4) escriben algo en Label3. Si no tiene nada, despliega un error y pone el cursor sobre el botón de la suma (Command1).

Si pasó todas las verificaciones, paso a trabajar. Asigno valores numéricos a x y y, establezco que SePudo en verdadero (si ya pasó casi todas las verificaciones, se supone que si se pudo realizar la operación) y luego, dependiendo de lo que tenga, realizo la operación indicada. Para esto uso el SELECT CASE según lo que contenga Label3. Como verás, a z le asigno el resultado de la operación. El único caso en que se verifica otra cosa, es en el caso de la división. Uso otro IF para asegurarme que no haya división entre 0 (cero), porque es un errorsote.

Con eso termino. En caso de tener dudas, ahi me avisan. ¡Hasta la próxima!

Publicar un comentario
Related Posts Plugin for WordPress, Blogger...