PDA

Ver la Versión Completa : Framework diseño pantallas runtime


Toni
02-10-2015, 19:11:05
Hola,

Me gustaria añadir la funcionalidad de poder crear y/o modificar pantallas en tiempo de ejecución de mi aplicación, sabeis si existe alguna libreria o framework para hacer esto? Evidentemente las pantallas actuales que estan diseñadas en tiempo de diseño no valdrian. Lo ideal seria alguna libreria o componente realizado en Delphi/BCB como hace Fast Report, que aprovecha todas las funcionalidades del entorno de desarrollo.

aguml
02-10-2015, 21:32:33
Puedes crear un formulario en tiempo de ejecucion y colocar los componentes que desees.

AgustinOrtu
02-10-2015, 22:06:36
Es bastante mas complicado que colocar los componentes dentro de un form
Como le das comportamiento?

aguml
03-10-2015, 10:39:00
Asignando funciones a eventos?

AgustinOrtu
03-10-2015, 18:36:23
Basicamente es hacer lo que hace Delphi pero "sin programar"

No lo veo muy flexible. No dije que es imposible. Simplemente que no le veo mayor utilidad a un usuario final

Toni
03-10-2015, 20:23:40
Quizas no alcance a explicar del todo la idea y lo que quiero. Pero al igual que actualmente con mi aplicación el usuario final puede crearse nuevos o modificar los existentes reportes, ya que la aplicación lleva integrado el diseñador de Fast Reports. La idea es que la aplicación no sea 'cerrada' y que tenga mayor flexibilidad. Si un cliente tiene necesidad de añadir unos campos a un formulario, pues que mediante una herramienta pueda editar los formularios y añadir o quitar campos, botones, ect. Por supuesto no a de ser tan completo como un entorno de desarrollo. Esto que comento lo llevan infinidad de aplicaciones de gestion del mercado. Y permite personalizar una aplicación estandard. Evidentemente el 'cuore' de la aplicación no se puede tocar.

PD: No se trata de que lo modifique el usuario final, sino poder personalizar el programa para cada cliente a un nivel 'basico'. Pero es para evitar tener muchas versiones de un mismo programa..

AgustinOrtu
03-10-2015, 20:54:40
Lo unico que podrias hacer es tener una serie de controles (pongamos por caso Edits y Buttons) y una serie de eventos que pueden disparar, o bien un campo a mostrar (probablemente sea mas util un DBEdit).

Podes hacer todo en tiempo de ejecucion y bien "dinámico" lo cual es mas complejo de codificar o bien tener todo en tiempo de diseño y marcar visible True o False

aguml
03-10-2015, 23:35:10
Puedes crear como te dicen componentes en ejecucion sin problemas y cambiar la configuración de los mismos. No es para nada complejo. Eso sí, tendrías que crear un fichero donde guardes datos como nombre del componente, posición, ancho, alto, parent... y al cargar la ventana lees esos datos y creas todo en tiempo de ejecución.

Toni
05-10-2015, 11:36:09
Hola,

Si esto de crear componentes en tiempo de ejecuccion ya lo conozco y lo utilizo en muchas ocasiones, pero no lo que preguntaba era otra cosa: Si conociais algun tipo de 'solucion' ya sea libreria, framework que realice esto ya de una forma profesional. Lo que comento no solo es crear unos botones en tiempo de ejecucuión, sino un editor de pantallas de aplicación con mas funcionalidades. No me hace falta algo muy muy completo, pero si lo suficiente para poder crear las tipicas pantallas de una aplicación de gestión (fichas de datos)

Neftali [Germán.Estévez]
05-10-2015, 12:40:38
Hay algún componente que te podría ayudar, a crear componentes en ejecución. Que te permita crear, seleccionar, redimensionar.
Por otro lado es posible que tuvieras que utilizar "scripting" (también hay paquetes para ello) para dotar de funcionalidad básica a esos componentes.
También hay algún otro para poder grabar y recuperar "Layouts" que los usuarios modifiquen.

De todas formas, no conozco ninguno que lo haga todo. Entre otras cosas, porque es algo muy personal y concreto de una aplicación, como para hacer algo genérico que sirva para todos.
Creo que si necesitas algo, te lo tendrás que hacer tú "a medida".

dec
05-10-2015, 16:45:22
Hola,

Yo utilizo, con muy buenos resultados, el componente "TResizer" que se incluye en el paquete Cindy Components (http://tcycomponents.sourceforge.net/). Con este componente ya puedes hacer lo que quieres, y, no obstante, el autor de Cindy ofrece muchos otros componentes más o menos estándar, pero, preparados para ser "movidos" en tiempo de diseño. Es decir, con los componentes Cindy puedes optar por usar controles que ya incorporan la facilidad de "diseño" en tiempo de ejecución, o bien usar el componente "TResizer", de modo que puedas trabajar con cualquier otro control estándar de Delphi, por ejemplo: botones, casillas de edición, listas, etc., etc.

Aquí una captura del ejemplo de "TResizer" que viene incluido en los componentes Cindy:

http://i.imgur.com/npKnfn0.jpg

Edición: Creo que he metido la pata, puesto que no me había fijado que estamos en el foro de C++ Builder. Creo que los componentes que he mencionado no tienen versión para C++ Builder, así que, aunque puedes echar un vistazo para asegurarte, me parece que este mensaje mío no va a servirte... y lo lamento.

Neftali [Germán.Estévez]
05-10-2015, 17:16:47
Edición: Creo que he metido la pata, puesto que no me había fijado que estamos en el foro de C++ Builder.

Lo mismo digo. No me había dado cuenta del título.

:o:o

dec
05-10-2015, 17:21:46
Hola,

Lo mismo digo. No me había dado cuenta del título.

:o:o

Bueno, vamos a intentar arreglarlo. :)

Los componentes LMDDesignPack (http://lmd.de/products/vcl/lmddesignpack/) sí que están disponibles también para C++ Builder, y, seguramente puedan servir. Son componentes de pago, pero, yo creo que cuestan cada uno de los 79 euros que vale la licencia para un desarrollador. Además no sólo incluyen un "diseñador", pero, también un "inspector de objetos" y varios componentes relacionados.

http://i.imgur.com/UK0vx9u.png

Toni
05-10-2015, 17:26:37
Muchas gracias a todos por las respuestas. Me voy a mirar los componentes. ;)

Toni
08-10-2015, 13:30:55
Hola Dec, lo he estado mirando y parece exactamente eso lo que queria. Me tengo que bajar las demos y probarlo. Veo que tu lo has utilizado para desarrollar una aplicación, que tal fue la experiencia? Alguna pega?

dec
08-10-2015, 15:47:44
Hola,

Arriba he nombrado dos componentes: "Cindy" y "LMDDesignPack". Los primeros los uso ahora en un proyecto y van muy bien, pero, no parecen estar disponibles para C++ Builder. Los segundos, que sí están disponibles para C++ Builder, no los he probado, pero, sí uso algunos otros componentes de LMD con buenos resultados. Tendrás que echar un vistazo tú mismo y ver si satisfacen tus necesidades. :)