FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Visual FiveWin
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Visual FiveWin
Posted: Thu Jun 26, 2008 07:22 AM

En mi opini贸n, antes que nada habr铆a que estar de acuerdo en los formatos a usar:

Para guardar "formularios" en ficheros ("serializaci贸n") y posteriormente recuperarlos, mi propuesta es usar XML puesto que nos proporcionar谩 la mayor libertad para extender nuestro modelo de serializaci贸n tanto como haga falta.

Por ejemplo: Mac OSX usa XML en sus ficheros NIB (ficheros con extensi贸n .pList: "lista de propiedades") en sus aplicaciones.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Visual FiveWin
Posted: Thu Jun 26, 2008 12:22 PM
Antonio,

Antonio Linares wrote:
De esa manera, intentan separar el "interface" del "c贸digo". Aun as铆, la sincronizaci贸n "recurso" y "c贸digo" es fundamental, 贸 un simple cambio de nombre de variable (DATA) en el c贸digo, puede romper la aplicaci贸n.


Pero el cambio de un nombre de variable es similar a cambiar el ID de un control en un recurso. En un caso el enlace es el ID, en el otro es un nombre de variable, con lo que me parece que no hay cambio.
驴A quien no le apareci贸 nunca un error de ID no encontrado o duplicado?

Creo que es lo mismo, en un modelo estamos atentos a los IDs, y en el otro al nombre.

Un saludo,

Carlos.
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
鈥淚f you think education is expensive, try ignorance"
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Visual FiveWin
Posted: Thu Jun 26, 2008 12:41 PM
Muy acertada la idea de Antonio de que el uso de tecnolog铆as como XML son obligatorias. Con ese criterio mismo no habr铆a que dejar de lado
a la POO. Se me ocurre que el modelo soluci贸n ser谩 que el IDE producir谩 c贸digo XML, que contendr谩 la informaci贸n que hasta ahora
producimos con editores de recursos, y a esto se a帽adir谩 la informaci贸n propia de los aspectos propios de nuestra aplicaci贸n,
incluyendo detalles respecto de los controles, variables y las acciones asociadas a los eventos que se producen en el di谩logo.

Si el IDE producir谩 codigo XML, habr谩 un procesador que transforme ese XML en c贸digo xBase o C, y que se vincular谩 de alguna manera
con el c贸digo que nosotros escribamos en el PRG.

Este modelo coincide bastante con lo que plantea Vladimir, a lo que propondr铆a algunos agregados que me parece que ayudar铆an a controlar mejor el c贸digo.

Mirando los IDEs actuales, todos manejan m谩s o menos los mismos conceptos, es decir, una parte del c贸digo sobre la que act煤a el IDE y otra independiente con el c贸digo que escribimos, normalmente asociado a los eventos que se producen en el dialogo/ventana/formulario.

Si a partir del XML generamos una clase, subclase de Dialog/Windows/Form, que implementa los aspectos visuales, podemos
escribir una sublase con nuestro propio c贸digo implementando los eventos.
Esto es lo que hacen muchos IDEs, desde Visual Objects hasta Delphi, y es bastante simple de implementar y usar. Tiene la ventaja de que las variables tanto de los controles como de buffers de edici贸n son declaradas en la clase, por lo que nuestros m茅todos siempre tienen acceso a ellas ( como se dice, "siempre est谩n en 谩mbito" ) y no hay que declarar variables ni cosas extra帽as, ni es necesaria andar haciendo b煤squedas de controles por nombre ni cosas parecidas.

En la misma superclase el compilador de XML generar谩 el codigo de la clase, incluyendo no solo las DATAs sino tambien declarar谩 los m茅todos, aunque los declare de manera virtual. Eso ayuda en el prototipado r谩pido, y permitir铆a testear la clase sin haber escrito una sola l铆nea de c贸digo.

Por ejemplo, supongamos que el IDE produce el siguiente c贸digo XML:

prueba.xml

