Visual FoxPro para Principiantes

Tema en 'Foro Libre' iniciado por SoulOfHell, 6 Dic 2008.

  1. Sou

    SoulOfHell
    Expand Collapse
    Sargento

    Mensajes:
    303
    Me Gusta recibidos:
    0
    Visual FoxPro para Principiantes

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

    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

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

    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

    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



     

Compartir esta página