MICROSOFT VISUAL FOXPRO

 

 

NIVEL I

INTRODUCCI�N A LAPROGRAMACI�N

 


INTRODUCCI�N

 

La presente Gu�a de Laboratorio, se elabor� con la finalidadde complementar la parte te�rica con la parte pr�ctica delcurso. Contiene una gran variedad de ejemplos pr�cticos .

Desde ya les deseo la mejor de las suertes en el aprendizajede Microsoft Visual FoxPro.

Lima, Setiembre del 2002

 


 

Microsoft Visual FoxPro

 

GU�A DE LABORATORIO N� 1

Objetivos

Luego de completar este laboratorio, el estudiante ser� capazde:

Consideraciones

Para el desarrollo del presente laboratorio Ud. deber� crearuna carpeta C:\FundVFP\Lab1, para guardar sus trabajoscorrespondientes a este laboratorio.

Aplicaci�n N� 1

En este primer ejercicio vamos a escribir un programa que leatres n�meros enteros y determine el n�mero mayor, el n�merocentral y el n�mero menor. Debemos asumir que los tres n�merosson siempre distintos.

Para el desarrollo de la presente aplicaci�n ingresar aMicrosoft Visual FoxPro. En la Ventana de Comandos digite lasiguiente orden:

Modify Command Aplica01

A continuaci�n se debe presentar el Editor de programas. Endicha ventana proceda a ingresar el c�digo que se indica:

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 > nMayThen

              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 bot�n Ejecutar (!)de la Barra de herramientas Est�ndar.

Para volver a ejecutar su programa digitar la siguiente ordendesde la Ventana de Comandos:

Do Aplica01

Aplicaci�n N� 2

Un restaurante ofrece un descuento del 10% para consumos entreS/. 30.00 y S/. 50.00; un descuento del 20% para consumos mayoresa S/. 50.00 nuevos soles; para todos los dem�s casos no seaplica ning�n tipo de descuento. El ejercicio consiste enelaborar una programa que permita determinar el importe a pagarpor el consumidor.

Para el desarrollo de la presente aplicaci�n abrir una nuevaventana de edici�n e ingresar el siguiente c�digo:

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.9

Case nConsumo > 50

nImporte = nConsumo * 0.8

Otherwise

nImporte = nConsumo

EndCase

? "Importe a pagar S/." + Str(nImporte)

Aplicaci�n N� 3

El ejercicio consiste en escribir un programa que lea "" enteros ycalcule la suma total, la media aritm�tica, el m�ximo y elm�nimo de los datos.

Para el desarrollo de la presente aplicaci�n, de maneraan�loga que para los casos anteriores abrir una nueva ventana deedici�n e ingresar el siguiente c�digo:

Close All

Clear

Input "Ingrese cantidad de n�meros?" To nN

Declare aVector(nN)

For nI = 1 To nN

Input "N�mero [" + Str(nI) + "]?" ToaVector(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)

? "M�ximo=" + Str(nMax)

? "M�nimo=" + Str(nMin)

Aplicaci�n N� 4

A continuaci�n vamos a escribir una funci�n que reciba comoargumento de entrada una cadena de caracteres y la devuelva enforma inversa, por ejemplo si se ingresa la cadena CORAZONdeber� retornar NOZAROC.

Para el desarrollo de esta aplicaci�n proceda de manerasimilar a los casos anteriores e ingresar el c�digo que semuestra:

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

Aplicaci�n N� 5

Este ejercicio consiste en escribir un programa que imprima elcalendario correspondiente a un mes si se conoce una fecha delmismo. Por ejemplo si se ingresa la siguiente fecha MA 24 04 1973(Martes 24 de Abril de 1973) se debe obtener:

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          

 

 

Creo que a estas alturas Ud. ya entendi� como funciona esto.Por ello, esta aplicaci�n se deja como ejercicio para elestudiante.

 

Microsoft Visual FoxPro

GU�A DE LABORATORIO N� 2

Objetivos

Luego de completar este laboratorio, el estudiante ser� capazde:

Consideraciones

Para el desarrollo del presente laboratorio Ud. deber� crearuna carpeta C:\FundVFP\Lab2, para guardar sus trabajoscorrespondientes a este laboratorio.

Aplicaci�n N� 1

El ejercicio consiste en elaborar una aplicaci�n que permitaleer un n�mero real de la forma "eee.ddd" e imprima elmayor valor entre la parte entera y la parte decimal.