<FORM>
   </NAME:TIPOIVA>
   </NTOP:6>
   </NLEFT:18>
   </NHEIGHT:212>
   </NWIDTH:140>
   </STYLE: WS_POPUP|DS_MODALFRAME|DS_3DLOOK|WS_CAPTION|WS_SYSMENU|WS_VISIBLE >
   </CAPTION: "Tipos de IVA" >
   <CONTROLS>
      <STATIC>
         </NAME: oSayCodigo >
         </TEXT:"C贸digo">
         </STYLE: WS_GROUP>
         </NTOP:10>
         </NLEFT:12>
         </NHEIGHT:8>
         </NWIDTH:44>
      </STATIC>
      <STATIC>
         </NAME: oSayDescrip >
         </TEXT:"Descripci贸n">
         </STYLE: WS_GROUP>
         </NTOP:25>
         </NLEFT:12>
         </NHEIGHT:8>
         </NWIDTH:44>
      </STATIC>
      <TGET>
         </NAME:oGetTipo>
         </VAR:TIPO>
         </INIT: 0 >
         </PICTURE:"99">
         </STYLE: ES_RIGHT|WS_BORDER|WS_TABSTOP>
         </NTOP:8>
         </NLEFT:68>
         </NHEIGHT:12>
         </NWIDTH:36>
         </VALID:ValidaTipo>
      </TGET>
      <TGET>
         </NAME:oGetDescrip>
         </VAR:DESCRIP>
         </INIT: "                                   " >
         </STYLE: WS_BORDER|WS_TABSTOP>
         </NTOP:23>
         </NLEFT:68>
         </NHEIGHT:12>
         </NWIDTH:132>
         </VALID:ValidaDescrip>
      </TGET>
      <TBUTTON>
         </NAME:oBtnAceptar>
         </TEXT:"&Aceptar">
         </NTOP:117>
         </NLEFT:101>
         </NHEIGHT:15>
         </NWIDTH:45>
         </ACTION:Aceptar>
      </TBUTTON>
      <TBUTTON>
         </NAME:oBtnCancel>
         </TEXT:"&Cancelar">
         </NTOP:154>
         </NLEFT:101>
         </NHEIGHT:15>
         </NWIDTH:45>
         </ACTION:Cancel>
      </TBUTTON>
   </CONTROLS>
</FORM>


Con esto un programa deber铆a generar un c贸digo parecido a:

prueba.frm

CLASS _TIPOIVA // FROM 驴TFORM?
   DATA Form
   DATA oSayCodigo
   DATA oSayDescrip
   DATA oGetCodigo
   DATA TIPO
   DATA oGetDescrip
   DATA DESCRIP
   DATA oBtnAceptar
   DATA oBtnCancel

   METHOD New()
   METHOD ValidaTipo() VIRTUAL // Valida un control
   METHOD ValidaDescrip() VIRTUAL // Valida otro control
   METHOD Aceptar() VIRTUAL // Accion asociada a un boton
   METHOD Cancel() VIRTUAL  // idem

END CLASS

METHOD New() CLASS _TIPOIVA

   /*
   </NTOP:6>
   </NLEFT:18>
   </NHEIGHT:212>
   </NWIDTH:140>
   </STYLE: WS_POPUP|DS_MODALFRAME|DS_3DLOOK|WS_CAPTION|WS_SYSMENU|WS_VISIBLE >
   </CAPTION: "Tipos de IVA" >
   */
   @ 6, 18 DIALOG ::Form SIZE 140, 212 CAPTION "Tipos de IVA" STYLE WS_POPUP|DS_MODALFRAME|DS_3DLOOK|WS_CAPTION|WS_SYSMENU|WS_VISIBLE
      /*
      <STATIC>
         </NAME: oSayCodigo >
         </TEXT:"C贸digo">
         </STYLE: WS_GROUP>
         </NTOP:10>
         </NLEFT:12>
         </NHEIGHT:8>
         </NWIDTH:44>
      </STATIC>
      */
      @ 10, 12 SAY ::oSayCodigo PROMPT "C贸digo" ...

      .... m谩s controles
      /*
      <TGET>
         </NAME:oGetTipo>
         </VAR:TIPO>
         </INIT: 0 >
         </PICTURE:"99">
         </STYLE: ES_RIGHT|WS_BORDER|WS_TABSTOP>
         </NTOP:8>
         </NLEFT:68>
         </NHEIGHT:12>
         </NWIDTH:36>
         </VALID:ValidaTipo>
      </TGET>
      */
      @ 8, 68 GET ::oGetTipo VAR ::TIPO PICTURE "99" STYLE ES_RIGHT|WS_BORDER|WS_TABSTOP VALID ::ValidaTipo()

      ... mas controles

      /*
      <TBUTTON>
         </NAME:oBtnAceptar>
         </TEXT:"&Aceptar">
         </NTOP:117>
         </NLEFT:101>
         </NHEIGHT:15>
         </NWIDTH:45>
         </ACTION:Aceptar>
      </TBUTTON>
      */

      @ 117, 101 BUTTON ::oBtnAceptar SIZE 45, 15 ACTION ::Aceptar()

