Visual FoxPro para Principiantes
Por: Cesar A. Bustamante Gutierrez

 

Iniciando una sesión de trabajo

Haga clic en el botón de Inicio, elija Programas y luego Microsoft Visual FoxPro, luego el icono de Microsoft Visual FoxPro 5.0

La primera vez que inicie Visual FoxPro, el Administrador de proyectos creará un nuevo proyecto vacío de forma que pueda agregar elementos existentes al nuevo proyecto o bien crear elementos nuevos para incluirlos en el proyecto.

El Administrador de proyectos proporciona un método sencillo y visual de organizar y trabajar con tablas, archivos, bases de datos, informes, consultas y otros archivos cuando se administran tablas y bases de datos o se crea una aplicación.

Si prefiere puede iniciar su aplicación creando los archivos individualmente, para luego al final integrarlos en un Proyecto. Particularmente prefiero trabajar de esta forma, por la comodidad de trasladar mis archivos de un directorio a otro, al usar el Administrador de Proyectos por cada operación tenia que regenerar el Proyecto.

Una recomendación, cree un directorio para su aplicación y dentro de el, uno para las tablas, otro para los informes, formularios y recursos (archivos BMP, librerías, etc.), es importante mantener un orden, le ahorrara dolores de cabeza para ubicar un archivo, o diferenciar cuales son externos (que deben acompañar al ejecutable, como son las tablas, librerías, archivos BMP, etc)

Antes de abandonar Visual FoxPro, cierre los archivos abiertos (tablas), puede usar el comando CLOSE DATA, luego QUIT para salir, también puede usar la opción Salir, en el menú Archivo, o pulsar Alt F4. Para evitar dañar sus archivos nunca apague o resetee el computador antes de salir de Visual FoxPro.

Necesito Ayuda !!!

Para consultar la sintaxis de una instrucción, ilumine el nombre de la instrucción y luego pulse F1.

Si desea ubicar un tema especifico, pulse F1 y vaya a la pagina Contenido o haga la búsqueda del mismo a través de la pagina Buscar. Si a pesar de esto no tiene la respuesta a su problema, comuníquese conmigo vía correo electrónico a GrapPeru@Viabcp.com

Sugerencia: Extraiga de la ayuda la referencia de las siguientes funciones:

Funciones carácter:

RTRIM LTRIM ALLTRIM
RIGHT LEFT SUBSTR
UPPER LOWER LEN

Funciones fecha

DAY MONTH YEAR
DOW CDOW CMONTH

Otras funciones

CTOD DTOC DTOS
STR VAL RECNO
RECCOUNT FOUND EOF
BOF    

 

Tablas y Base de Datos

Primero hagamos un definición rápida de Tabla y Base de Datos:

  • Tabla: Conjunto de datos almacenados en un archivo DBF, si una tabla no forma parte de una Base de Datos se le denomina Tabla Libre.
  • Base de Datos: Conjunto de Tablas relacionadas

Para los ejemplos iremos a tomar un caso, asumiremos la existencia de la empresa ABC importaciones. Nuestro trabajo consistirá y llevar el control de las Ventas así como de la Existencia de Almacén. Realizando una rápida inspección concluimos que seran suficientes controlar los datos siguientes:

Numero de Factura
Fecha de Venta
Nombre del Cliente
Numero de RUC
Detalle del Articulo
Precio Unitario
Numero de unidades
Subtotal
IGV
Total de la Factura

Vamos a valernos del proceso de Normalización fin de obtener el modelo de base de datos mas adecuado (si desea revisar este concepto puede consultar FoxPro programación en Base a Eventos del mismo autor). El resultado será:

CLIENTES.DBF

ClieCod C 3
ClieNom C 30
ClieDir C 40
ClieRUC C 8

ARTICULO.DBF

ArtCod C 3
ArtDet C 40
ArtPre N 7      2
ArtStk N 5

FACTURAS.DBF

NumFac C 6
FecVen F 8
ClieCod C 3
ArtCod C 3
Cant N 5
PreUni N 7     2


