|
Declaración de Variables y otros
Bien amigo(a) si sientes este manual un poco duro
tal vez sea porque no haz practicado lo suficiente
con los manuales anteriores, te aconsejo de que
tengas paciencia porque si bien ustedes me han
pedido diseñar un proyecto complejo ahora
yo los presiono a crear lo que me han pedido,
ten paciencia este es el proyecto más grande
hasta ahora, recuerda la persistencia hará
de ti un gran programador.
Para empezar cierra todos los formularios y abre
el formulario suma comenzaremos con este, para
empezar haz clic en el primer cuadro de texto
y en propiedades dale en la carpeta otros y luego
busca la opción "name" y cambiale
el nombre a "digit1" luego colocale
el nombre de "digit2" y "digit3"
a los siguientes cuadros de texto, este es como
el nombre de la variable a utilizar ¿te
parece?, escoge ahora otros tres cuadros de texto
y colocales el nombre de "exp1", "exp2"
y "exp3, ahora coloca el nombre de "resul1",
"resul2" y result3 a otros 3 cuadros
de texto y por último colocale el nombre
de "resultado" al cuadro de texto restante.
si tienes dudas dale una vista al formulario suma
que se te presenta en este manual.
Ahora hecho esto haz clic en la ficha "Datos"
escoge el primer cuadro de texto (digit1) y en
ControlSource digita "Digit1" ahora
busquemos la opción "Value" dentro
de esta ficha y colocale el valor de "0.00000"
esto significa que nuestro formulario podrá
trabajar con 5 decimales creo que esto no da lugar
a confusiones amigo(a) por lo tanto, imagino que
vas comprendiendo repite estos pasos con cada
uno de los siguientes cuadros de texto pero en
los cuadros texto de exp1, exp2 y exp3 colocale
en value "0" (cero) pues no puedes colocar
un exponente de 5.264 por decirte algo, en el
cuadro de texto resultado si dejale el valor de
"0.00000" ahora debemos desactivar 4
cuadros de texto... ¿como hago esto...?
es fácil para ello haz clic en la ficha
"Todos" o en la ficha "Otros"
en las propiedades busca la opción "Enabled"
(signif. activado) colocalo en falso y ya lo tenemos
desactivado esto lo harás solamente para
los cuadros de texto como: "resul1",
"resul2", "resul3" y "resultado"
Haz cada uno de estos pasos para el resto de
formularios claro según sean el número
de cuadros de texto existentes en ellos. ¿Complicado
amigo(a)? si no entiendes por favor léelo
de nuevo y prácticalo pues así lo
podrás entender si te das por vencido hasta
aquí entonces no serás capaz de
hacer lo que falta que es la codificación
para cada formulario; Si sientes que esto esta
en chino o en árabe pues te explicare lo
que acabamos de hacer ok los tres o dos cuadros
desactivados (dependiendo del formulario) están
desactivados porque en ellos vamos a transformar
la cantidad con su respectivo exponente a un número
real (es decir, una cantidad elevada a un determinado
exponente es: resultado (que en este caso cualquier
variable "Resul1", "Resul2"
o "Resul3" dependiendo con la que se
este trabajando) ahora el cuadro de texto resultado
realizará una operación con las
tres variables desactivadas (esta operación
puede ser suma, resta, multiplicación o
división dependiendo de el formulario en
el que estaremos trabajando.
Diseño del Menú
En la creación del menú te daré
pocos datos ya que imagino que esto es algo que
ya dominas bien, así que solamente te dire
que el menú lo debes hacer similar a esta
figura:
Recuerda el código salir para un menú
es un procedimiento el cual te lo enseñé
en el proyecto anterior y el código para
un botón salir en un formulario es distinto.
Codificación
Ahora hemos llegado a la parte más díficil
y divertida si tú has logrado llegar hasta
aca es porque tienes interés de aprender
así, que adelante.
Comencemos con el botón más fácil
elige el botón Cerrar del formulario Suma
y escribe thisform.release() esto te permitirá
cerrar el formulario pero no la aplicación
completa ¿entiendes? es decir el formulario
principal este no se cerrará, bien ahora
necesitamos crear un nuevo método para
ello haz clic en formulario y luego en "nuevo
método" el nombre de este método
será "calexpo" luego en "agregar"
ahora cierra esta ventana vamos no esta díficil
ahora haz doble clic en cualquier parte del formulario
y aparecerá una ventana que dice: "objeto"
y otra que dice: "procedimiento" en
este último busca calexpo será el
último de la lista pues es el que nosotros
hemos creado, haz clic en él y a continuación
escribiremos:
if exponente>0
if exponente=1
calculo=digito*10
endif
if exponente=2
calculo=digito*100
endif
if exponente=3
calculo=digito*1000
endif
if exponente=4
calculo=digito*10000
endif
if exponente=5
calculo=digito*100000
endif
endif
if exponente=0
calculo=digito
endif
if exponente<0
if exponente=-1
calculo=digito/10
endif
if exponente=-2
calculo=digito/100
endif
if exponente=-3
calculo=digito/1000
endif
if exponente=-4
calculo=digito/10000
endif
if exponente=-5
calculo=digito/100000
endif
endif
if r=1
thisform.resul1.value=calculo
endif
if r=2
thisform.resul2.value=calculo
endif
if r=3
thisform.resul3.value=calculo
endif
¿¿¿pero que significado
tiene todo esto???, yo no quiero que tú
estes en la luna con esto te voy a explicar si
tú utilizas tú calculadora y digitas
5 exponente 3 tú resultado será
5000 (no lo confundas con 5 elevado al cubo que
es 125); lo que sucede es que cuando utilizamos
una candidad con un exponente uno se multiplica
por 10 si el exponente es dos se multiplica por
100 y así sucesivamente pero cuando utilizamos
cifras negativas sucede lo contrario es decir
divisiones exponente uno te divide la cantidad
entre 10 un exponente 2 te divide la cantidad
entre 100 y así sucesivamente nosotros
para no hacer esto tan largo lo hemos realizado
solamente tomando cinco cifras.
¿...y las variables calculo, r, digito
y exponente de donde las sacamos acaso fue magia?
bien, te comenzare a decir que estamos utilizando
variables públicas o variables globales
como se conocen en otros lenguajes de programación
como en Pascal 7.0, sé que con esto es
poco lo que te aclaro, pero luego te explicare
mejor mi objetivo ahorita es explicarte el comando
if, este es fácil de entender pues en español
significa "Si «variable»«comparar»«condición»
entonces has esto" un ejemplo es: if exponente<0
esto significa si exponente es menor que cero
entonces hacer, espero que entiendas en nuestro
ejemplo tenemos otro if lo que significa que estamos
trabajando con if anidados, pues existen los if
anidados y los if simples o secuenciales.
hay tres if que son los principales, ellos son:
el if exponente>0, if exponente=0 y if exponente<0
de aquí dependen los demás if. Ahora
bien volvamos con nuestras variables públicas
que estamos utilizando pero que aún NO
hemos declarado para hacerlo has clic en cualquier
parte del formulario suma (en la ventana y no
en los boxtext o en los commandbottons o botones
de comandos), una vez aquí dentro búsquemos
el procedimiento Init que es inicio aquí
las declararemos de la siguiente manera:
public resul1,resul2,resul3
public digit1,digit2,digit3
public exp1,exp2,exp3
public r
public exponente,digito,calculo
store 0.000 to resul1,resul2,resul3,digit1,digit2,digit3,calculo,digito
store 0 to exp1,exp2,exp3,exponente
...¿con dudas? :< es normal no te preocupes
la principal pregunta que tú tendrás
es ¿y para qué voy a utilizar variables
públicas?... Trataré de explicartelo
bien imaginate que tenemos 3 cajas A, B, C (que
serían los nombres de las cajas o variables),
ahora en la caja A almaceno documentos, luego
la caja B los extrae de la caja A para procesarlos
en la caja C donde quedarán los documentos
perfeccionados para realizar esto las variables
deben tener relación entre sí por
ello se dice que son públicas (ya que aunque
están las variables declaradas en formas
distintas en el proyecto tienen relación),
pero en este programa ¿Dónde paso
la información de la Caja A a la caja B?,
será tu pregunta verdad genio(a)?, pues
bien hemos realizado un poco de esta transferencia
cuando digitamos anteriormente:
if r=1
thisform.resul1.value=calculo
Pero r es el equivalente a result1 (o dependiendo
de la caja en que se haga el calculo como result2
o result3), pero no hemos hecho aún el
paso de los dígitos y los exponentes para
calcularlos para ello debemos escribir el siguiente
código fuente dentro del botón calcular
ya que lo necesitamos:
r=1
exponente=thisform.exp1.value
digito=thisform.digit1.value
this.parent.calcexpo
thisform.refresh
r=2
exponente=thisform.exp2.value
digito=thisform.digit2.value
this.parent.calcexpo
thisform.refresh
r=3
exponente=thisform.exp3.value
digito=thisform.digit3.value
this.parent.calcexpo
thisform.refresh
resultado=resul1+resul2+resul3
thisform.refresh
Bien este texto es para suma en la resta solamente
utilizaremos la variable r para result1 y result2
por lo que resultado=resul1-resul2 para la división
será también result1 y result2 y
quedará en el proceso r=2. La pregunta
ahora es: ¿por qué utilizo variables
públicas cuando puedo hacerlo directamente?,
si piensas esto tienes toda la razón bien
te diré la principal razón el objetivo
de usar variables públicas es a veces como
en nuestro caso para ahorrar tanto código
fuente por ejemplo, nosotros utilizamos el procedimiento
calexpo el cual es llamado constantemente con
la instrucción: this.parent.calcexpo, este
procedimiento nos permite ahorrar mucho pero mucho
código fuente pues si tu eres curioso y
tratarás de hacerlo normalmente o sin la
utilización de variables públicas
y sin procedimiento te darás cuenta de
que el código contenido en calexpo se tendría
que repetir para cada uno de los res. exponentes:
(los tres textbox desactivados en el formulario
en el caso de la suma), (luego calcular estos
en resultado un textbox desactivado) y como son
4 operaciones (suma, resta, multipl. y división),
teniendo en la suma y multiplicación tres
cálculos y dos en la resta y división
entonces estamos diciendo que este proceso se
repetiría 2 o 3 veces por formulario, cuando
utilizando un procedimiento y variables públicas
se hace una sola vez por cada formulario de las
operaciones entonces podemos ver que el sistema
se hace más corto y efectivo.
Ahorita te explico el código del commandbotton
calcular bien igualamos primero r = 1 eso lo hago
por que utilizaré tres respuestas en este
formulario y por ello cuando r = 1 exponente será
igual a exp1 y digito será igual a digit1
con estos datos llamamos al procedimiento calcexpo,
alli al final encontramos tres if el primero es
r = 1 recuerda este valor se lo damos nosotros
a "r" para calcular el primer resultado
luego que se realizan los cálculos, notamos
que resul1 es igual a la variable calculo y con
esto tenemos la primer respuesta, (calculo es
la variable que nos procesa la cantidad con su
exponente a entero) regresamos al commandbottom
y observamos que r = 2; exponente = exp2 y digito
= digit2 se llama al procedimiento calcexpo nuevamente
nos calcula el segundo resultado luego hace lo
mismo con el tercero una vez calculado los tres
resultados el commandbottom calcular hace esto:
resultado = resul1 + resul2 + resul3 con esto
encontramos la respuesta final o calculo de toda
la operación; no es muy díficil
de entender verdad amigo(a), lo único que
tienes que hacer es usar tu imaginación
para ingeniartelas programando, a medida vallas
aprendiendo tu imaginación se desarrollará
más y podrás crear incluso aplicaciones
complejas, asi que suerte :).
Si quieres descargar este manual entonces,has
clic aquí si deseas descargar el proyecto
explicado en este ejemplo has clic aquì.
Nota del ejemplo: el ejemplo es un archivo comprimido
para descomprimirlo te recomiendo que lo descomprimas
en la raíz de la unidad C de tu disco duro
pues si le das otra ruta entonces no te funcionará
a menos que modifiques las rutas de las llamadas
a formularios; ...y no te preocupes ya que el
proyecto esta dentro de un directorio así
que no pienses que los archivos te quedarán
regados en tu disco duro. En cuanto al manual
este si te recomiendo descomprimirlo en una capeta
de lo contrario los varios archivos que contiene
te quedarán regados en tu disco duro.
Notas:
# Esta información tú la puedes
distribuir a tus amigos totalmente gratis pues
su distribución es gratis no puedes lucrarte
de esta información.
# No puedes modificar la información detallada
en este manual en caso de haber
# No puedes modificar la información detallada
en este manual en caso de haber házmelos
saber y así poder corregirlos.
# No debes borrar el nombre de autor pues, estarías
violando los derechos de autor y a la vez estarías
quitándole mérito al creador de
este manual de VFP.
Cualquier Observación, crítica,
felicitación, duda, consulta o sugerencia,
favor hazla a las direcciones de correo electrónico
siguientes: gilmermanzano@latinmail.com e imperiodecristal@yahoo.com
.
Autor: Gilmer O. Manzano Mendoza.
La Unión, El Salvador C.A.
Copyright (c) Enero – Diciembre del 2000.
|