RETURN Self



Adem谩s, si no existe prueba.prg lo crea con el siguiente c贸digo

prueba.prg

CLASS TIPOIVA FROM _TIPOIVA
   METHOD ValidaTipo()
   METHOD ValidaDescrip()
   METHOD Aceptar()
   METHOD Cancel()
ENDCLASS

METHOD ValidaTipo() CLASS TIPOIVA
RETURN .T.

METHOD ValidaDescrip() CLASS TIPOIVA
RETURN .T.

METHOD Aceptar() CLASS TIPOIVA
RETURN NIL

METHOD Cancel() CLASS TIPOIVA
RETURN NIL


Dej谩ndonos el c贸digo listo para seguir programando.
Algo interesante es que desde dentro de los m茅todos podemos acceder a cualquier control o variable, ya que son DATAs del m茅todo que se est谩 ejecutando. Y seguimos teniendo la independencia que ya tenemos con los recursos, entre los aspectos visuales del form y el c贸digo de la aplicacion propiamente dicho.
Tambien hasta se podr铆a ejecutar el c贸digo de la clase _ que no har谩 nada, pero ser铆a como la funcion de test que tiene el PellesC para los dialogos.
Esto se corresponde con un patron de programaci贸n GRASP, variaciones protegidas, que tiene muchos usos en temas visuales de la programaci贸n.

Un saludo,

Carlos.
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
鈥淚f you think education is expensive, try ignorance"
Posts: 1283
Joined: Fri Feb 10, 2006 02:34 PM
Visual FiveWin
Posted: Thu Jun 26, 2008 03:57 PM
Hola Manuel,

No puedo bajar el codigo fuente desde http://www.box.net/shared/x6ysuaxc8c . Hay algun problema ?

Hola Carlos -> Muy buena la explicacion

Hola Antonio -> Seria bueno q coordinases junto a Manuel las bases y arrancar esta propuesta...




Saludos.
C.
Salutacions, saludos, regards

"...programar es f谩cil, hacer programas es dif铆cil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
HIX -> https://github.com/carles9000/hix
Posts: 15
Joined: Sat Nov 26, 2005 01:06 AM
Visual FiveWin
Posted: Thu Jun 26, 2008 05:34 PM
mmercado wrote:
Como mencionaba en alguna pregunta en el foro ingl茅s, yo uso actualmente Visual FiveWin de manera intensiva en el dise帽o primario de mis formularios y ya me resulta de una gran utiliidad por el gran ahorro de tiempo en el dise帽o y en una buena parte del tecleo de mis prgs.


De igual forma desarrolle en el 2002 "genera" (muy rudimentario) para pasar de Clipper-DOS, me es muy util para ense帽ar FW a mis compa帽eros (no es comparable con el desarrollo de VFW).

Ahora es necesario el apoyo de TODOS para hacer el VFW de cada d铆a y me uno a para poder probar los avances conforme me sea permitido participar.

Saludos desde la Ciudad de M茅xico.
Desde la Ciudad de Mexico.

Nazario Salazar



Saludos.
Posts: 782
Joined: Wed Dec 19, 2007 07:50 AM
Visual FiveWin
Posted: Fri Jun 27, 2008 12:55 AM
Carles wrote:No puedo bajar el codigo fuente desde http://www.box.net/shared/x6ysuaxc8c . Hay algun problema ?
Hola Carles:

Prueba desde aqu铆:
http://www.box.net/shared/tosobbh8gg

Saludos.

Manuel Mercado
manuelmercado at prodigy dot net dot mx
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Visual FiveWin
Posted: Fri Jun 27, 2008 09:41 AM
Carles wrote:Hola Antonio -> Seria bueno q coordinases junto a Manuel las bases y arrancar esta propuesta...


Antonio,