Creando Tablas libres

Primero establezcamos la unidad de trabajo

SET DEFAULT TO c:\aplica\tablas

Ahora digite:

CREATE Articulo

Luego introducimos los campos:

La lista de campos disponibles es la siguiente:

Tipo Descripción Ejemplo
Carácter Texto alfanumérico La dirección de un cliente
Monetario Unidades monetarias Precio de compra
Numérico Números enteros o decimales de hasta 20 dígitos Cantidad de artículos pedidos
Flotante Igual que Numeric  
Fecha Día, mes y año, el formato puede depender del estado del comando SET DATE Fecha en que se realizó un pedido
FechaHora datos cronológicos que constan de día, mes, año, horas, minutos y segundos Fecha y hora en que un empleado llegó al trabajo
Doble Puede guardar un valor numérico de signo flotante de doble precisión Datos procedentes de experimentos que requieren un elevado grado de precisión
Entero Valores numéricos no decimales (números enteros) Número de línea de un pedido
Lógico Verdadero o Falso Si se ha completado o no un pedido
Memo Texto alfanumérico de longitud indeterminada, similar a un procesador de texto Notas de un registro telefónico sobre las llamadas
General Permite guardar datos tipo OLE, por ejemplo imágenes, sonidos u otros creados por una aplicación diferente. Hoja de cálculo de Excel, un control ActiveX
Carácter

(binario)

Igual que Character, pero los valores no se traducen cuando cambia la tabla de códigos Las contraseñas de usuario almacenadas en una tabla y usadas en distintos países
Memo (binario) Igual que Memo, pero los valores no se traducen cuando cambia la tabla de códigos Un archivo de comandos de inicio de sesión empleado en distintos países

Note que bajo esta misma caja de dialogo es posible indexar, este tema lo estaremos tratando mas adelante.

La tercera pagina Tabla muestra solo detalles acerca de la tabla:

Ahora haga click en Aceptar, para dar por valida a las modificaciones que se hayan efectuado, a continuación le preguntara si desea ingresar registros, puede responder No, entonces habrá creado solo la estructura, si responde Si, se abrirá un dialogo para el ingreso de registros, esta tarea deberá finalizar cuando usted pulse Ctrl-W.

Siga este mismo procedimiento para crear las tablas Clientes.DBF y Factura.DBF.

En conclusión, habremos creado tres tablas libres. La definición de la estructura y la creación de índices se hace bajo una misma caja de dialogo, si la estructura ya fue creada puede modificarla digitando:

USE Articulo
MODIFY STRUCTURE

Si desea continuar ingresando mas registro le sugiero que use el comando Browse, le mostrara la ventana Examinar:

USE Articulo
BROWSE

La ventaja de usar el comando Browse con respecto a Edit, es que le permitirá visualizar varios registros a la vez, para las operaciones de mantenimiento vaya al menú Examinar, en ella encontrara las opciones agregar (Ctrl-Y) y marcar (Ctrl-T) registros

 

Proceso de Indexación
Por: Cesar A. Bustamante Gtz.

Cuando haya creado una tabla, puede ordenar los datos para acelerar la obtención de datos mediante índices. Con los índices, puede procesar rápidamente los registros para mostrarlos, consultarlos o imprimir. También puede seleccionar registros, controlar si se introducen valores duplicados en un campo y admitir relaciones entre tablas.

VFP ofrece cuatro tipos de índice diferentes, cada uno con características predeterminadas:

  • Principal
  • Candidato
  • Normal
  • Único

Los índices principales aseguran que sólo se introducen valores únicos en un campo y determinan el orden en el que se procesan los registros. Puede crear un índice principal para cada tabla si la tabla está incluida en la base de datos. Si la tabla ya tiene un índice principal, agregue un índice candidato. Este índice es el que define el campo clave

Los índices candidatos también imponen valores únicos y determinan en qué orden se procesan los registros, como un índice primario. Puede tener varios índices candidatos por tabla en bases de datos y en tablas libres.