Para el desarrollo de esta aplicaci�n, en primer lugar debecrear un nuevo formulario. Para ello digite lo siguiente en laVentana de Comandos:

Create Form

A continuaci�n seleccione del Men� Ver, la opci�n Barra deherramientas Controles de Formularios. Se presentar� una ventanasimilar a la siguiente figura:

En seguida de la barra de herramientas mostrada ubicar lossiguientes controles al formulario:

2 etiquetas

2 cajas de texto

3 botones de comando

Para ubicar un control en el formulario, simplemente dar clicken el control deseado y luego dar click en el formulario en laposici�n que se le desea ubicar. Adicionalmente puede utilizarla barra de herramientas Dise�o para obtener una mejorpresentaci�n.

A continuaci�n proceda a establecer las propiedades de losobjetos seg�n se indica, para ello dar click derecho sobre elcontrol y del men� emergente que se presenta elegir la opci�nPropiedades.

Form1

  Name FrmAplica01
  Caption Mayor valor de un n�mero 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 \<Aceptar
  Default .T.-Verdadero

Command2

  Name CmdLimpiar
  Caption \<Limpiar

Command3

  Name CmdSalir
  Cancel .T.-Verdadero
  Caption \<Salir

A continuaci�n dar doble click sobre el control CmdAceptar yproceda a ingresar el c�digo que se muestra:

Objeto: CmdAceptar Procedimiento: Click

nX = Thisform.TxtX.Value

nA = Int(Thisform.TxtX.Value)

nX = nX - nA

nB = 1000 * nX

If nA > nB Then

nMay = nA

Else

nMay = nB

EndIf

Thisform.TxtMay.Value = nMay

Thisform.Refresh

De manera an�loga ingresar el siguiente c�digo para elcontrol CmdLimpiar:

Objeto: CmdLimpiar Procedimiento: Click

Thisform.TxtX.Value = 0

Thisform.TxtMay.Value = 0

Thisform.TxtX.Setfocus

Thisform.Refresh

Finalmente proceder a ingresar el siguiente c�digo para elcontrol CmdSalir:

Objeto: CmdSalir Procedimiento: Click

Release Thisform

A continuaci�n guarde su aplicaci�n como FrmAplica01, luegoproceda a ejecutarla. Para ello ingrese lo siguiente en laVentana de Comandos:

Do Form FrmAplica01

Debe funcionar sin problemas. Pruebe ingresando diferentesvalores. En caso que falle revise y corrija.

Aplicaci�n N� 2

En este ejercicio vamos a crear un formulario para calcular laedad de una persona a partir de su fecha de nacimiento.

Para el desarrollo de esta aplicaci�n, proceda a ubicar lossiguientes controles en el formulario:

2 etiquetas

2 cajas de texto

3 botones de comando

Luego, proceda a establecer las propiedades seg�n se indica acontinuaci�n:

Form1

  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 \<Aceptar

Command2

  Name CmdLimpiar
  Caption \<Limpiar

Command3

  Name CmdSalir
  Caption \<Salir

Luego de establecidas las propiedades de los controles,proceda a ingresar el siguiente c�digo:

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) + " a�os"

Thisform.Refresh

Objeto: CmdLimpiar Procedimiento: Click

Thisform.TxtFecNac.Value = ""

Thisform.TxtEdad.Value = ""

Thisform.TxtFecNac.Setfocus

Thisform.Refresh

Objeto: CmdSalir Procedimiento: Click

Release Thisform

Aplicaci�n N� 3

Este ejercicio consiste en elaborar un formulario que simuleel funcionamiento de un reloj despertador digital. La aplicaci�ndebe permitir al usuario ingresar la hora a la que desea seravisado. El dise�o de la interfaz debe ser similar a la figurasiguiente:

Para el desarrollo de esta aplicaci�n proceder a ubicar lossiguientes controles en el formulario:

2 etiquetas

2 cajas de texto

1 cron�metro

2 botones de comandos

En seguida establezca las propiedades seg�n se indica acontinuaci�n:

Form1

  Name FrmReloj
  Caption Reloj despertador digital
  MaxButton .F.-Falso
  MinButton .F.-Falso

Label1

  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 \<Desactivar
  Default .T.-Verdadero

Command2

  Name CmdTerminar
  Cancel .T.-Verdadero
  Caption \<Terminar

