martes, 13 de abril de 2010

BARRAS DE HERRAMIENTAS FORMULARIO ESCRITORIO

Lo necesario

Para crear un formulario SDI, Visual FoxPro cuenta con un tipo de formulario llamado "formulario de nivel superior". Estos formularios aparecen como ventanas independientes sobre el escritorio de Windows y también aparecen en la barra de tareas de Windows. Para lograr un formulario de nivel superior, solo debemos configurar la propiedad ShowWindow = 2 (Como formulario de nivel superior).

Para crear la barra de herramientas contenida en un formulario de nivel superior, debemos indicar esto configurando la propiedad ShowWindow = 1 (En formulario de nivel superior)

La clase ToolBar

Vamos a definir nuestra barra de herramientas programáticamente a partir de la clase ToolBar. Cuando se crea una barra de herramientas, VFP coloca los controles de izquierda a derecha en el orden que aparecen en la definición de la clase.

Escribiremos en los métodos Clicks de los controles añadidos, un código simple como un MESSAGEBOX("Hola !") para mostrar el funcionamiento de cada control dentro de la barra de tareas.

El formulario

En formulario del ejemplo vamos a incorporar varios botones de comandos: uno crear la barra de herramientas, cuatro para acoplar la barra de herramientas en las distintas posiciones permitidas, y otro para desacoplar la barra de herramientas.

Vamos a crear la propiedad personalizada ThisForm.oMiToolBar para crear y mantener la barra de herramientas dentro del alcance del formulario.

Una vez ejecutado el código mostrado mas abajo, obtendremos un formulario como el de la siguiente figura.

El código

En el siguiente código está las definiciones de nuestras clases MiForm y MiToolBar.

PUBLIC goMiForm
goMiForm = CREATEOBJECT("MiForm")
goMiForm.SHOW(1)
RETURN
*--
*-- Clase MiForm
*--
DEFINE CLASS MiForm AS FORM
*-- Propiedades
SHOWWINDOW = 2 && Formulario de nivel superior
AUTOCENTER = .T.
ALWAYSONTOP = .T.
CAPTION = "Ejemplo de ToolBar en un formulario SDI"
NAME = "MiForm"
*-- Objetos
ADD OBJECT cmd1 AS COMMANDBUTTON WITH ;
TOP = 14, LEFT = 120, HEIGHT = 24, WIDTH = 120, ;
CAPTION = "Crear ToolBar", NAME = "cmd1"
ADD OBJECT cmd2 AS COMMANDBUTTON WITH ;
TOP = 50, LEFT = 120, HEIGHT = 24, WIDTH = 120, ;
CAPTION = "Acoplar arriba", NAME = "cmd2"
ADD OBJECT cmd3 AS COMMANDBUTTON WITH ;
TOP = 74, LEFT = 60, HEIGHT = 24, WIDTH = 120, ;
CAPTION = "Acoplar izquierda", NAME = "cmd3"
ADD OBJECT cmd4 AS COMMANDBUTTON WITH ;
TOP = 74, LEFT = 180, HEIGHT = 24, WIDTH = 120, ;
CAPTION = "Acoplar derecha", NAME = "cmd4"
ADD OBJECT cmd5 AS COMMANDBUTTON WITH ;
TOP = 98, LEFT = 120, HEIGHT = 24, WIDTH = 120, ;
CAPTION = "Acoplar abajo", NAME = "cmd5"
ADD OBJECT cmd6 AS COMMANDBUTTON WITH ;
TOP = 134, LEFT = 120, HEIGHT = 24, WIDTH = 120, ;
CAPTION = "Desacoplar", NAME = "cmd6"
ADD OBJECT cmdSalir AS COMMANDBUTTON WITH ;
TOP = 182, LEFT = 120, HEIGHT = 24, WIDTH = 120, ;
CAPTION = "Salir", NAME = "cmdSalir"
*-- Metodos
PROCEDURE cmd1.CLICK
IF NOT PEMSTATUS(THISFORM,"oMiToolBar",5)
THISFORM.ADDPROPERTY("oMiToolBar",NULL)
ENDIF
IF ISNULL(THISFORM.oMiToolBar)
THISFORM.oMiToolBar = CREATEOBJECT("MiToolBar")
THISFORM.oMiToolBar.SHOW
ENDIF
ENDPROC
PROCEDURE cmd2.CLICK
IF PEMSTATUS(THISFORM,"oMiToolBar",5) ;
AND NOT ISNULL(THISFORM.oMiToolBar)
THISFORM.oMiToolBar.DOCK(0)
ENDIF
ENDPROC
PROCEDURE cmd3.CLICK
IF PEMSTATUS(THISFORM,"oMiToolBar",5) ;
AND NOT ISNULL(THISFORM.oMiToolBar)
THISFORM.oMiToolBar.DOCK(1)
ENDIF
ENDPROC
PROCEDURE cmd4.CLICK
IF PEMSTATUS(THISFORM,"oMiToolBar",5) ;
AND NOT ISNULL(THISFORM.oMiToolBar)
THISFORM.oMiToolBar.DOCK(2)
ENDIF
ENDPROC
PROCEDURE cmd5.CLICK
IF PEMSTATUS(THISFORM,"oMiToolBar",5) ;
AND NOT ISNULL(THISFORM.oMiToolBar)
THISFORM.oMiToolBar.DOCK(3)
ENDIF
ENDPROC
PROCEDURE cmd6.CLICK
IF PEMSTATUS(THISFORM,"oMiToolBar",5) ;
AND NOT ISNULL(THISFORM.oMiToolBar)
THISFORM.oMiToolBar.DOCK(-1)
ENDIF
ENDPROC
PROCEDURE cmdSalir.CLICK
THISFORM.RELEASE
ENDPROC
ENDDEFINE
*--
*-- Clase MiToolBar
*--
DEFINE CLASS MiToolBar AS TOOLBAR
*-- Propiedades
CAPTION = "Saludo"
SHOWTIPS = .T.
SHOWWINDOW = 1 && En formulario de nivel superior
NAME = "MiToolBar"
*-- Objetos
ADD OBJECT cmdEsp AS COMMANDBUTTON WITH ;
HEIGHT = 24, WIDTH = 32, ;
PICTURE = HOME(1) + "graphics\icons\flags\flgspain.ico", ;
CAPTION = "", NAME = "cmdEsp", TOOLTIPTEXT = "Saludo"
ADD OBJECT sep1 AS SEPARATOR WITH ;
NAME = "sep1"
ADD OBJECT cmdBra AS COMMANDBUTTON WITH ;
HEIGHT = 24, WIDTH = 32, ;
PICTURE = HOME(1) + "graphics\icons\flags\flgbrazl.ico", ;
CAPTION = "", NAME = "cmdBra", TOOLTIPTEXT = "Saudação"
ADD OBJECT cmdUSA AS COMMANDBUTTON WITH ;
HEIGHT = 24, WIDTH = 32, ;
PICTURE = HOME(1) + "graphics\icons\flags\flgusa02.ico", ;
CAPTION = "", NAME = "cmdUSA", TOOLTIPTEXT = "Greet"
ADD OBJECT cmdGer AS COMMANDBUTTON WITH ;
HEIGHT = 24, WIDTH = 32, ;
PICTURE = HOME(1) + "graphics\icons\flags\flggerm.ico", ;
CAPTION = "", NAME = "cmdGer", TOOLTIPTEXT = "Grüß"
*-- Metodos
PROCEDURE cmdEsp.CLICK
MESSAGEBOX("Hola !", 64, "Saludo")
ENDPROC
PROCEDURE cmdBra.CLICK
MESSAGEBOX("Olá !", 64, "Saudação")
ENDPROC
PROCEDURE cmdUSA.CLICK
MESSAGEBOX("Hello !", 64, "Greet")
ENDPROC
PROCEDURE cmdGer.CLICK
MESSAGEBOX("Hallo !", 64, "Grüß")
ENDPROC
ENDDEFINE

