Thursday, 20 August 2009

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

Poco a poco le voy dando color a mi aplicación, y ahora he desarrollado un Canvas con el que podré modificar mis objetos gráficos. Es decir, utilizaré éste canvas especial para modificar mi clase TBox, la cuál puedo desplazar y redimensionar en tiempo de ejecución. El concepto es muy simple, utilizando un componente TImage, me apodero de su Canvas y utilizo sus métodos OnMouseUp, OnMouseMove y OnMouseDown para realizar la lógica de mi aplicación. Luego añadiendo diferentes funcionalidades a mi clase, le permito al objeto saber si estoy dentro de éste o en una de sus esquinas con el correspondiente comportamiento. Luego a medida que se realizan los desplazamientos se tienen que ir recalculando los diversos puntos de los cuales está formado mi rectángulo. Una vez me sitúo encima de el objeto, el mouse cambia su estado informando de ésto mediante el icono del cursor. La Tbox tiene unas áreas bien definidas y sa van comprobando éstas cada vez mediante los eventos que os he dicho anteriormente. La configuración básica de éste experimento es la siguiente:


Por lo tanto, desde la aplicación, podemos generar lo siguiente:


Un lienzo con la posibilidad de dibujar varias TBox. La creación es directa, apretando el botón de "Draw Rectangle", nos permite directamente ir al lienzo, y mediante 2 puntos dibujar un rectángulo. Una vez hacemos click sobre la TBox, se nos selecciona marcandose en rojo y mostrandonos los vértices. Una vez dentro de la TBox, el mouse cambia para informar que podemos generar un desplazamiento.

Además podemos modificar el tamaño del objeto, situándonos en cualquiera de sus esquinas. Aquí os dejo la versión beta de ésta aplicación "Thundax Box Manager", la cuál aún está en fase de desarrollo, pero si queréis la podéis testear. Aún tengo que modificar varias cosas y mejorar cosas del redimensionado. Os iré informando.

0 comments:

Post a Comment