…y no buenas razones, que dice el refrán. Así que he pensado en retocar un poco el ejemplo, que referí en entradas anteriores como framework, con el fin de simplificarlo y que se aprecien mejor las relaciones entre los módulos, y entregarlo a Jose Luis Freire para su publicación en el Boletín. Lo que no se todavía, es si llegaré a tiempo para este número ya que todavía estoy retocando las fuentes.
El ejemplo, como ya comenté anteriormente, está basado en unos artículos publicados en Developer Express sobre buenas técnicas de trabajo. He vuelto a buscar el link a dicha página pero ya no aparece por lo que imagino que ha sido movido a otro lugar de la web. Este era el enlace original:
http://www.devexpress.com/Support/BestPractices/VCL/SAP/index.xml
He querido respetar la idea original, manteniendo la misma nomenclatura usada para no desvirtuarlo.
Inicialmente, se apoya en varios de sus componentes: el TdxNavBar, como ventana lateral que puede ser escondida, dejando una pestaña que la restaura si es cerrada, y en la parte superior del area cliente, un contenedor de barras basado en el TdxBarManager.
El efecto final es un interfaz bastante moderno y agradable (al menos esa es mi opinión).
Si además, son combinados con una rejilla de datos de la Suite Exprexs Quantumgrid v5, los resultados y la eficacia es muy alta, aunque gana para mi gusto en demasiada complejidad, por el uso de estos componentes que requieren bastantes horas de aprendizame, y no siempre compensa. El grid de esta suite de componentes es un ejemplo de ello, sobretodo cuando te sales de las operaciones habituales.
Os voy a incluir dos imagenes de un framework de pruebas que extiende esta idea, para que se aprecie mejor el interfaz:
Esta pequeña muestra que hice a partir de dicho ejemplo, trabajaba con los componentes de dbExpres, siguiendo los esquemas mostrados por Ian Marteens en los capítulos de Datasnap y Midas, accediendo a una base de datos mediante Firebird 1.5. Y funcionaba bastante bien.
En el que ahora nos ocupa no vamos a hacer uso de los componentes de Developer Express, para que pueda seguirse directamente desde las versiones de Borland Developer Studio y Delphi 2007 sin tener que recurrir a componentes externos. El efecto visual también es aceptable y así evitamos dependencias externas que nos compliquen posteriormente la vida.
Podéis verlo en esta imagen:
Para sustituir el componente TdxNavBar, he utilizado TCategoryButtons, incluido ya en el BDS 2006, que permite agrupar por categorias. Asímismo, el componente TActionMainMenuBar, ha sustituido, como contenedor de barras, al componente TdxBarManager. Sin embargo, el esquema es similar y lo verdaderamente importante serán las relaciones entre los distintos módulos.
Otra cosa: He preferido aislarme de todo lo relacionado con Datasnap para este ejemplo, por no complicarlo con algo que realmente no era necesario para explicar el framework. Por dicha razón, el acceso a datos lo he realizado a través de los componentes de la paleta de Interbase, de forma que fuera lo más sencillo posible y accediera a una de las bases de datos de ejemplo que trae Delphi.
Si quereis echar un vistazo al diagrama de clases original, sobre el que fue extraido el ejemplo que comentaremos. Visualizar/descargar pdf diagrama.
Nos vemos en el Boletín.
Impresionado me has con las capturas (:
Efectivamente a esto me refería en mi comentario anterior…
Para hacer aplicaciones de gestión de una forma rápida y cómoda con Delphi, necesitas dedicar muchas horas (y tú lo puedes constatar) para ocultar al usuario final de todos los intrigulis internos de Delphi: que si TdxBarManager, dbExpres, DataSnap, Quantumgrid…
Con un buen framework las cosas se vuelven son tan sencillas como: «quiero una ventana de mantenimiento de datos sobre la tabla CLIENTES» y voila!
Enhorabuena!
JM
Me gustaMe gusta