mmercado wrote:... No obstante, siempre será conveniente educarnos en el planteamiento modular de nuestras aplicaciones haciendo que los prgs donde se utilizan formularios, involucren el mínimo de código no relacionado con la mecánica del formulario en sí.
Hola a todos,
Allá por el 2000 empecé en 16b con Clipper+FiveWin; más concretamente y por necesidad, en el desarrollo de un diseñador visual de diálogos y ventanas para FiveWin, se llamó/llama FiveWiDi. De ahí mi nick de usuario.
Una de sus virtudes era que generaba ficheros (.fwd) con el diseño de los formularios y otros con la declaración local de sus variables (.lcl), y estos ficheros los añadía a mano en mis aplicaciones con 2 simples INCLUDE ('include dlg1.lcl' y 'include dlg1.fwd'). FiveWiDi era capaz de leer definición de controles en un % elevado aun haciéndolo de una manera muy bruta.
Además las características de los controles que podía usar FiveWiDi está en ficheros INI, y eso permite crear predefiniciones y agrupaciones de controles (para la aplicación 'x', para la 'y', etc.).
ej. de .FWD:
DEFINE DIALOG oDbfXLS7A TITLE "Exportar dades a XLS" FROM 71,230 TO 367,564 ;
COLORS J02CLRTEXTO,J02CLRWND OF AMPAarra[1][1][2][1][1] PIXEL FONT J02FONTWND //FIVEWIDI
@ 16.00,10.00 SAY oInforme PROMPT "Activat Filtre manual" OF odbfxls7a COLORS ;
J02CLRTEXTO,J02CLRFONDO FONT J02FONTSAY CENTER PIXEL SIZE 148.00,10.00 UPDATE //FIVEWIDI
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
ej de .LCL
/* *** Def. Var. FWD *** Window/Dialog: oDbfXLS7A */
Local oDbfXLS7A
Local oCarpeta, uCarpeta
/* *** End Def. FWD *** Window/Dialog: oDbfXLS7A */
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.
Yo sigo usando de la misma manera FiveWiDi que tu Visual FiveWin.
La herramienta en si, su código deja mucho que desear (era mi primera aplicación y fue muy duro), pero la idea sigo convencido de que era la correcta y acertada; el código de los formularios es independiente de los PRG, además sus cláusulas son inteligibles sin error posible por el programador (un LEFT es un LEFT no un OF), no son parámetros de una función (como se ha visto en otros diseñadores), los objetos de los controles son deducibles (incluso para el propio IDE), la definición de las cláusulas disponibles estan en ficheros INI que se leen una sola vez y a demanda, etc.
FiveWiDi era sólo una parte de lo que podría ser un IDE como Verce podría ser otra parte y otra un editor 'inteligente' de PRG, otra sería un editor de programación de eventos (ON CLICK p.e.) y otra la de reportes.
Por cierto viendo la arquitectura en FiveWin de heredabilidad entre los controles, con ficheros INI se podría simular esa misma heredabilidad de eventos para saber que NO se pude editar, que se puede editar y con que parámetros y así poder crear 2 ficheros, .EVA y .EVD al que realizar 2 includes justo antes/después de activar el diálogo o ventana, para acabar teniendo 4 ficheros que componen la definición de tu diálgo/ventana:
Manclien.LCL
Manclien.FWD
Manclien.EVA
Manclien.EVD
Si el editor de PRg es lo suficiente inteligente, será fácil decirle donde poner los includes, y que el controle si se han añadido o no.
En fin que me estoy enrollando, no paro de ampliar el mensaje, es tarde, tengo sueño y hasta mañana.
Sólo intentaba dar alguna idea.
Saludos
Carlos G.