Creo que el proyecto es muy importante y me uno a la opini贸n de Carles, que debes liderar (junto a Manuel Mercado) este proyecto.
Con el fin unir fuerzas, quiz谩s ser铆a conveniente crear un nuevo foro MULTILENGUA, para el proyecto y no tener que ir del foro espa帽ol al ingles para ver las aportaciones.
Un saludo



Manuel
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Visual FiveWin
Posted: Fri Jun 27, 2008 12:12 PM

Manuel,

Es un proyecto que debe apoyarse tanto desde FiveTech como desde los usuarios, que han de solicitar y probar lo que quieren usar.

Y es importante que los usuarios comprendan que para apoyar nuevos proyectos, han de apoyar a los programadores y a FiveTech.

Una forma directa de hacerlo es actualizandose a nuevas versiones del producto. Estar a煤n con la versi贸n FWH 2.7 Abril 2006 no es apoyar nuevas iniciativas ;-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1283
Joined: Fri Feb 10, 2006 02:34 PM
Visual FiveWin
Posted: Fri Jun 27, 2008 07:21 PM

Hi Antonio,

Bueno, no me gustaria a mi ver ahora nuevas guerras. Antonio, intento compronder tu punto de vista, claro, pero intenta ahora verlo asi: Personalmente no creo en los IDE (sera porque soy de la vieja escuela y creo q siempre es necesario rascar y rascar codigo) pero si q puede dar un plus a FWH. Si se crea este proyecto mucha gente se benefciara de el. Muchos quiza se aprovechen de la iniciativa, otros lo apoyaremos como una vieja espina clavada, otros miraran de sacar un valor a帽adido al producto, pero ahora creo q lo importante es que alguien (MM), por lo que sea ha entrado en un momento quizas en q muchos creemos.

Muchos hemos y estamos en diferentes proyectos, pero creo q ahora es un buen momento para iniciar uno asi y quien mejor q tu para crear estas bases. Podemos discutir como debe de ser el IDE, dejar una arquitectura abierta a futuras opciones, entrar en nuevas tecnologias como XML, si usaremos un CVS o el SVn para el proeyecto, yo q se ahora... pero el objetivo es conseguir algo que todos saldremos beneficiados y tambien tu Antonio. Muchos estamos siempre por aqui y ahora creo que hay mucho nivel para participar en un proyecto de estas caracteristicas, pero necesitamos tambien tu punto de vista para salir todos beneficiados.

Ademas, estoy seguro q muchos si quieren utilizar el IDE, tendran de pasar al final por una actualizacion de tu producto para q pueda usarlo sin problemas. Ya ves, todos ganamos. Personalmente q gano ?. Durante a帽os me jode que cuando vienen mis colegas Alemanes, flipan con los montajes en FWH, pero ven un palo o no entienden esta manera de trabajar: tus ficheros editados con un simple editor, tus .bat de compilaciones, ..., es q son tan burros q les parece arcaico. Pues ala, quereis un IDE, pues tomad. (Mi editor de prg es QEdit de 50 Kb., como quieres q lo entiendan). :D

En fin, me voy a tomar una cervesita q pega una 'cal贸' ...

Nice weekend.
C.

Salutacions, saludos, regards

"...programar es f谩cil, hacer programas es dif铆cil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
HIX -> https://github.com/carles9000/hix
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Visual FiveWin
Posted: Fri Jun 27, 2008 09:47 PM

Carles,

En palabras de Gandhi:
"Hay que ser coherente en lo que se piensa, se dice y se hace"

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
Visual FiveWin
Posted: Tue Jul 01, 2008 07:21 AM

Sr. Mercado, despues de un mes un poquito complicado con mis examenes de la universidad por fin tengo un rato para meterme en el foro y ver una de esas maravillas que estoy acostumbrado a ver en sus publicaciones. Hoy lo he instalado y veo que no me deja pasar del inicio puesto que me sale el mensaje "Sorry, can create Debug file", que problema tengo, que es lo que tengo que hacer para poderlo solucionar?