Los índices normales determinan el orden en que se procesan los registros pero permite que se introduzcan valores duplicados en un campo. Puede agregar más de un índice normal a una tabla.

Por compatibilidad con versiones anteriores, también puede crear un índice único que selecciona y ordena un subconjunto de registros según la primera aparición de un valor en el campo que especifique. Si quiere seleccionar registros de esta manera, es posible que quiera crear una consulta o una vista en lugar de ello.

Por ejemplo si en este momento necesitáramos una lista de precios probablemente la querríamos en orden alfabético y en otras ocasiones según el código, solucionaremos ambos casos creando dos índices:

USE ARTICULO
MODIFY STRUCTURE

Si desea la lista de precios en orden alfabético, haría:

USE ARTICULO
SET ORDER TO TAG detalle
LIST artdes, artpre TO PRINT

Y si lo desea ordenado según el código:

USE ARTICULO
SET ORDER TO TAG artcod
LIST artcod, artdes, artpre TO PRINT

Usaremos el comando SET ORDER para seleccionar una u otra etiqueta.

 

Relación entre Tablas

Relación temporal

Es la que consigue usando el comando SET RELATION, su mismo nombre lo indica la relación se efectúa solo por un instante, al dar la orden CLOSE DATA se pedrera inmediatamente.

Ejemplo:

Las tablas con las que Facturas.dbf se ha de relacionar deben estar indexadas por el campo en común, entonces hay que ubicarlas en diferentes arreas de trabajo, Facturas.dbf debe ser la tabla maestra.

USE ARTICULO ORDER TAG artcod IN 1
USE CLIENTES ORDER TAG cliecod IN 2
USE FACTURAS IN 3
SELECT FACTURAS
SET RELATION TO ARTCOD INTO ARTICULO
SET RELATION TO CLIECOD INTO CLIENTES ADDITIVE

El termino ADDITIVE permite agregar la relación hecha a Clientes con la de Articulo, si no la usamos la reemplazaría.

Para usar los campos de las tablas relacionadas deberá anteponer al campo el alias de la tabla origen de la forma siguiente:

BROWSE FIELD clientes.clienom, factura.numfac

o

LIST factura.numfac, articulo.artdet, factura.cant*factura.preuni

 

Relación permanente

se consigue al construir la base de datos, este tipo de relación es persistente.

 

Creación de la Base de Datos

La Base de Datos le proporcionara un entorno de trabajo donde podrá almacenar una serie de tablas, establecer relaciones entre ellas, y establecer propiedades y reglas de validación de datos que controlan cómo funcionan conjuntamente las tablas relacionadas. Además permite agregar vistas y conexiones a una base de datos para actualizar registros o expandir el acceso a datos remotos. Una base de datos se almacena como un archivo con la extensión .DBC.

Preparando las tablas

A las tablas Clientes y Articulo las llamaremos Hijas y a la Tabla Factura Padre, resulta que las tablas hijas al contener registros únicos las debe indexar como Principales o Candidatos, por el campo clave por cierto, mientras que la tabla Padre deberá contener tantos índices como tablas a indexar haya, para nuestro caso dos índices uno por Cliecod y otro por Artcod, deben ser normales, porque un cliente puede comprar mas de una vez, así como un articulo puede ser vendido a varios clientes.

Iniciemos abriendo un nuevo archivo de Base de Datos, en ella hagamos un clic del boton derecho y elijamos Agregar tabla, agregue la tabla Clientes y luego las otras dos.

Si las tablas no las ha indexado, puede hacerlas desde el Generador de Base de Datos, para esto haga click del botón derecho sobre el Generador y elija la opcion Modificar en el menú rápido.

Para crear una relación entre tablas, arrastre desde el índice de una tabla hasta el índice coincidente de otra tabla.

Para modificar una relación entre tablas, haga doble clic en la línea de relación entre las tablas y, a continuación, seleccione las opciones apropiadas en el cuadro de diálogo Editar relación, o seleccione la línea de relación y bórrela pulsando Del y luego vuelva a relacionar.

 