Una vez establecidas las propiedades, proceda a ingresar elc�digo 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 ac�stico

?Chr(7)

EndIf

Thisform.Refresh

Objeto: CmdOnOff Procedimiento: Click

If lOnOff Then

lOnOff = .F.

Thisform.CmdOnOff.Caption = "\<Activar"

Else

lOnOff = .T.

Thisform.CmdOnOff.Caption = "\<Desactivar"

EndIf

Thisform.Refresh

Objeto: CmdTerminar Procedimiento: Click

Release Thisform

Aplicaci�n N� 4

Se tiene un cajero autom�tico el cual permite manipularcierta cantidad de dinero para lo cual dispone de los siguientesbilletes: S/. 10.00, S/. 20.00, S/. 50.00, S/. 100.00 y S/.200.00. Elaborar una aplicaci�n que permita la lectura de lacantidad a retirar la cual debe ser m�ltiplo de 10 (casocontrario debe solicitar al usuario que ingrese un valorcorrecto, no debe aceptar la lectura de valores que no cumplanesta condici�n). La aplicaci�n debe indicar el menor n�mero debilletes a utilizar. El dise�o de la interfaz debe ser similar ala siguiente figura:

 

Microsoft Visual FoxPro

GU�A DE LABORATORIO N� 3

Objetivos

Luego de completar este laboratorio, el estudiante ser� capazde:

Consideraciones

Para el desarrollo del presente laboratorio Ud. deber� crearuna carpeta C:\FundVFP\Lab3, para guardar sus trabajoscorrespondientes a este laboratorio.

Aplicaci�n N� 1

El ejercicio consiste en crear una aplicaci�n que permitaleer una fracci�n y de como resultado la fracci�n simplificada.Esto es, que halle la fracci�n irreductible equivalente.

Para el desarrollo de esta aplicaci�n proceda a crear unnuevo formulario y luego vaya al Men� Formulario y elija laopci�n Crear conjunto de formularios (no se preocupe, pues no seapreciar� nada en especial). Nuevamente vaya al Men� Formularioy elija la opci�n Agregar nuevo formulario. El Dise�ador deformularios debe presentar una apariencia similar a la figuramostrada:

A continuaci�n proceda a ubicar los siguientes controlessobre el primer formulario (Form1):

2 etiquetas

2 cajas de texto

2 botones de comando

Seguidamente debe establecer las propiedades de los objetosseg�n se indica:

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

A continuaci�n proceda a ingresar el c�digo 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 bot�n de comando

Seguidamente debe establecer las propiedades de los objetos seg�n se indica:

Form2

  Name FrmSalida
  Caption Salida
  MaxButton .F.-Falso
  MinButton .F.-Falso

Label1

  Name LblFraccion
  Caption Fracci�n simplificada:

Text1

  Name TxtFraccion
  Alignment 2-Centro

Command1

  Name CmdVolver
  Caption Volver

A continuaci�n proceda a ingresar el c�digo 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

Finalmente proceda a ingresar el c�digo que se indica a continuaci�n:

Objeto: Formset1 Procedimiento: Load

Public nNumerador

Public nDenominador

Public nC

Objeto: Formset1 Procedimiento: Init

Thisformset.FrmSalida.Hide

Thisformset.Refresh

Aplicaci�n N� 2

Este ejercicio consiste en elaborar una aplicaci�n que acepte fechas como tres n�meros (dd, mm, aaaa) y las visualice del modo usual. A manera de ejemplo considere lo siguiente:

Cuando el usuario haga click en el bot�n Salir o en el bot�n Cerrar de la barra de t�tulo del formulario, se debe confirmar si desea terminar la aplicaci�n, tal como se observa en la figura siguiente:

En caso de que el usuario elija la opci�n Si, la aplicaci�n debe terminar. Caso contrario, es decir si el usuario elige la opci�n No, se debe proseguir con la aplicaci�n.

Para el desarrollo de esta aplicaci�n, proceda a ubicar los siguientes controles en el formulario:

4 etiquetas

3 controles num�ricos

1 caja de texto

3 botones de comando

En seguida proceda a establecer las propiedades seg�n se indica:

Form1

  Name FrmFecha
  Caption Fecha en letras
  MaxButton .F.-Falso
  MinButton .F.-Falso

Label1

  Name LblDia
  AutoSize .T.-Verdadero
  Caption D�a:

