Sunday, 30 August 2009

Implementación de un Canvas para modificar Objetos en Delphi parte III

Continuando con la aplicación para la modificación de Objetos utilizando un Canvas, en ésta parte he implementado un modificador del z-Order, o sea, un modificador para indicar cuál de las imágenes va encima o va debajo. La implementación de mi canvas, me permite dibujar la clase TBox, y además de poder generar n-conexiones entre ellas, me permite modificar la ubicación de las cajas en el plano Z. De ésta manera puedo enviar hacia delante o hacia el fondo la caja para darle una diferente prioridad. Una vez tenga acabada correctamente la gestión de eventos, fusionaré ésta aplicación con la del post anterior y así moldear diferentes objetos con una cierta inteligencia en el Scada.

La mejora del diseño de la clase TBox es la siguiente:

Ahora dispone de diversas propiedades nuevas, así como el zOrder que indica el orden a la hora de realizar el dibujado sobre el TCanvas personalizado. Ahora solo falta unirlo al TCitectPainter para que maneje el objeto COM del IGraphicsBuilder.

Aquí os dejo la versión estable de la aplicación ThundaxBoxManager v1.0.0 Build 9.exe para que la probéis y saquéis vuestras conclusiones.

Aquí os dejo varias imágenes sobre el funcionamiento del zOrder (Send to Back):

Y (Bring to Front):

Ahora mismo, con la aplicación podríamos incluso generar grafos y calcular la ruta mínima aplicando alguno de los algoritmos típicos. Pero bueno, eso quedará para otro día, además ya hay algo implementado de eso en el blog.


Mediante ésta aplicación puedo dibujar cualquier cosa y crear diversos mapas gracias a su posibilidad de conexionado entre si. De ésta manera, podríamos llegar a crear diagramas diversos, estructuras en árbol, etc, que a veces son mejores para su entendimiento si las dibujamos, en vez de mostrar algo en texto. Se me ocurre, pues el conexionado de una red de ordenadores por ejemplo, o el viaje que realiza una factura, etc. De ésta manera podemos tener un diagrama con un poco de inteligencia y asignarle las propiedades que queramos. Solo tenemos que heredar de TBox y generar nuestro propio componente gráfico.


0 comments:

Post a Comment