La Vista
Por: Cesar A. Bustamante Gtz.

 Una vista nos permitirá extraer un conjunto de registros de una tabla, y poder hacer los cambios que se requiera sobre ellos para luego enviar las actualizaciones a las tablas de origen.

Abra la Base de Datos VENTAS.DBC, puede usar la Barra de Menús o sino la Ventana de Comandos, para este ultimo caso puede usar el comando:

OPEN DATABASE Ventas

Para acceder al Generador de Base de Datos en modo de edición y luego poder crear la Vista anote el comando:

MODIFY DATABASE

Para crear la vista, estando el puntero del mouse sobre el Generador de base de datos, haga click en el botón derecho y en el menú emergente, elija la opción Nueva Vista Local (también puede usar la Caja de Herramientas )

Aquí puede elegir entre usar el Asistente que le llevará de la mano en el proceso de construcción de la Vista o Nueva Vista en la que usted tendrá el control de creación de esta, escoja esta última.

De inmediato se muestra el Generador de Vistas, y antes de que el cursor se ubique en ella se abrirá un cuadro de diálogo que le pedirá que seleccione las tablas o vistas a usar. Agregue las tablas anteriormente creadas

Si por alguna razón luego decide agregar otra tabla, sólo tiene que hacer click derecho y elegir la opción Agregar…

Pasemos a seleccionar los campos que nos interesa extraer, haga click en la página Campos y seleccione los campos que le interese

Ahora señalemos la manera como deba mostrarse los datos extraídos, haga click en la pagina Ordenar por, e indique el orden ascendente por algun campo

Ya es hora de ver resultados, haga click derecho sobre el Generador y en el menú emergente elija Ejecutar vista…

Vamos a averiguar, cuales fueron las ventas del día de hoy.

Ubíquese en la página Filtro y a la altura de Nombre del campo haga click, se mostrará un menú emergente, en ella ubique el campo fecha de venta. Luego verifique que el operador sea "=", el dato que servirá de comparación la anotará a la altura de Ejemplo, en este caso la función DATE():

Veamos el resultado de la extracción, haga click derecho

Para terminar pulse Ctrl-W, asígnele el nombre "Articulos vendidos", note que una vista se graba como parte de la Base de Datos, eso supone que si desea usar la vista será suficiente con abrir la Base de Datos.

Operadores

= Especifica que los campos tienen el mismo valor.
Like Especifica que el campo debe incluir caracteres que coincidan con los caracteres del texto de ejemplo. (Cliente.pais Like P coincidiría con registros de Perú, Panamá y Paraguay.)
== Especifica que el campo debe coincidir con el texto de ejemplo, carácter a carácter.
> Especifica que el campo debe ser más que el valor en el texto de ejemplo
< Especifica que el campo debe ser menos que el valor en el texto de ejemplo.
>= Especifica que el campo debe ser mayor o igual que el valor en el texto de ejemplo.
<= Especifica que el campo debe ser menor o igual que el valor en el texto de ejemplo.
Is NULL Especifica que el campo debe contener un valor nulo.
Between Especifica que el campo debe ser mayor o igual que el valor inferior y menor o igual que el valor superior del texto de ejemplo. Los dos valores del texto de ejemplo se delimitan con comas. (Facturas.fecha Between 05/10/98,05/12/98 coincidiría con registros del 10, 11 y 12 de mayo de 1998).
In Especifica que el campo debe coincidir con uno de los diversos ejemplos delimitados con comas en el texto de ejemplo.

Actualización de datos

Cualquier cambio que se haga en los datos presentados en la vista pueden actualizar los datos en cada tabla origen, esta es la principal diferencia de una Vista respecto a una Consulta, esto nos permitirá usar la Vista para a partir de ella construir Informes y asociar la vista como origen de datos para controles de un Formulario (el caso de los cuadros de lista, cuadros combinados y cuadriculas).

Si desea que todos los campos de esta tabla sean actualizables haga click en el botón Actualizar todos, caso contrario marque las casillas de la columna con figura de lápiz.

 