Label2

  Name LblMes
  AutoSize .T.-Verdadero
  Caption Mes:

Label3

  Name LblAnno
  AutoSize .T.-Verdadero
  Caption A�o:

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

  Name CmdAceptar
  Caption \<Aceptar
  Default .T.-Verdadero

Command2

  Name CmdLimpiar
  Caption \<Limpiar

Command3

  Name CmdSalir
  Cancel .T.-Verdadero
  Caption \<Salir

Una vez establecidas las propiedades proceda a ingresar el c�digo que se indica a continuaci�n:

Objeto: FrmFecha Procedimiento: Load

Set Date French

Set Century On

Objeto: FrmFecha Procedimiento: QueryUnload

#DEFINE vfpYesNo 4

#DEFINE vfpYes 6

#DEFINE vfpQuestion 32

If MessageBox("�Desea terminar la aplicaci�n?", ;

vfpQuestion + vfpYesNo, "Pregunta") = vfpYes Then

Release Thisform

Else

NoDefault

EndIf

Objeto: CmdAceptar Procedimiento: Click

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

Aplicaci�n N� 3

Este ejercicio consiste en elaborar un formulario que permita leer un n�mero entero y visualice su tabla se multiplicar. Para construir la tabla de multiplicar vamos a utilizar un control cuadro de edici�n, el cual tiene propiedades similares a un cuadro de texto, pero permite escribir texto en l�neas diferentes.

Para el desarrollo de esta aplicaci�n, proceda a ubicar los siguientes controles en el formulario:

1 etiqueta

1 caja de texto

1 cuadro de edici�n

1 bot�n de comandos

En seguida proceda a establecer las propiedades seg�n se indica:

Form1

  Name FrmTabla
  Caption Tabla de multiplicar
  MaxButton .F.-Falso
  MinButton .F.-Falso

Label1

  Name LblNumero
  Caption Ingrese un n�mero:

 

Text1

  Name TxtNumero
  Alignment 2-Centro

Edit1

  Name EdtTabla
  ScrollBars 2-Vertical

Command1

  Name CmdLimpiar
  Caption \<Limpiar
  Default .T.-Verdadero

Una vez dise�ada la interfaz, proceda a ingresar el c�digo que se indica a continuaci�n:

Objeto: TxtNumero Procedimiento: InteractiveChange

nN = Val(Thisform.TxtNumero.Value)

cS = ""

For nI = 0 To 12

nP = nN * nI

cS = cS + Str(nN) + " * " + Str(nI) + " = " + Str(nP) ;

+ Chr(13)

Next

Thisform.EdtTabla.Value = cS

Thisform.Refresh

Objeto: CmdLimpiar Procedimiento: Click

Thisform.TxtNumero.Value = ""

Thisform.EdtTabla.Value = ""

Thisform.Refresh

Aplicaci�n N� 4

Elaborar una aplicaci�n que acepte como entrada la reserva de agua de un dep�sito y los litros que se consumen a la semana. La aplicaci�n 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 dise�o de la interfaz debe ser similar a la figura mostrada:

 

 

Microsoft Visual FoxPro

GU�A DE LABORATORIO N� 4

Objetivos

Luego de completar este laboratorio, el estudiante ser� capaz de:

Consideraciones

Para el desarrollo del presente laboratorio Ud. deber� crear una carpeta C:\FundVFP\Lab4, para guardar sus trabajos correspondientes a este laboratorio.

Aplicaci�n N� 1

Este ejercicio consiste en elaborar una aplicaci�n 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 tama�o. El dise�o de la interfaz debe ser similar a:

Para el desarrollo de esta aplicaci�n, proceda a ubicar los siguientes controles en el formulario:

5 etiquetas

1 caja de texto

1 cuadro combinado

1 lista

3 casillas de verificaci�n

1 grupo de botones de opci�n

1 bot�n de comando

En seguida proceda a establecer las propiedades seg�n 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 LblTama�o
  Caption Tama�o

Label4

  Name LblEstilo
  Caption Estilo

Label5

  Name LblColor
  Caption Color

Combo1

  Name CboFuente

List1

  Name LstTama�o

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

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 \<Salir
  Default .T.-Verdadero

Una vez establecidas las propiedades de la interfaz, proceda a ingresar el c�digo que se muestra a continuaci�n:

Objeto: FrmEditor Procedimiento: Init

