Nuevo FiveForm.prg en FWH 12.07

Nuevo FiveForm.prg en FWH 12.07

Postby Antonio Linares » Sat Jul 28, 2012 2:06 pm

Image

Image

samples\FiveForm.prg es un diseñador de formularios (ventanas, diálogos) para FWH que automaticamente
genera el código fuente PRG y permite el salvar y cargar formularios a disco. Es un trabajo en desarrollo que iremos completando conforme vayamos recibiendo vuestra información de pruebas, peticiones, etc :-)

FiveForm.prg necesita FWH 12.07 puesto que hemos implementado nuevos métodos GenLocals() y cGenPrg() para que funcione correctamente. Tambien FiveWin.ch ha sido modificado para que todos los controles automaticamente guarden sus nombres de variables en la DATA cVarName.

Por ejemplo, si haceis: @ ..., ... GET oGet1 VAR ...

oGet1:cVarName automaticamente contendrá el valor "oGet1"
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41324
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Nuevo FiveForm.prg en FWH 12.07

Postby Antonio Linares » Sat Jul 28, 2012 2:42 pm

Este es un ejemplo de un cñodigo fuente automaticamente generado desde FiveForm.prg:

Code: Select all  Expand view
#include "FiveWin.ch"

//----------------------------------------------------------------------------//

function BuildWindow()

   local oForm1, oSay1, oGet1, cGet1 := Space( 20 ), oBtn1, oBtn2, oChk1, lChk1 := .F.

   DEFINE WINDOW oForm1 TITLE "Form1" ;
      FROM  21,  61 TO  36, 116

   @  48,  80 SAY oSay1 PROMPT "Say" SIZE  56,  16 PIXEL OF oForm1

   @  48, 160 GET oGet1 VAR cGet1 SIZE 120,  24 PIXEL OF oForm1

   @ 136, 72 BUTTON oBtn1 PROMPT "Button" ;
      SIZE 82, 26 PIXEL OF oForm1 ;
      ACTION MsgInfo( "Not defined yet!" )

   @ 136, 192 BUTTON oBtn2 PROMPT "Button" ;
      SIZE 82, 26 PIXEL OF oForm1 ;
      ACTION MsgInfo( "Not defined yet!" )

   @ 96, 136 CHECKBOX oChk1 VAR lChk1 PROMPT "Checkbox" SIZE 83, 27 PIXEL OF oForm1

   ACTIVATE WINDOW oForm1

return oForm1

//----------------------------------------------------------------------------//
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41324
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Nuevo FiveForm.prg en FWH 12.07

Postby elvira » Sun Jul 29, 2012 12:44 pm

Antonio,

¿Será FW 12.07 compatible con esta sintáxis?

@ 3,75 SAY "&Buscar por:" OF oDlg SIZE 60,10 PIXEL
@ 2,135 GET cGet OF oDlg SIZE 200,10 PIXEL


¿O tendremos que cambiarlo a:?



@ 3,75 SAY oSay PROMPT "&Buscar por:" OF oDlg SIZE 60,10 PIXEL
@ 2,135 GET cGet VAR cMyVar OF oDlg SIZE 200,10 PIXEL



Por favor, es necesario respetar la compatiblidad con la forma de trabajo prexisente. Gracias.
elvira
 
Posts: 515
Joined: Fri Jun 29, 2012 12:49 pm

Re: Nuevo FiveForm.prg en FWH 12.07

Postby Bayron » Sun Jul 29, 2012 1:41 pm

Hola Elvira,

Ambas formas son aceptadas, al menos con FWH12.04...

Ha pasado ya mucho tiempo desde la ultima vez que lo usé de esa manera, que ya se me ha olvidado...

Las ventajas de usar un objeto para cada SAY son muy grandes, porque puedes manipular el SAY despues de haberlo definido...
=====>

Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com

FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate

FiveWin, One line of code and it's done...
User avatar
Bayron
 
Posts: 815
Joined: Thu Dec 24, 2009 12:46 am
Location: Philadelphia, PA

Re: Nuevo FiveForm.prg en FWH 12.07