Creación de Consultas

Una consulta la usaremos para obtener resultados rápidos y derivarlos a un destino preestablecido.

Para construir una consulta vaya al menú Archivo, opción Nuevo y luego señalar en el cuadro de diálogo Consulta

Una vez que haya decidido qué información necesita buscar, agregue las tablas y/o vistas donde se encuentren almacenadas

Luego en la página Campos, seleccione los campos de interés, especifique un orden y una condición si es preciso, note que estas acciones son similares a las realizadas en el Generador de vistas, la diferencia en la interfaz radica en la ausencia de la página Criterios de actualización y en una opción llamada Configuración de la salida… de un menú emergente que a continuación vamos a describir.

Haga click del botón derecho en el Generador de consultas y en el menú emergente escoja la opción Configuración de salida…, se presentará el siguiente cuadro de diálogo señalando los posibles destinos: Examinar, Cursor, Tabla, Grafico, Pantalla, Informe, Etiqueta.

Parámetros en Vistas y Consultas

Hasta donde hemos avanzado, las expresiones usadas en la condición han sido estáticas, por lo general se deseará que esta sea más flexible en el sentido de que la expresión pueda anotarse en tiempo de ejecución, esto se logra mediante el uso de parámetros.

Ahora pasamos a definir los parámetros, ubique en el menú Vistas la opción Parámetros de vista, al momento le mostrará un cuadro de diálogo:

En la columna Nombre anote el nombre del parámetro y en la columna Tipo, el tipo de dato que esta va a guardar.

Ahora nos dirigimos a la página Filtro, en la columna Ejemplo, anotamos el nombre del parámetro anteponiendole el símbolo ?:

Si en este momento damos la orden de ejecución, se mostrará un cuadro de diálogo por cada ?, de modo que en tiempo de ejecución se pueda asignar un valor al parámetro, nos es necesario anotar el dato entre delimitadores, puesto que el tipo de dato ya fue definido en la ventana Parámetros de vista.

Mayores detalles acerca del uso de instrucciones SQL lo hallara en el texto "Desarrollo de Aplicaciones en Visual FoxPro".

 

Iniciando un nuevo Informe
Por: Cesar A. Bustamante Gtz.

Iniciemos señalando en el menú Archivo, la opción Nuevo… Informe y haciendo click en el botón Nuevo. Se presentará el Diseñador de informes en blanco, por defecto hallará tres bandas en ella: Encabezado, Detalle y Pie de página

Antes de iniciar con el diseño del Informe será conveniente preparar la página (es decir el área sobre el cual vamos a realizar el diseño), así que en el menú Archivo elija la opción Preparar pagina:

En el cuadro de diálogo que despliega, señale el número de columnas que presentará nuestro informe, por defecto es sólo uno, si fueran dos ó más, dispone de dos modos de distribución de los registros, los que están señalados en los botones de comando con el titulo Orden al imprimir .

Ahora proceda a definir el entorno de datos

Haga click del botón derecho sobre el Diseñador de informes y en el menú emergente haga click en Entorno de datos

Una forma fácil de incrustar campos en el Diseñador, es arrastrándolos desde la ventana Entorno de datos, sitúe los campos clienom, cliedir y clietfn en la banda Detalle, para colocar el título así como el nombre de las columnas, haga click en el botón etiqueta y luego click en el diseñador a continuación no tiene que hacer mas que escribir el texto.

En cuanto a los gráficos, estos deben ser mapa de bits o en su caso el contenido de un campo General, en nuestro ejemplo vamos a incluir un logotipo el archivo se llama LOGO.BMP.

El procedimiento es el siguiente, haga click el botón OLE luego haciendo la operación de arrastre sobre el Diseñador extienda el área que esta va a ocupar, al soltar el botón del mouse se presentará el siguiente cuadro de diálogo:

Para el caso de un campo General solo tienen que indicar el nombre del campo en el grupo de opciones titulado como Origen de la imagen.

Diseñando un Informe a partir de una Vista