Thisform.CboFuente.AddItem("Arial")

Thisform.CboFuente.AddItem("Arial Black")

Thisform.CboFuente.AddItem("Courier New")

Thisform.CboFuente.AddItem("Garamond")

Thisform.CboFuente.AddItem("Impact")

Thisform.CboFuente.AddItem("MS Sans Serif")

Thisform.CboFuente.AddItem("Technical")

Thisform.CboFuente.AddItem("Times New Roman")

For nI = 8 To 20 Step 2

Thisform.LstTama�o.AddItem(Alltrim(Str(nI)))

Next

Objeto: FrmEditor Procedimiento: QueryUnload

#DEFINE vfpYesNo 4

#DEFINE vfpYes 6

#DEFINE vfpQuestion 32

If MessageBox("�Desea terminar la aplicaci�n?", ;

vfpQuestion + vfpYesNo, "Pregunta") = vfpYes Then

Release Thisform

Else

NoDefault

EndIf

Objeto: CboFuente Procedimiento: Click

Thisform.TxtTexto.FontName = Thisform.CboFuente.Value

Thisform.Refresh

Objeto: LstTama�o Procedimiento: Click

nTama�o = Val(Thisform.LstTama�o.Value)

Thisform.TxtTexto.FontSize = nTama�o

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

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

Aplicaci�n N� 2

Este ejercicio consiste en desarrollar una aplicaci�n que permita ingresar el nombre de un curso, el cual pasa a formar 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 dise�o de la interfaz debe ser similar a la figura mostrada:

Para el desarrollo de esta aplicaci�n 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 seg�n se indica:

Form1

  Name FrmCursos
  Caption Cursos
  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  
  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 \<A�adir

En seguida proceda a ingresar el c�digo que se indica:

Objeto: CmdAnnadir Procedimiento: Click

Thisform.LstSeleccionar.Additem(Thisform.TxtCurso.Value)

Thisform.TxtCurso.Value = ""

Thisform.TxtCurso.SetFocus

Objeto: LstSeleccionar Procedimiento: Click

If Thisform.LstSeleccionar.ListIndex != 0 Then

Thisform.CmdAgregar.Enabled = .T.

Thisform.CmdAgregarTodo.Enabled = .T.

EndIf

Thisform.Refresh

Objeto: LstProgramado Procedimiento: Click

If Thisform.LstProgramado.ListIndex != 0 Then

Thisform.CmdQuitar.Enabled = .T.

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;

(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 aplicaci�n?", ;

vfpQuestion + vfpYesNo, "Pregunta") = vfpYes Then

Release Thisform

Else

NoDefault

EndIf

Aplicaci�n N� 3

El ejercicio consiste en elaborar una aplicaci�n que permita leer n�meros de tipo entero, y a continuaci�n los visualice ordenados en forma ascendente o descendente. Utilice el m�todo de la burbuja para realizar la ordenaci�n.

Para el desarrollo de esta aplicaci�n, proceda a ubicar los siguientes controles en el formulario:

3 etiquetas

1 caja de texto

1 lista

1 grupo de botones de opci�n

3 botones de comando

En seguida proceda a establecer las propiedades seg�n se indica:

Form1

  Nombre FrmBurbuja
  Caption Ordenaci�n por burbuja
  MaxButton .F.-Falso
  MinButton .F.-Falso

 

Label1

  Name LblNumero
  Caption Ingrese un nuevo n�mero:

Label2

  Name LblOrden
  Caption Orden:

Label3

  Name LblLista
  Caption Lista de n�meros:

Text1

  Name TxtNumero
  Value 0

List1

  Name LstNumero

Option1

  Nombre OptAscendente
  Caption Ascendente

Option2

  Nombre OptDescendente
  Caption Descendente

Command1

  Nombre CmdAnnadir
  Caption \<A�adir
  Default True

Command2

  Nombre CmdOrdenar
  Caption \<Ordenar

Command3

  Nombre CmdSalir
  Cancel .T.-Verdadero
  Caption \<Salir
  Picture C:\Archivos de programa\Microsoft Visual

Studio\Common\Graphics\Icons\Arrows\

Point04.ico

Una vez establecidas las propiedades proceda a ingresar el c�digo que se indica a continuaci�n:

Objeto: FrmBurbuja Procedimiento: QueryUnload

#DEFINE vfpYesNo 4

#DEFINE vfpYes 6

