guía de vfp nivel 1
DESCRIPTION
lriboTRANSCRIPT
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 1
MICROSOFT VISUAL FOXPRO
NIVEL I
INTRODUCCIN A LA PROGRAMACIN
Elaborado por
CARLOS CASTILLO PERALTA
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 2
INTRODUCCIN
La presente Gua de Laboratorio, se elabor con la
finalidad de complementar la parte terica con la parte
prctica del curso. Contiene una gran variedad de ejemplos
prcticos recopilados a lo largo de varios aos como docente y
programador en diversas instituciones.
Si desean compartirla con otros colegas, me agradara
mucho que lo hicieran, con la nica condicin de que siempre se
respete el derecho del autor.
Desde ya les deseo la mejor de las suertes en el
aprendizaje de Microsoft Visual FoxPro.
Lima, Abril del 2001
Carlos Castillo Peralta
Profesor de
Lenguajes de Programacin
Microsoft Visual FoxPro
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 3
GUA DE LABORATORIO N 1
Objetivos
Luego de completar este laboratorio, el estudiante ser
capaz de:
Identificar los elementos del entorno integrado de
desarrollo de Microsoft Visual FoxPro 6.0.
Implementar soluciones mediante programacin clsica.
Declarar y asignar valores tanto a las variables de memoria
como a los arreglos.
Analizar como es el flujo de control de un programa.
Crear funciones y procedimientos definidos por el usuario.
Consideraciones
Para el desarrollo del presente laboratorio Ud. deber
crear una carpeta C:\FundVFP\Lab1, para guardar sus trabajos
correspondientes a este laboratorio.
Aplicacin N 1
En este primer ejercicio vamos a escribir un programa que
lea tres nmeros enteros y determine el nmero mayor, el nmero
central y el nmero menor. Debemos asumir que los tres nmeros
son siempre distintos.
Para el desarrollo de la presente aplicacin ingresar a
Microsoft Visual FoxPro. En la Ventana de Comandos digite la
siguiente orden:
Modify Command Aplica01
A continuacin se debe presentar el Editor de programas.
En dicha ventana proceda a ingresar el cdigo que se indica:
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 4
Close All
Clear
Input Ingrese el valor de A? To nA
Input Ingrese el valor de B? To nB
Input Ingrese el valor de C? To nC
If nA > nB Then
nMay = nA
nMen = nB
Else
nMay = nB
nMen = nA
EndIf
If nC > nMay Then
nCen = nMay
nMay = nC
Else
If nC > nMen Then
nCen = nC
Else
nCen = nMen
nMen = nC
EndIf
EndIf
? Mayor = + Str(nMay)
? Central = + Str(nCen)
? Menor = + Str(nMen)
Para ejecutar su programa dar click en el botn Ejecutar
( ! ) de la Barra de herramientas Estndar.
Para volver a ejecutar su programa digitar la siguiente
orden desde la Ventana de Comandos:
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 5
Do Aplica01
Aplicacin N 2
Un restaurante ofrece un descuento del 10% para consumos
entre S/. 30.00 y S/. 50.00; un descuento del 20% para
consumos mayores a S/. 50.00 nuevos soles; para todos los dems
casos no se aplica ningn tipo de descuento. El ejercicio
consiste en elaborar una programa que permita determinar el
importe a pagar por el consumidor.
Para el desarrollo de la presente aplicacin abrir una
nueva ventana de edicin e ingresar el siguiente cdigo:
Close All
Clear
Do While .T.
Input Consumo S/. To nConsumo
If Type (nConsumo) = N
Exit
EndIf
EndDo
Do Case
Case nConsumo >= 30 And nConsumo 50
nImporte = nConsumo * 0.8
Otherwise
nImporte = nConsumo
EndCase
? Importe a pagar S/. + Str(nImporte)
Aplicacin N 3
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 6
El ejercicio consiste en escribir un programa que lea n
enteros y calcule la suma total, la media aritmtica, el mximo
y el mnimo de los datos.
Para el desarrollo de la presente aplicacin, de manera
anloga que para los casos anteriores abrir una nueva ventana
de edicin e ingresar el siguiente cdigo:
Close All
Clear
Input Ingrese cantidad de nmeros? To nN
Declare aVector(nN)
For nI = 1 To nN
Input Nmero [ + Str(nI) + ]? To aVector(nI)
Next
nMax = aVector[1]
nMin = aVector[1]
nSuma = 0
For nI = 1 To nN
nSuma = nSuma + aVector[nI]
If aVector[nI] > nMax Then
nMax = aVector[nI]
EndIf
If aVector[nI] < nMin Then
nMin = aVector[nI]
EndIf
Next
nMedia = nSuma / nN
? Suma = + Str(nSuma)
? Media = + Str(nMedia, 10, 2)
? Mximo= + Str(nMax)
? Mnimo= + Str(nMin)
Aplicacin N 4
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 7
A continuacin vamos a escribir una funcin que reciba
como argumento de entrada una cadena de caracteres y la
devuelva en forma inversa, por ejemplo si se ingresa la cadena
CORAZON deber retornar NOZAROC.
Para el desarrollo de esta aplicacin proceda de manera
similar a los casos anteriores e ingresar el cdigo que se
muestra:
Close All
Clear
Accept Ingrese una cadena? To cCadena
? Cadena invertida = + CadInv(cCadena)
Function CadInv
Parameters cCadena
nN = Len(Alltrim(cCadena))
Declare cTemporal(nN)
For nI = 1 To nN
cTemporal(nI) = SubStr(cCadena, nI, 1)
Next
cInvertida =
For nJ = nN To 1 Step -1
cInvertida = cInvertida + cTemporal(nJ)
Next J
Return cInvertida
Aplicacin N 5
Este ejercicio consiste en escribir un programa que
imprima el calendario correspondiente a un mes si se conoce una
fecha del mismo. Por ejemplo si se ingresa la siguiente fecha
MA 24 04 1973 (Martes 24 de Abril de 1973) se debe obtener:
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 8
Creo que a estas alturas Ud. ya entendi como funciona
esto. Por ello, esta aplicacin se deja como ejercicio para el
estudiante.
ABRIL
D L M M J V S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 9
Microsoft Visual FoxPro
GUA DE LABORATORIO N 2
Objetivos
Luego de completar este laboratorio, el estudiante ser
capaz de:
Implementar soluciones mediante programacin orientada a
objetos.
Manejar las diferentes propiedades y eventos del formulario.
Aadir controles a un formulario.
Establecer las propiedades de los controles.
Trabajar con procedimientos de eventos.
Consideraciones
Para el desarrollo del presente laboratorio Ud. deber
crear una carpeta C:\FundVFP\Lab2, para guardar sus trabajos
correspondientes a este laboratorio.
Aplicacin N 1
El ejercicio consiste en elaborar una aplicacin que
permita leer un nmero real de la forma eee.ddd e imprima el
mayor valor entre la parte entera y la parte decimal.
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 10
Para el desarrollo de esta aplicacin, en primer lugar
debe crear un nuevo formulario. Para ello digite lo siguiente
en la Ventana de Comandos:
Create Form
A continuacin seleccione del Men Ver, la opcin Barra de
herramientas Controles de Formularios. Se presentar una
ventana similar a la siguiente figura:
En seguida de la barra de herramientas mostrada ubicar los
siguientes controles al formulario:
2 etiquetas
2 cajas de texto
3 botones de comando
Para ubicar un control en el formulario, simplemente dar
click en el control deseado y luego dar click en el formulario
en la posicin que se le desea ubicar. Adicionalmente puede
utilizar la barra de herramientas Diseo para obtener una mejor
presentacin.
A continuacin proceda a establecer las propiedades de los
objetos segn se indica, para ello dar click derecho sobre el
control y del men emergente que se presenta elegir la opcin
Propiedades.
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 11
Form1
Name FrmAplica01
Caption Mayor valor de un nmero real
MaxButton .F.-Falso
MinButton .F.-Falso
Label1
Name LblX
Caption Ingrese un real de la forma eee.ddd?
Label2
Name LblMay
Caption Mayor:
Text1
Name TxtX
InputMask 999.999
Value 0
Text2
Name TxtMay
InputMask 999
Value 0
Command1
Name CmdAceptar
Caption \
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 12
Name CmdSalir
Cancel .T.-Verdadero
Caption \ nB Then
nMay = nA
Else
nMay = nB
EndIf
Thisform.TxtMay.Value = nMay
Thisform.Refresh
De manera anloga ingresar el siguiente cdigo para el
control CmdLimpiar:
Objeto: CmdLimpiar Procedimiento: Click
Thisform.TxtX.Value = 0
Thisform.TxtMay.Value = 0
Thisform.TxtX.Setfocus
Thisform.Refresh
Finalmente proceder a ingresar el siguiente cdigo para el
control CmdSalir:
Objeto: CmdSalir Procedimiento: Click
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 13
Release Thisform
A continuacin guarde su aplicacin como FrmAplica01,
luego proceda a ejecutarla. Para ello ingrese lo siguiente en
la Ventana de Comandos:
Do Form FrmAplica01
Debe funcionar sin problemas. Pruebe ingresando diferentes
valores. En caso que falle revise y corrija.
Aplicacin N 2
En este ejercicio vamos a crear un formulario para
calcular la edad de una persona a partir de su fecha de
nacimiento.
Para el desarrollo de esta aplicacin, proceda a ubicar
los siguientes controles en el formulario:
2 etiquetas
2 cajas de texto
3 botones de comando
Luego, proceda a establecer las propiedades segn se
indica a continuacin:
Form1
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 14
Name FrmEdad
Caption
MaxButton .F.-Falso
MinButton .F.-Falso
Label1
Name LblFecNac
Caption Fecha de nacimiento:
Label2
Name LblEdad
Caption Su edad es:
Text1
Name TxtFecNac
Enabled .T.-Verdadero
Text2
Name TxtEdad
Enabled .F.-Falso
Command1
Name CmdAceptar
Caption \
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 15
Objeto: FrmEdad Procedimiento: Load
Set Date French
Set Century On
Objeto: FrmEdad Procedimiento: Init
cNomDia = Cdow(Date())
cDia = Str(Day(Date()), 2)
cMes = Cmonth(Date())
cAnno = Str(Year(Date()), 4)
cFecha = cNomDia + + cDia + de + cMes + del + cAnno
Thisform.Caption = cFecha
Thisform.TxtFecNac.Setfocus
Thisform.Refresh
Objeto: CmdAceptar Procedimiento: Click
dFecNac = Ctod(Thisform.TxtFecNac.Value)
nEdad = Int ((Date() - dFecNac) / 365)
Thisform.TxtEdad.Value = Str(nEdad) + aos
Thisform.Refresh
Objeto: CmdLimpiar Procedimiento: Click
Thisform.TxtFecNac.Value =
Thisform.TxtEdad.Value =
Thisform.TxtFecNac.Setfocus
Thisform.Refresh
Objeto: CmdSalir Procedimiento: Click
Release Thisform
Aplicacin N 3
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 16
Este ejercicio consiste en elaborar un formulario que
simule el funcionamiento de un reloj despertador digital. La
aplicacin debe permitir al usuario ingresar la hora a la que
desea ser avisado. El diseo de la interfaz debe ser similar a
la figura siguiente:
Para el desarrollo de esta aplicacin proceder a ubicar
los siguientes controles en el formulario:
2 etiquetas
2 cajas de texto
1 cronmetro
2 botones de comandos
En seguida establezca las propiedades segn se indica a
continuacin:
Form1
Name FrmReloj
Caption Reloj despertador digital
MaxButton .F.-Falso
MinButton .F.-Falso
Label1
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 17
Name LblHora
Caption Hora
Label2
Name LblDespertador
Caption Despertador
Text1
Name TxtHora
FontBold .T.-Verdadero
FontSize 24
Text2
Name TxtDespertador
FontBold .T.-Verdadero
FontSize 24
Timer1
Name Timer1
Enabled .T.-Verdadero
Interval 500
Command1
Name CmdOnOff
Caption \
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 18
Una vez establecidas las propiedades, proceda a ingresar
el cdigo que se muestra:
Objeto: FrmReloj Procedimiento: Load
Public lOnOff
Objeto: FrmReloj Procedimiento: Init
lOnOff = .F.
Thisform.TxtDespertador.Value = 00:00:00
Thisform.Refresh
Objeto: Timer1 Procedimiento: Timer
If Thisform.TxtHora.Value != Time() Then
Thisform.TxtHora.Value = Time()
EndIf
If (Thisform.TxtDespertador.Value < Time()) And lOnOff Then
* Sonido acstico
?Chr(7)
EndIf
Thisform.Refresh
Objeto: CmdOnOff Procedimiento: Click
If lOnOff Then
lOnOff = .F.
Thisform.CmdOnOff.Caption = \
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 19
Objeto: CmdTerminar Procedimiento: Click
Release Thisform
Aplicacin N 4
Se tiene un cajero automtico el cual permite manipular
cierta cantidad de dinero para lo cual dispone de los
siguientes billetes: S/. 10.00, S/. 20.00, S/. 50.00,
S/. 100.00 y S/. 200.00. Elaborar una aplicacin que permita la
lectura de la cantidad a retirar la cual debe ser mltiplo de
10 (caso contrario debe solicitar al usuario que ingrese un
valor correcto, no debe aceptar la lectura de valores que no
cumplan esta condicin). La aplicacin debe indicar el menor
nmero de billetes a utilizar. El diseo de la interfaz debe
ser similar a la siguiente figura:
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 20
Microsoft Visual FoxPro
GUA DE LABORATORIO N 3
Objetivos
Luego de completar este laboratorio, el estudiante ser
capaz de:
Manejar las diferentes propiedades y mtodos del conjunto de
formularios.
Identificar y utilizar los controles estndar adicionales.
Utilizar cajas de dilogo predefinidas para visualizar
mensajes.
Consideraciones
Para el desarrollo del presente laboratorio Ud. deber
crear una carpeta C:\FundVFP\Lab3, para guardar sus trabajos
correspondientes a este laboratorio.
Aplicacin N 1
El ejercicio consiste en crear una aplicacin que permita
leer una fraccin y de como resultado la fraccin simplificada.
Esto es, que halle la fraccin irreductible equivalente.
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 21
Para el desarrollo de esta aplicacin proceda a crear un
nuevo formulario y luego vaya al Men Formulario y elija la
opcin Crear conjunto de formularios (no se preocupe, pues no
se apreciar nada en especial). Nuevamente vaya al Men
Formulario y elija la opcin Agregar nuevo formulario. El
Diseador de formularios debe presentar una apariencia similar
a la figura mostrada:
A continuacin proceda a ubicar los siguientes controles
sobre el primer formulario (Form1):
2 etiquetas
2 cajas de texto
2 botones de comando
Seguidamente debe establecer las propiedades de los
objetos segn se indica:
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 22
Form1
Name FrmIngreso
Caption Ingreso de datos
MaxButton .F.-Falso
MinButton .F.-Falso
Label1
Name LblNumerador
Caption Numerador?
Label2
Name LblDenominador
Caption Denominador?
Text1
Name TxtNumerador
Value 0
Text2
Name TxtDenominador
Value 0
Command1
Name CmdSimplificar
Caption Simplificar
Default .T.-Verdadero
Command2
Name CmdSalir
Cancel .T.-Verdadero
Caption Salir
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 23
A continuacin proceda a ingresar el cdigo que se
muestra:
Objeto: CmdSimplificar Procedimiento: Click
nNumerador = Thisformset.FrmIngreso.TxtNumerador.Value
nDenominador = Thisformset.FrmIngreso.TxtDenominador.Value
If nNumerador < nDenominador Then
nC = nNumerador
Else
nC = nDenominador
EndIf
Do While (nNumerador % nC != 0) Or (nDenominador % nC != 0)
nC = nC - 1
EndDo
nNumerador = nNumerador / nC
nDenominador = nDenominador / nC
Thisformset.FrmIngreso.Hide
Thisformset.FrmSalida.Show
Thisformset.Refresh
Objeto: CmdSalir Procedimiento: Click
Release Thisformset
Luego proceda a ubicar los siguientes controles sobre el
segundo formulario (Form2):
1 etiqueta
1 caja de texto
1 botn de comando
Seguidamente debe establecer las propiedades de los
objetos segn se indica:
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 24
Form2
Name FrmSalida
Caption Salida
MaxButton .F.-Falso
MinButton .F.-Falso
Label1
Name LblFraccion
Caption Fraccin simplificada:
Text1
Name TxtFraccion
Alignment 2-Centro
Command1
Name CmdVolver
Caption Volver
A continuacin proceda a ingresar el cdigo que se
muestra:
Objeto: FrmSalida Procedimiento: Activate
cNumerador = Str(nNumerador)
cDenominador = Str(nDenominador)
cFraccion = cNumerador + / + cDenominador
Thisformset.FrmSalida.TxtFraccion.Value = cFraccion
Thisformset.Refresh
Objeto: CmdVolver Procedimiento: Click
Thisformset.FrmSalida.Hide
Thisformset.FrmIngreso.Show
Thisformset.Refresh
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 25
Finalmente proceda a ingresar el cdigo que se indica a
continuacin:
Objeto: Formset1 Procedimiento: Load
Public nNumerador
Public nDenominador
Public nC
Objeto: Formset1 Procedimiento: Init
Thisformset.FrmSalida.Hide
Thisformset.Refresh
Aplicacin N 2
Este ejercicio consiste en elaborar una aplicacin que
acepte fechas como tres nmeros (dd, mm, aaaa) y las visualice
del modo usual. A manera de ejemplo considere lo siguiente:
Cuando el usuario haga click en el botn Salir o en el
botn Cerrar de la barra de ttulo del formulario, se debe
confirmar si desea terminar la aplicacin, tal como se observa
en la figura siguiente:
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 26
En caso de que el usuario elija la opcin Si, la
aplicacin debe terminar. Caso contrario, es decir si el
usuario elige la opcin No, se debe proseguir con la
aplicacin.
Para el desarrollo de esta aplicacin, proceda a ubicar
los siguientes controles en el formulario:
4 etiquetas
3 controles numricos
1 caja de texto
3 botones de comando
En seguida proceda a establecer las propiedades segn se
indica:
Form1
Name FrmFecha
Caption Fecha en letras
MaxButton .F.-Falso
MinButton .F.-Falso
Label1
Name LblDia
AutoSize .T.-Verdadero
Caption Da:
Label2
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 27
Name LblMes
AutoSize .T.-Verdadero
Caption Mes:
Label3
Name LblAnno
AutoSize .T.-Verdadero
Caption Ao:
Label4
Name LblEnLetras
AutoSize .T.-Verdadero
Caption En letras:
Spinner1
Name SpnDia
SpinnerHighValue 31
SpinnerLowValue 1
Spinner2
Name SpnMes
SpinnerHighValue 12
SpinnerLowValue 1
Spinner3
Name SpnAnno
SpinnerHighValue 9999
SpinnerLowValue 0
Text1
Name TxtEnLetras
Alignment 2-Centro
Command1
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 28
Name CmdAceptar
Caption \
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 29
cBarra = /
cFecha = Thisform.SpnDia.Text + cBarra + Thisform.SpnMes.Text ;
+ cBarra + Thisform.SpnAnno.Text
dFecha = Ctod(cFecha)
cNomDia = Cdow(dFecha)
cDia = Str(Day(dFecha), 2)
cMes = Cmonth(dFecha)
cAnno = Str(Year(dFecha), 4)
cFecha = cNomDia + + cDia + de + cMes + de + cAnno
Thisform.TxtEnLetras.Value = cFecha
Thisform.Refresh
Objeto: CmdLimpiar Procedimiento: Click
Thisform.SpnDia.Value = 0
Thisform.SpnMes.Value = 0
Thisform.SpnAnno.Value = 0
Thisform.TxtEnLetras.Value =
Thisform.SpnDia.Setfocus
Thisform.Refresh
Objeto: CmdSalir Procedimiento: Click
Thisform.QueryUnload
Aplicacin N 3
Este ejercicio consiste en elaborar un formulario que
permita leer un nmero entero y visualice su tabla se
multiplicar. Para construir la tabla de multiplicar vamos a
utilizar un control cuadro de edicin, el cual tiene
propiedades similares a un cuadro de texto, pero permite
escribir texto en lneas diferentes.
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 30
Para el desarrollo de esta aplicacin, proceda a ubicar
los siguientes controles en el formulario:
1 etiqueta
1 caja de texto
1 cuadro de edicin
1 botn de comandos
En seguida proceda a establecer las propiedades segn se
indica:
Form1
Name FrmTabla
Caption Tabla de multiplicar
MaxButton .F.-Falso
MinButton .F.-Falso
Label1
Name LblNumero
Caption Ingrese un nmero:
Text1
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 31
Name TxtNumero
Alignment 2-Centro
Edit1
Name EdtTabla
ScrollBars 2-Vertical
Command1
Name CmdLimpiar
Caption \
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 32
Elaborar una aplicacin que acepte como entrada la reserva
de agua de un depsito y los litros que se consumen a la
semana. La aplicacin debe dar como resultado las cantidades de
agua que quedan al final de cada semana. El proceso finalizar
cuando no quede agua suficiente para una semana. Utilizar otro
formulario para mostrar la salida. El diseo de la interfaz
debe ser similar a la figura mostrada:
Microsoft Visual FoxPro
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 33
GUA DE LABORATORIO N 4
Objetivos
Luego de completar este laboratorio, el estudiante ser
capaz de:
Usar casillas de verificacin y botones de opcin para
alternar entre uno o ms valores.
Establecer las principales propiedades y mtodos de las
listas desplegables y cuadros combinados.
Consideraciones
Para el desarrollo del presente laboratorio Ud. deber
crear una carpeta C:\FundVFP\Lab4, para guardar sus trabajos
correspondientes a este laboratorio.
Aplicacin N 1
Este ejercicio consiste en elaborar una aplicacin que
permita cambiar el aspecto de una caja de texto. El usuario
debe elegir el tipo de fuente a utilizar, el estilo, el color y
el tamao. El diseo de la interfaz debe ser similar a:
Para el desarrollo de esta aplicacin, proceda a ubicar
los siguientes controles en el formulario:
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 34
5 etiquetas
1 caja de texto
1 cuadro combinado
1 lista
3 casillas de verificacin
1 grupo de botones de opcin
1 botn de comando
En seguida proceda a establecer las propiedades segn se
indica:
Form1
Name FrmEditor
AutoCenter .T.-Verdadero
Caption Editor
MaxButton .F.-Falso
MinButton .F.-Falso
Label1
Name LblTexto
Caption Texto
Label2
Name LblFuente
Caption Fuente
Label3
Name LblTamao
Caption Tamao
Label4
Name LblEstilo
Caption Estilo
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 35
Label5
Name LblColor
Caption Color
Combo1
Name CboFuente
List1
Name LstTamao
Text1
Name TxtTexto
ForeColor 255, 0, 0
Check1
Name ChkNegrita
Caption Negrita
FontBold .T.-Verdadero
Check2
Name ChkCursiva
Caption Cursiva
FontItalic .T.-Verdadero
Check3
Name ChkSubrayado
Caption Subrayado
FontUnderline .T.-Verdadero
OptionGroup1
ButtonCount 3
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 36
Option1
Name OptRojo
ForeColor 255, 0, 0
Option2
Name OptVerde
ForeColor 0, 255, 0
Option3
Name OptAzul
ForeColor 0, 0, 255
Command1
Name CmdSalir
Caption \
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 37
Objeto: FrmEditor Procedimiento: QueryUnload
#DEFINE vfpYesNo 4
#DEFINE vfpYes 6
#DEFINE vfpQuestion 32
If MessageBox(Desea terminar la aplicacin?, ;
vfpQuestion + vfpYesNo, Pregunta) = vfpYes Then
Release Thisform
Else
NoDefault
EndIf
Objeto: CboFuente Procedimiento: Click
Thisform.TxtTexto.FontName = Thisform.CboFuente.Value
Thisform.Refresh
Objeto: LstTamao Procedimiento: Click
nTamao = Val(Thisform.LstTamao.Value)
Thisform.TxtTexto.FontSize = nTamao
Thisform.Refresh
Objeto: ChkNegrita Procedimiento: Click
If Thisform.ChkNegrita.Value = 1 Then
Thisform.TxtTexto.FontBold = .T.
Else
Thisform.TxtTexto.FontBold = .F.
EndIf
Thisform.Refresh
Objeto: ChkCursiva Procedimiento: Click
If Thisform.ChkCursiva.Value = 1 Then
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 38
Thisform.TxtTexto.FontItalic = .T.
Else
Thisform.TxtTexto.FontItalic = .F.
EndIf
Thisform.Refresh
Objeto: ChkSubrayado Procedimiento: Click
If Thisform.ChkSubrayado.Value = 1 Then
Thisform.TxtTexto.FontUnderline = .T.
Else
Thisform.TxtTexto.FontUnderline = .F.
EndIf
Thisform.Refresh
Objeto: OptRojo Procedimiento: Click
Thisform.TxtTexto.ForeColor = RGB(255, 0, 0)
Thisform.Refresh
Objeto: OptVerde Procedimiento: Click
Thisform.TxtTexto.ForeColor = RGB(0, 255, 0)
Thisform.Refresh
Objeto: OptAzul Procedimiento: Click
Thisform.TxtTexto.ForeColor = RGB(0, 0, 255)
Thisform.Refresh
Objeto: CmdSalir Procedimiento: Click
Thisform.QueryUnload
Aplicacin N 2
Este ejercicio consiste en desarrollar una aplicacin que
permita ingresar el nombre de un curso, el cual pasa a formar
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 39
parte de una lista de espera antes de ser programado para su
dictado. Los cursos deben ser seleccionados de la lista de
espera y trasladados a la lista de cursos programados y
viceversa. El diseo de la interfaz debe ser similar a la
figura mostrada:
Para el desarrollo de esta aplicacin proceda a ubicar los
siguientes controles en el formulario:
3 etiquetas
1 cuadro de texto
2 listas
5 botones de comando
En seguida proceda a establecer las propiedades segn se
indica:
Form1
Name FrmCursos
Caption Cursos
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 40
MaxButton .F.-Falso
MinButton .F.-Falso
Label1
Name LblCurso
Caption Ingrese nuevo curso:
Label2
Name LblSeleccionar
Caption Seleccione un curso:
Label3
Name LblProgramado
Caption Curso programado:
Text1
Name TxtCurso
List1
Name LstSeleccionar
List2
Name LstProgramado
Command1
Name CmdAgregar
Caption
Picture C:\FundVFP\Bitmaps\AddItem.Bmp
Command2
Name CmdAgregarTodo
Caption
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 41
Picture C:\FundVFP\Bitmaps\AddAll.Bmp
Command3
Name CmdQuitar
Caption
Picture C:\FundVFP\Bitmaps\Remove.Bmp
Command4
Name CmdQuitarTodo
Caption
Picture C:\FundVFP\Bitmaps\RemoveAll.Bmp
Command5
Name CmdAnnadir
Caption \
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 42
Thisform.CmdQuitarTodo.Enabled = .T.
EndIf
Thisform.Refresh
Objeto: CmdAgregar Procedimiento: Click
cCurso = Thisform.LstSeleccionar.Value
nCurso = Thisform.LstSeleccionar.ListIndex
If Thisform.LstSeleccionar.ListCount > 0 Then
Thisform.LstProgramado.AddItem(cCurso)
Thisform.LstSeleccionar.RemoveItem(nCurso)
Thisform.LstSeleccionar.ListIndex = 0
Thisform.CmdAgregar.Enabled = .F.
Thisform.CmdAgregarTodo.Enabled = .F.
EndIf
Thisform.Refresh
Objeto: CmdQuitar Procedimiento: Click
cCurso = Thisform.LstProgramado.Value
nCurso = Thisform.LstProgramado.ListIndex
If Thisform.LstProgramado.ListCount > 0 Then
Thisform.LstSeleccionar.AddItem(cCurso)
Thisform.LstProgramado.RemoveItem(nCurso)
Thisform.LstProgramado.ListIndex = 0
Thisform.CmdQuitar.Enabled = .F.
Thisform.CmdQuitarTodo.Enabled = .F.
EndIf
Thisform.Refresh
Objeto: CmdAgregarTodo Procedimiento: Click
For nI = 1 To Thisform.LstSeleccionar.ListCount
Thisform.LstProgramado.AddItem;
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 43
(Thisform.LstSeleccionar.List(nI))
Next
Thisform.LstSeleccionar.Clear
Thisform.CmdAgregar.Enabled = .F.
Thisform.CmdAgregarTodo.Enabled = .F.
Thisform.Refresh
Objeto: CmdQuitarTodo Procedimiento: Click
For nI = 1 To Thisform.LstProgramado.ListCount
Thisform.LstSeleccionar.AddItem;
(Thisform.LstProgramado.List(nI))
Next
Thisform.LstProgramado.Clear
Thisform.CmdQuitar.Enabled = .F.
Thisform.CmdQuitarTodo.Enabled = .F.
Thisform.Refresh
Objeto: FrmCursos Procedimiento: QueryUnload
#DEFINE vfpYesNo 4
#DEFINE vfpYes 6
#DEFINE vfpQuestion 32
If MessageBox(Desea terminar la aplicacin?, ;
vfpQuestion + vfpYesNo, Pregunta) = vfpYes Then
Release Thisform
Else
NoDefault
EndIf
Aplicacin N 3
El ejercicio consiste en elaborar una aplicacin que
permita leer n nmeros de tipo entero, y a continuacin los
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 44
visualice ordenados en forma ascendente o descendente. Utilice
el mtodo de la burbuja para realizar la ordenacin.
Para el desarrollo de esta aplicacin, proceda a ubicar
los siguientes controles en el formulario:
3 etiquetas
1 caja de texto
1 lista
1 grupo de botones de opcin
3 botones de comando
En seguida proceda a establecer las propiedades segn se
indica:
Form1
Nombre FrmBurbuja
Caption Ordenacin por burbuja
MaxButton .F.-Falso
MinButton .F.-Falso
Label1
Name LblNumero
Caption Ingrese un nuevo nmero:
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 45
Label2
Name LblOrden
Caption Orden:
Label3
Name LblLista
Caption Lista de nmeros:
Text1
Name TxtNumero
Value 0
List1
Name LstNumero
Option1
Nombre OptAscendente
Caption Ascendente
Option2
Nombre OptDescendente
Caption Descendente
Command1
Nombre CmdAnnadir
Caption \
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 46
Caption \
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 47
For nI = 1 To nN
nA(nI) = Thisform.LstNumero.List(nI)
Next
If Thisform.OptionGroup1.OptAscendente.Value = 1 Then
For nI = 1 To nN - 1
For nJ = nI + 1 To nN
If nA(nI) > nA(nJ) Then
nT = nA(nI)
nA(nI) = nA(nJ)
nA(nJ) = nT
EndIf
Next
Next
EndIf
If Thisform.OptionGroup1.OptDescendente.Value = 1 Then
For nI = 1 To nN - 1
For nJ = nI + 1 To nN
If nA(nI) < nA(nJ) Then
nT = nA(nI)
nA(nI) = nA(nJ)
nA(nJ) = nT
EndIf
Next
Next
EndIf
Thisform.LstNumero.Clear
For nI = 1 To nN
Thisform.LstNumero.List(nI) = nA(nI)
Next
Objeto: CmdSalir Procedimiento: Click
Thisform.QueryUnload
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 48
Aplicacin N 4
Desarrollar una aplicacin que permita realizar consultas
acerca de un determinado curso, los cuales se mostraran en una
lista. El usuario debe seleccionar un curso y en seguida se
debe presentar el nombre del profesor encargado del curso
(teora), el nombre del jefe de prctica (laboratorio), as
como los horarios de teora y de laboratorio, respectivamente.
El diseo de la interfaz debe ser similar a la figura que se
muestra:
Microsoft Visual FoxPro
GUA DE LABORATORIO N 5
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 49
Objetivos
Luego de completar este laboratorio, el estudiante ser
capaz de:
Crear mtodos definidos por el usuario.
Pasar correctamente los argumentos a un mtodo.
Ejecutar mtodos desde un formulario.
Implementar mtodos que devuelvan mltiples valores.
Consideraciones
Para el desarrollo del presente laboratorio Ud. deber
crear una carpeta C:\FundVFP\Lab5, para guardar sus trabajos
correspondientes a este laboratorio.
Aplicacin N 1
Este primer ejercicio consiste en escribir un mtodo que
reciba como argumento una cadena de caracteres y la devuelva en
forma inversa. Por ejemplo si se ingresa la cadena CORAZON
deber retornar NOZAROC.
Para el desarrollo de esta aplicacin, proceda a ubicar
los siguientes controles en el formulario:
2 etiquetas
2 cajas de texto
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 50
3 botones de comando
En seguida proceda a establecer las propiedades segn se
indica:
Form1
Nombre FrmPrueba_Cadena
Caption Cadena invertida
MaxButton .F.-Falso
MinButton .F.-Falso
Label1
Nombre LblCadena
Caption Ingrese una cadena:
Label2
Nombre LblInvertida
Caption Cadena invertida:
Text1
Nombre TxtCadena
Enabled .T.-Verdadero
Text2
Nombre TxtInvertida
Enabled .F.-Falso
Command1
Nombre CmdAceptar
Caption \
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 51
Command2
Nombre CmdLimpiar
Caption \
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 52
cTemporal(nI) = SubStr(cCadena, nI, 1)
Next
cCadena =
For nJ = nN To 1 Step -1
cInvertida = cInvertida + cTemporal(nJ)
Next
Return cInvertida
Objeto: CmdAceptar Procedimiento: Click
cCadena = Thisform.TxtCadena.Value
Thisform.TxtInvertida.Value = Thisform.CadInvertida(cCadena)
Thisform.Refresh
Aplicacin N 2
Este ejercicio consiste en crear un mtodo que reciba como
argumento los apellidos y nombres de un cliente (en ese orden)
y retorne los nombres y apellidos del mismo.
Para el desarrollo de esta aplicacin proceda a crear un
nuevo mtodo denominado NomApe. Luego transcriba el siguiente
cdigo:
Objeto: FrmPrueba_NomApe Procedimiento: NomApe
Parameters cApeNom
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 53
nN = Len(Alltrim(cApeNom))
Dimension cNom(nN)
Dimension cApe(nN)
For nI = 1 To nN
If SubStr(cApeNom, nI, 1) = , Then
Exit
EndIf
Next
cApe = SubStr(cApeNom, 1, nI-1)
cNom = SubStr(cApeNom, nI + 1, nN - nI)
cNomApe = cNom + + cApe
Return cNomApe
Aplicacin N 3
Para calcular el porcentaje de humedad de una muestra
slida primero se pesa la muestra ( 1m ), luego se le lleva a la
estufa de 120 a 150 C por un tiempo de 2 horas
aproximadamente. A continuacin se deja enfriar la muestra y se
pesa nuevamente ( 2m ). Finalmente se realiza el siguiente
clculo:
1
21100%m
mmHumedad
Nuestro trabajo consiste en crear un mtodo que permita
realizar el clculo anterior.
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 54
Para el desarrollo de esta aplicacin proceder a cera un
nuevo mtodo denominado Humedad. Luego ingrese el siguiente
cdigo:
Objeto: FrmPrueba_Humedad Procedimiento: Humedad
Parameters nM1, nM2
nH = 100 * (nM1 - nM2) / nM1
Return nH
Objeto: CmdAceptar Procedimiento: Click
nMasa1 = Val(Thisform.TxtMasa1.Value)
nMasa2 = Val(Thisform.TxtMasa2.Value)
nHumedad = Thisform.Humedad(nMasa1, nMasa2)
Thisform.TxtHumedad.Value = Str(nHumedad, 10, 4)
Thisform.Refresh
Aplicacin N 4
Escriba un mtodo que reciba como parmetro la fecha de
nacimiento del usuario. Debe retornar el signo zodiacal, el da
de nacimiento y la cantidad de das vividos hasta la fecha
actual. Utilice un formulario de prueba para verificar la
funcionalidad del mtodo creado.
-
Elaborado por Carlos Castillo Peralta [email protected] Pg. 55
Sugerencia
Retorne un nico valor como una cadena de caracteres, en
la cual estn incluidos los valores que se piden. A manera de
ejemplo considere lo siguiente:
cRpta = cZodiaco + cDiaNacimiento + cDiasVividos + cFechaHoy
Return cRpta
Fin del Nivel I
Suerte
Prximamente
Nivel II : Programacin de aplicaciones de escritorio
Nivel III : Programacin de aplicaciones Cliente-Servidor