FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
crear efecto "deshacer" en editor grafico
hola! sigo haciendo mi editor grafico y me gustaria hacer un efecto tipo "deshacer" o "control + z" y que esto borre lo ultimo que se haya hecho.
se que deberia guardar siempre lo ultimo que se hizo para poder eliminarlo, pero no se como se podria hacer, podran iluminarme un poco? Muchas Gracias!! |
#2
|
|||
|
|||
Hola, podrias usar varios metodos:
- ir guardando todos los comandos ejecutados en una lista, y al pulsar deshacer, ir ejecutandolos todos desde el principio hasta el que desees (que tendria que ser el anterior) - ir guardando las pantallas, y reponerlas al aplicar el deshacer - ir guardando los 'anticomandos' (si un comando es linea de A a B, este seria linea de B a A con el color de fondo) Te dejo un ejemplo de el segundo metodo, a ver si te sirve :
es bastante tosco (no cambies el tamaño de la ventana, pues puede dar error, gasta mucha memoria y repinta otras ventanas). Espero que te sirva de idea Última edición por coso fecha: 24-11-2008 a las 23:05:50. |
#3
|
|||
|
|||
hola! pedazo de respuesta!! ,uchas gracias!!
el cliente no puede cambiar el tamaño de la ventana, lo tengo fijo, pero si pasa que el tamaño de la ventana se ajusta a la resolucion de pantalla, pero al sacar el tamaño con el metodo ClientWidth; supongo que no afectaria. Muchas gracias lo voy a probar a ver si me sale bien :P un saludo!!! |
#4
|
|||
|
|||
hola coso, lamentablemente tengo que confesarte que no logro adaptar tu solucion a mi aplicacion, lo que pasa es que hay algunas diferencias que no se manejar, por ejemplo : yo trabajo sobre un timage no sobre el formulario en si, yo tengo la posibilidad de hacer circulos, cuadrados, lineas , etc por lo que yo tengo que guardar una ves que se termino de dibujar la figura ( OnMouseUp).
Sigo paso a paso la ejecucion y corre el proceso guardar todo bien, pero me parece que el canvas.handle del timage no guarda lo mismo que el canvas.handle del Form, y cuando apreto "deshacer" no me cambia el bitmap. Si tenes ganas, te dejo el codigo que hice para que veas si la cagada me la mande yo (lo cual es un 200% probable jajaj ). Pero de todas maneras te agradezco el tiempo y la respuesta que me diste Última edición por pablopessoa fecha: 30-11-2008 a las 17:59:09. |
#5
|
|||
|
|||
Cita:
Última edición por coso fecha: 26-11-2008 a las 14:36:56. |
#6
|
|||
|
|||
Por otra banda, no te iria mejor para esto un TPaintBox? (paleta System)
|
#7
|
|||
|
|||
hola de nuevo, te dejo el mismo codigo que puse adaptado a Timage : eso si, no estoy seguro que sea del todo correcto, tendrias que probar el saveto y el loadfrom para saber si realmente funciona, pues no se bien bien que relacion hay entre las clases timage, la tpicture y la tbitmap correspondiente.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como crear un efecto "Hollywood" como el de Photoshop | kapullok_2006 | Gráficos | 0 | 22-11-2007 11:43:08 |
Como hacer para que Vista no reporte "No se pudo comprobar el editor" Firma digital | fcios | Windows | 2 | 16-06-2007 04:52:49 |
Necesito llamar a métodos de clases "hija" desde su clase "padre" | Flecha | OOP | 17 | 20-04-2007 00:03:53 |
Un editor COOL. Al recibir el foco se "ilumina" y viceversa... | pascalutn2003 | Varios | 32 | 18-12-2006 03:01:31 |
Múltiples "Deshacer" en un editor de textos | soul6301 | Varios | 1 | 05-06-2004 21:38:37 |
|