El uso de vistas resulta sumamente útil cuando un informe se tiene que diseñar a partir de múltiples tablas, por lo estudiado en el capitulo anterior se sabe ya que las vistas son un extracto de las tablas de la Base de datos.

Lo unico que tiene que hacer es agregar la vista construida en la Ventana Entorno de Datos

Haciendo cálculos con registros

Usualmente se requiere obtener resúmenes a partir de los datos del informe, conseguiremos hacer cálculos mediante el uso de Variables, iniciemos definiéndolas.

Vaya al menú Informe y haga click en la opción variables del informe…

En ella defina las variables y el tipo de operación que deba hacerse para obtener el valor que se asignarán a estas, por ejemplo si deseamos obtener un resumen de ventas por mes, partamos por definir la variable que guarde las ventas del mes de enero, en la lista Variables anote TotEne y en Almacenar valor, construya la expresión:

IIF(MONTH(fecven = 1, cant*preuni, 0)

El valor inicial debe ser cero y el tipo de cálculo una Suma.

Esta misma acción repita para el resto de variables.

Necesitaremos la presencia de la banda Resumen, así que vaya al menú Informes, opción Titulo/Resumen, y marque Banda resumen. En el Diseñador de informes se mostrará al final, amplíe el área de esta y coloque el texto como se muestra en la figura, use el botón Campo de la Barra de herramientas Controles de informes para insertar las Variables definidas anteriormente (las hallara en la lista variables)

Puede adicionar la banda Titulo a fin de obtener una carátula para nuestro informe. Una última sugerencia si las Variables las intenta usar en otras bandas es probable que obtenga valores erróneos, puesto que el valor de estas se obtienen en tiempo de ejecución.

 

Diseño de Formularios
Por: Cesar A. Bustamante Gtz.

Al igual que en el caso de los Informes, primero debemos preparar nuestra Base de Datos, para el presente ejercicio usaremos VENTAS.DBC

Ahora ingrese al editor de Formularios, puede hacerlo desde la Barra de Menús con la secuencia Archivo, Nuevo... Formulario o desde la Ventana de Comandos con la instrucción:

CREATE FORM <Archivo>

Si ya está creado y quiere modificarlo puede usar:

MODIFY FORM <Archivo>

Proceda a preparar el Entorno de Datos, haga click en el botón derecho y señale Entorno de Datos, luego agregue la tabla ARTICULO.

En la barra de menú seleccione la opción Formulario y ubique: Formulario rápido:

Observará luego la ejecución del Asistente de Formularios, el cual le ayudará a construir su formulario, en la ficha Tablas, seleccione los campos que usará en el diseño: ArtCod, ArtNom ArtStk y ArtPre,

Luego en la ficha Estilo elija el estilo o modelo de Formulario que mas le agrade, finalmente seleccione Aceptar, como resultado verá en el formulario a manera de ficha los campos anteriormente seleccionados.

Cada uno de los elementos que aparece en el Formulario constituye un objeto incluso el mismo Formulario, la apariencia de cada uno de ellos usted la puede mejorar alterando las Propiedades de cada objeto (Programación en tiempo de diseño), lo cual será el siguiente paso a realizar. Para mejorar el diseño de su Formulario arrastre los objetos y ubíquelos en la posición que a su parecer es la más adecuada.

Para manipular las propiedades de los objetos haga click en el botón derecho del mouse y en el menú rápido elija la opción Propiedades, como respuesta se mostrará pantalla la Ventana Propiedades.

En la parte superior se muestra una lista desplegable cuyo contenido constituye la relación de objetos ubique, ubique el objeto Tipo Etiqueta denominado artcod y observe sus propiedades notará una propiedad denominada Caption cuyo contenido guarda el nombre del campo, la cual se muestra en un primer momento como el encabezado del campo. Renovaremos el valor de las propiedades de los objetos siguientes:

Nombre del Objeto Propiedad Valor ha asignar
Form1 BackColor 0,0,255
Caption Ingreso de Artículos
Lblartcod Name Artcod
Caption Codigo
FontName Arial
FontSize 14
ForeColor 0,255,0
Lblartnom Name Artnom
Caption Descripción
FontName Arial
FontSize 14
ForeColor 0,255,0
Lblartpre Name Artpre
Caption Precio
FontName Arial
FontSize 14
ForeColor 0,255,0

Vamos a agregar un objeto que nos permita desplazarnos a través de los diferentes registros, para ésto será necesario llamar a una libreria de clases, Haga click en el control Agregar clases de la Barra de Herramientas y seleccione Agregar en el menú rápido luego en el subdirectorio Wizard ubique el archivo WIZSTYLE.VCX y selecciónelo, como respuesta notará que a la Caja de Herramientas se agregará cierta de controles, ubique el control que titula PicBtns, luego en el Formulario usando el mouse delimite el área en el cual se ha de mostrar

Finalmente ejecute el formulario, haga click del botón derecho y elija Ejecutar, tambien puede usar desde la Ventana de Comandos la órden:

DO FORM <NombreFormulario>

 

Otro ejemplo

Abra un archivo de formulario y sitúe en el, una etiqueta, un cuadro de texto y dos botones de comando:

Asignele un nombre a cada uno de los objetos (propiedad name):

Objeto Nombre del objeto
Form1

Label1

Text1

Command1

Command2

frmTimer

lblMensaje

txtMensaje

cmdAplicar

cmdSalir

De aquí en adelante a los objetos nos referiremos a través de su nuevo nombre. Ahora vamos a cambiar el titulo de los objetos lblMensaje, cmdAplicar y cmdSalir, para esto usaremos la propiedad Caption, ubique el objeto lblMensaje y asigne el titulo "Anote un mensaje":

Use la misma propiedad para asignar el titulo "Aplicar" y "Salir" a los objetos cmdAplicar y cmdSalir

Hasta aquí con la fase en tiempo de diseño ahora pasamos a la fase en tiempo de ejecución. Identifiquemos algunos eventos. Cuando se deba hacer click sobre el botón Aplicar, llevaremos el mensaje anotado en txtMensaje como titulo del formulario, haga doble click sobre el botón Aplicar o click derecho y elija Código

El evento a programar será Click, pues esta es la acción que hace el usuario al encontrar un botón, el evento Click responde también cuando se pulsar Enter o Barra Espaciadora sobre un control. Verifique en la ventana que el procedimiento a asociar será para Click, y en ella anote:

THISFORM.Caption = THISFORM.txtMensaje.Value
THISFORM.Refresh

En cuando al botón salir asocie el siguiente código:

RELEASE THISFORM

Los botones Aceptar y Salir deben responder a las teclas Enter y Esc, como se hace esto?, pues para Aceptar ponga en .T. la propiedad Default y para Salir ponga en .T. la propiedad Cancel.

Ahora, desea que sus botones tengan esos mensajes descriptivos en color amarillo al acercarse el puntero del mouse?, los llamaremos TipText, anote el texto "El mensaje se llevara como titulo de la ventana" en la propiedad ToolTipText del boton Aceptar y el texto "Cerrar el Formulario" para el boton Salir, para que los TipText se muestren es necesario que ponga en .T. la propiedad ShowTipText del formulario.

Ahora ejecute el formulario, puede hacer click del botón derecho del mouse y elegir Ejecutar, le pedirá un nombre para su archivo, llámelo "Primero". También puede pulsar Ctrl-W asignarle un nombre y desde la ventana de comandos ejecutar el formulario:

DO FORM primero

 

Derechos de Copia Reservados
Extracto del libro "Aprenda a programar con Visual FoxPro"
de Cesar A. Bustamante Gutierrez - GrapPeru Editores

 

[ic_home.gif (115 bytes) Página principal] [ic_mail.gif (110 bytes) E-Mail]
@Derechos Reservados- GrapPeru SAC - Lima, Marzo del 2001

GrapPeru SAC
Tecnología al servicio del hombre

gpmini.gif (2348 bytes)
www.GrapPeru.com