Si imitamos la calculadora de Windows funciona con puro botones.
El power builder en esta versión 10.5 carece de que los botones se puedan cambiar su color.
Editando nuestro diseño de la calculadora en Pb. seria de esta manera:
Utilizando una ventana(1), botones(18), caja de texto(1)
Se ha modificado las propiedades de height, width de los siguientes objetos para llegar a nuestro objetivo.
Definiendo el ancho y alto de nuestra ventana.
Antes de irnos a la programación dedemos tener en cuenta esto :
* Cuando doy click en el boton 0 no inserta ningun numero en el visor.
* Si doy click en el boton 0 no puede seguir ingresando caracteres al sle_visor.
*El boton . no se puede agregar mas de una vez en el sle_visor.
Diseñando las cajas de texto, Botones de comando acuerdo a nuestra manera de programación.
Lo hemos agrupado y pintado en tres cuerpos por que su comportamiento lo tienen casi parecido en este caso:
Pintado rojo .-
Las Caja de Texto estan solo para mostrar resultado en caracteres y no es editable.
Pintado verde .-
Este grupo de botones que son los numeros es para llenar las caja de texto de caractes aumentando por la derecha.
Se debe de repetir para los botones 9,8,7,6,5,4,3,2,1,0,.
Agregando codigo repetido a los botones 9,8,7,6,5,4,3,2,1,0 y ademas cambiar is_caracter = '0' si es el boton 0, is_caracter = '1' si es el boton 1, ..., is_caracter = '9' si es el boton 9 como la figura:
Pintado azul .-
Este grupo de botones es el que nos hace el calculo +, -, *, / y los tipos funciones que queremos .
Como se dan cuenta tienen igual las mismas propiedades botones que funcionan como operadores dentro de la programacion.
/, * , - , +
Agregando codigo repetido a los botones / , *, - , + y ademas cambiar is_operador = '/' si es el boton /, is_operador = '*' si es el boton *, ..., is_operador = '+' si es el boton + como la figura:
Hemos utilizado Dos la funciones de ventana para poder minimizar nuestro codígo
wf_convertir_numero(string ls_numero) returns String
* Permite convertir el numero que esta en caracter a su formato decimal.
wf_operador(string ls_factor_uno, string ls_factor_dos, string ls_operador) returns String
* Permite convertir los numero que esta en caracteres y trabajarlo con su respectivo operador.
por ejemplo : wf_operador('45', '15', '/') = '3'
wf_operador('250', '40', '*') = '210'
wf_operador('300', '45', '-') = '265'
wf_operador('100', '50', '+') = '50'
Programando el boton =
*Aqui Utilizamos las dos funciones creadas.
Programando el boton .
Programando el boton C
*Reiniciamos las variables declaradas en Instancia Variable asi poder resetear los valores iniciales y sle_visor = '.0'
Probando la Calculadora 'FABRISOFT' una vez funcionando correctamente procedemos a guardar nuestra libreria mas adelante hacer un buen uso.