HERRAMIENTAS PARA CREAR APLICACIONES DE BASE DE DATOS

Visual FoxPro ofrece a los desarrolladores un conjunto de herramientas para crear aplicaciones de bases de datos para el escritorio, entornos cliente/servidor, tablet PC o para la Web.

Entre sus características se pueden enumerar:

* Capacidades poderosas y muy veloces para el manejo de datos nativos y remotos.
* Flexibilidad para crear todo tipo de soluciones de bases de datos.
* Lenguaje de Programación Orientado a objetos.
* Utilización de Sentencias SQL en forma nativa.
* Poderoso manejo de vistas, cursores y control completo de estructuras relacionales.
* Su propio gestor de base de datos incorporado. Sin embargo, también puede conectarse con servidores de base de datos, tales como Oracle, Microsoft SQL Server o MySQL.
* Cuenta con un motor de generación de informes renovado y muy flexible para soluciones más robustas.
* Desde la versión 9.0, amplio soporte de XML, tanto como fuente de datos (por ej., servicios Web basados en XML) como por generar reports en formato XML.
* Desde la versión 7.0, soporte de la tecnología IntelliSense de Microsoft

La última versión liberada es la 9.0.

Se planeó inicialmente la salida de una nueva versión llamada 'Sedna', la cual pretendía ser un poderoso y completo lenguaje interactuando aún más con VisualStudio.net, SQLServer2005, SQLExpress2005 y Office12, teniendo a su vez soporte para Windows Vista. Posteriormente se supo que no habrá una próxima versión (Mensaje a la comunidad VFP). Microsoft ha cancelado su desarrollo y lanzó lo que han hecho hasta ahora como add-ons en conjunto con el service pack 2 ambos por el momento en versión Beta (SP2 y "Sedna" - Beta). Igualmente, según las políticas de soporte de Microsoft, éste continuará dando soporte al producto hasta el año 2015.

Hay un movimiento MasFoxPro que está haciendo presión para que Microsoft continúe o deje el Visual FoxPro como código abierto para que otra gente pueda seguir evolucionándolo.

La versión 9.0 de Visual FoxPro cuenta con el SP1 y el (más reciente) SP2 (en inglés) en los que hay algunas nuevas características y especialmente brindan estabilidad al producto.

COMO CREAR LAS TABLAS