#DEFINE vfpQuestion 32

If MessageBox("�Desea terminar la aplicaci�n?", ;

vfpQuestion + vfpYesNo, "Pregunta") = vfpYes Then

Release Thisform

Else

NoDefault

EndIf

Objeto: CmdAnnadir Procedimiento: Click

Thisform.LstNumero.AddItem(Thisform.TxtNumero.Value)

Thisform.TxtNumero.Value = ""

Thisform.TxtNumero.SetFocus

Objeto: CmdOrdenar Procedimiento: Click

nN = Thisform.LstNumero.ListCount

Dimension nA(nN) As Integer

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

Aplicaci�n N� 4

Desarrollar una aplicaci�n 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 (teor�a), el nombre del jefe de pr�ctica (laboratorio), as� como los horarios de teor�a y de laboratorio, respectivamente. El dise�o de la interfaz debe ser similar a la figura que se muestra:

 

Microsoft Visual FoxPro

GU�A DE LABORATORIO N� 5

Objetivos

Luego de completar este laboratorio, el estudiante ser� capaz de:

Consideraciones

Para el desarrollo del presente laboratorio Ud. deber� crear una carpeta C:\FundVFP\Lab5, para guardar sus trabajos correspondientes a este laboratorio.

Aplicaci�n N� 1

Este primer ejercicio consiste en escribir un m�todo 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 aplicaci�n, proceda a ubicar los siguientes controles en el formulario:

2 etiquetas

2 cajas de texto

3 botones de comando

En seguida proceda a establecer las propiedades seg�n 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 \<Aceptar
  Default .T.-Verdadero

Command2

  Nombre CmdLimpiar
  Caption \<Limpiar

Command3

  Nombre CmdSalir
  Cancel .T.-Verdadero
  Caption \<Salir

Una vez establecidas las propiedades de la interfaz, proceda a crear un nuevo m�todo, denominado CadInvertida. Para ello vaya al Men� Formulario y elija la opci�n Crear nuevo m�todo. Se debe presentar una ventana similar a la figura siguiente:

Ingrese los datos que se muestran y a continuaci�n dar click en el bot�n Agregar. Luego, dar doble click sobre el formulario y transcriba el siguiente c�digo:

Objeto: FrmPrueba_Cadena Procedimiento: CadInvertida

Parameters cCadena

nN = Len(Alltrim(cCadena))

Dimension cTemporal(nN)

For nI = 1 To nN

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

Aplicaci�n N� 2

Este ejercicio consiste en crear un m�todo 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 aplicaci�n proceda a crear un nuevo m�todo denominado NomApe. Luego transcriba el siguiente c�digo:

Objeto: FrmPrueba_NomApe Procedimiento: NomApe

Parameters cApeNom

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

Aplicaci�n N� 3

Para calcular el porcentaje de humedad de una muestra s�lida primero se pesa la muestra (), luego se le lleva a la estufa de 120 a 150 �C por un tiempo de 2 horas aproximadamente. A continuaci�n se deja enfriar la muestra y se pesa nuevamente (). Finalmente se realiza el siguiente c�lculo:

Nuestro trabajo consiste en crear un m�todo que permita realizar el c�lculo anterior.

Para el desarrollo de esta aplicaci�n proceder a cera un nuevo m�todo denominado Humedad. Luego ingrese el siguiente c�digo:

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

Aplicaci�n N� 4

Escriba un m�todo que reciba como par�metro la fecha de nacimiento del usuario. Debe retornar el signo zodiacal, el d�a de nacimiento y la cantidad de d�as vividos hasta la fecha actual. Utilice un formulario de prueba para verificar la funcionalidad del m�todo creado.

Sugerencia

Retorne un �nico valor como una cadena de caracteres, en la cual est�n incluidos los valores que se piden. A manera de ejemplo considere lo siguiente:

cRpta = cZodiaco + cDiaNacimiento + cDiasVividos + cFechaHoy

Return cRpta

 

Fin del Nivel I

 

Pr�ximamente

Nivel II : Programaci�n de aplicaciones de escritorio

Nivel III : Programaci�n de aplicaciones Cliente-Servidor


Copyright  DENVIR STUDIOS � 

Lima - Per�, 2002

Need a Web site? Get YourOwnWebsite.com FREE!
More than 1000 Websites templates, Unlimited Hosting Starting at $1.45
Powered by: Geocities.ws

1