Postby FiveWiDi » Sun Jul 29, 2012 3:31 pm

Antonio a ver que te parece esta sugerencia,

Ya se que la he comentado otras veces pero como no sé si ha descartado o no pues ahí "la suelto" otra vez.

Creo que sería muy interesante (sólo le veo ventajas), poder grabar en un fichero la declaración de las variables y en otro la definición en si de la ventana/diálogo.

Yo uso esta manera de trabajar y me va muy bien en el sentido de que me permite tener el código estructurado.

Mis PRG (los que contienen definición de ventanas/diálogos) tienen 5 partes bien diferenciadas:
a) declaración de variables locales
b) asignación de valores a estas variables
c) definción de la ventana/diálogo
d) establecimiento/definición de comportamiento de la ventana/diálogo y/o sus controles.
e) el ACTIVATE de la ventana/diálogo

Así el ejemplo que indicas quedaría de esta manera:
Code: Select all  Expand view
//----------------------------------------------------------------------------//

function BuildWindow()

   #include "oform1.lcl"

   cGet1 := Space( 20 )
   lChk1 := .F.

   #include "oForm1.fwf"

   oform1:bGotFocus  := { || Mifunción( umiparametro) }

   ACTIVATE WINDOW oForm1
return oForm1
//----------------------------------------------------------------------------// 

Y naturalmente el editor que se use para ello deberá detectar que cuando se pulsa (por ejemplo) Ctrl+E, sobre un '#include "oForm1.fwf"' se abrirá el editor del formulario con el formulario indicado.

Ahí lo dejo,
Un Saludo
Carlos G.

FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
FiveWiDi
 
Posts: 1064
Joined: Mon Oct 10, 2005 2:38 pm

Re: Nuevo FiveForm.prg en FWH 12.07

Postby Carlos Mora » Mon Jul 30, 2012 6:22 am

Sería fantástico que generase código más orientado a objetos, es decir que en lugar de una función generase una clase, y en lugar de locals generase DATAs.
Con eso todas las variables quedan en ámbito dentro de los métodos, queda todo encapsulado permitiéndonos tener, eventualmente, más de una instancia de la misma ventana, y en los métodos tenemos acceso a todas las variables para hacer validaciones, refrescos y otras funciones sin tener que pasarlas como parámetro.
Otra ventaja sería que se podría usar un sistema parecido al que usaba VO, donde había una clase donde estaba el diseño, y una sublcase donde el programador escribía el código, así el FiveForm podria volver a modificar o ajustar el form sin perjuicio del código ya escrito. Serían unas 'variaciones protegidas'.
Esto tal vez requiera algún ajuste ( viewtopic.php?f=22&t=15554 ), pero hoy en día tenemos que pensar orientado a objetos.

Un saludo
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Carlos Mora
 
Posts: 988
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Re: Nuevo FiveForm.prg en FWH 12.07

Postby Antonio Linares » Mon Jul 30, 2012 1:31 pm

Carlos,

La idea es exactamente la que propones, pero la implementación queremos hacerla de forma escalonada. Me explico :-)

En una primera idea, puesto que usamos un lenguaje "xbase", un diseñador debe ser capaz de generar código xbase que no requiera programación orientada a objetos, ni definición de nuevas clases, etc. Esta es la primera etapa: basada en el preprocesador y generando controles con comandos xbase.

En esta primera etapa hemos usado los métodos GenLocals() y cGenPrg().

En una segunda etapa, el desafío es compatibilizar lo anterior con programación orientada al objeto. Para esto deberíamos tener los métodos GenDatas() y GenMethods(), para que asi se construya una clase derivada a partir de una clase base.

La prioridad principal es mantener la compatibilidad con todo lo existente, no romperle código a nadie ni obligar a hacer cambios. En mi opinión esto es lo más importante: progresar y mejorar en la implementación manteniendo compatibilidad.