Por otra parte y sin entrar en polemicas creo que es el momento de empezar a construir las bases para un futuro mejor con fivewin. Aun conservo los disketes de la version primera que sali贸 y mucho hemos avanzado desde entonces. Muchos de nosotros somos el enamorado infiel del fivewin, ya que sin dejar de lado al fivewin siempre hemos tenido el ojo en esos programas que parece que te lo hacen todo, pero no nos acaban de convencer y siempre volvemos al fivewin puesto que nos sentimos comodos con ese entorno aunque reudimentario pero eficiente y que hemos visto crecer por nuestras exigencias y recomendaciones. Ahora es el momento de que esto empiece a mejorar y por lo que veo tambi茅n Antonio ya piensa en ello puesto que tiene bien presentes las opciones de este tipo de programas. Pero por otra parte he visto que muchas de las iniciativas que se han hecho para crear este tipo de programas han quedado en poca cosa o en una variaci贸n hacia otras estructuras xbase que se han desvinculado de fivewin. Por lo tanto y ya que por lo leido parece que todos estamos de acuerdo en empezar a trabajar para disponer en fivewin de esta tecnologia, creo deberia ser un proyecto fivewin y ahi si creo que todos nos pondriamos de acuerdo en encontrar una metodologia de trabajo para crear el visual fivewin del futuro.

Como mi jefe dice en esta vida lo importante no es lo que deseas o te mereces sino lo que realmente consigues, asi que creo que ya es hora de empezar a dar los pasos oportunos para intentar conseguir el tan esperado visual fivewin.

Saludos



Andr茅s Gonz谩lez desde Mallorca
Posts: 729
Joined: Tue Oct 18, 2005 06:49 PM
Visual FiveWin
Posted: Tue Jul 01, 2008 03:07 PM
Muchos de nosotros somos el enamorado infiel del fivewin, ya que sin dejar de lado al fivewin siempre hemos tenido el ojo en esos programas que parece que te lo hacen todo, pero no nos acaban de convencer y siempre volvemos al fivewin puesto que nos sentimos comodos con ese entorno aunque reudimentario pero eficiente y que hemos visto crecer por nuestras exigencias y recomendaciones.


Andres,

Estoy 100% de acuerdo contigo.

Saludos,

George
Posts: 408
Joined: Sun Aug 13, 2006 05:38 AM
Visual FiveWin
Posted: Tue Jul 01, 2008 04:26 PM
Hola Andy, he estado tratando de coincidir contigo por el msn para ense帽arte un proyecto que tengo alterno a visualfivewin pero no lo he conseguido, puedes bajarlo de ftp://ftp.quiquesoft.com/qsvisual.zip a ver cuando podemos coincidir por que tenemos algo pendiente.
Saludos

Quique
Posts: 782
Joined: Wed Dec 19, 2007 07:50 AM
Visual FiveWin
Posted: Tue Jul 01, 2008 06:28 PM
Andr茅s Gonz谩lez wrote:Sr. Mercado, despues de un mes un poquito complicado con mis examenes de la universidad por fin tengo un rato para meterme en el foro y ver una de esas maravillas que estoy acostumbrado a ver en sus publicaciones. Hoy lo he instalado y veo que no me deja pasar del inicio puesto que me sale el mensaje "Sorry, can create Debug file", que problema tengo, que es lo que tengo que hacer para poderlo solucionar?
Hola Andr茅s:

Que raro, ese mensaje es solo una advertencia y no impide el funcionamiento del programa, instalaste Visual FiveWin con Setup.exe?

Saludos.

Manuel Mercado
manuelmercado at prodigy dot net dot mx
Posts: 114
Joined: Fri Nov 24, 2006 09:03 PM
Visual FiveWin
Posted: Wed Jul 02, 2008 06:39 PM

Mi modesta opinion es que FiveTech deberia ser quien realize el proyecto y que el IDE se venda con FiveWin(Obviamente con la ultima version de ese momento y en adelante), por lo tanto todos estaremos en la obligacion de actiualzarnos(como dice Carles).

Por otro lado los usuarios de Fivewin y los que tienen ya un IDE construido, deberian apoyar con Ideas para agilizar el proyecto.

Soy de los usuarios que se resisten a usar un IDE(talvez no encontre el Ideal) Pero se que un IDE para FiveWin de todas maneras sera un PLUS para toda la comunidad FiveWinera y para el propio FiveWin.

驴Que dices Antonio te animas a Crear el IDE para FiveWin?

Saludos a la comunidad FiveWinera.

Jaime

Continue the discussion