Como ejemplo, aunque no venga mucho al caso, es justo lo que NO está haciendo Windows 8. Metro debería ser una capa adicional a lo ya existente, algo nuevo que se pudiese añadir ó no y que no invalidase lo anterior. Nuestras aplicaciones podrían ser Metro ó no, pero sin forzar a descartar lo anterior
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41324
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Nuevo FiveForm.prg en FWH 12.07

Postby csincuir » Mon Jul 30, 2012 2:10 pm

Antonio,
Me parece muy buena esta iniciativa.
Con esto significa que podríamos armar nuestros diálogos, sin necesidad de tener un archivo externo .rc? y contener mucho de nuestros recursos en nuestros .prg?

Saludos.

Carlos.
csincuir
 
Posts: 396
Joined: Sat Feb 03, 2007 6:36 am
Location: Guatemala

Re: Nuevo FiveForm.prg en FWH 12.07

Postby elvira » Mon Jul 30, 2012 2:34 pm

ntonio,

¿Será FW 12.07 compatible con esta sintáxis?

@ 3,75 SAY "&Buscar por:" OF oDlg SIZE 60,10 PIXEL
@ 2,135 GET cGet OF oDlg SIZE 200,10 PIXEL
elvira
 
Posts: 515
Joined: Fri Jun 29, 2012 12:49 pm

Re: Nuevo FiveForm.prg en FWH 12.07

Postby Antonio Linares » Mon Jul 30, 2012 5:42 pm

Carlos,

Si, esa es la idea: poder usar esta herramienta para construir ventanas, diálogos, etc.

De hecho te explico como ha nacido: se ha construido para FiveMac y el resultado nos ha gustado tanto que hemos decidido portarla a FiveWin :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41324
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Nuevo FiveForm.prg en FWH 12.07

Postby Antonio Linares » Mon Jul 30, 2012 5:43 pm

Elvira,

Si, mantenemos total compatibilidad con lo anterior :-)

Excepto que el código que genera FiveForm.prg necesita de FWH 12.07 para funcionar correctamente
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41324
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Nuevo FiveForm.prg en FWH 12.07

Postby Cgallegoa » Mon Jul 30, 2012 6:19 pm

Por favor que funcione con xHarbour :D

Saludos,

Carlos Gallego
Saludos,

Carlos Gallego

*** FWH-23.10, xHarbour 1.2.3 Build 20190603, Borland C++7.30, PellesC ***
Cgallegoa
 
Posts: 420
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador

Re: Nuevo FiveForm.prg en FWH 12.07

Postby Antonio Linares » Mon Jul 30, 2012 8:33 pm

Carlos,

Pues ahi si hay una importante limitación porque FiveForm.prg usa hb_CompileFromBuf() de Harbour y que sepamos a la fecha no existe equivalente en xHarbour...

Esa función se usa para cargar cualquier ventana ó diálogo desde disco, incluyendo el código que tengas en él.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41324
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Nuevo FiveForm.prg en FWH 12.07

Postby Cgallegoa » Mon Jul 30, 2012 10:08 pm

Antonio,

Claro que sí existe, yo la usa intensivamente :-) Manejo scripts externos compilados y sin compilar. Revisa en el SVN de xHarbour la carpeta UTILS.

Saludos,

Carlos Gallego
Saludos,

Carlos Gallego

*** FWH-23.10, xHarbour 1.2.3 Build 20190603, Borland C++7.30, PellesC ***
Cgallegoa
 
Posts: 420
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador

Re: Nuevo FiveForm.prg en FWH 12.07

Postby Otto » Tue Jul 31, 2012 7:59 am

elvira,

Será FW 12.07 compatible con esta sintáxis?

@ 3,75 SAY "&Buscar por:" OF oDlg SIZE 60,10 PIXEL
@ 2,135 GET cGet OF oDlg SIZE 200,10 PIXEL


You can use AUTOCODE for this.
Best regards,
Otto

Image

Image

Image

Image
********************************************************************
mod harbour - Vamos a la conquista de la Web
modharbour.org
https://www.facebook.com/groups/modharbour.club
********************************************************************
User avatar
Otto
 
Posts: 6025
Joined: Fri Oct 07, 2005 7:07 pm

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 10 guests