Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-08-2005
newbery newbery is offline
Miembro
 
Registrado: jul 2005
Posts: 13
Poder: 0
newbery Va por buen camino
Unhappy Como hacer una funcion DESHACER

Estoy haciendo Paint, trabajo sobre un TImage, necesitaria como hacer la funcion DESHACER y la de RELLENO.
Saludos.
Responder Con Cita
  #2  
Antiguo 04-08-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Dos formas (dependiendo de cómo estés "pintando" en tu "Paint" deberás hacer una u otra.):
(1) Te guardas el estado actual justo antes de cada cosa que quieras deshacer. Es sencilla de implementar, pero costosa, en cuanto que guardas muchas más cosas de las necesarias. Si está pintando sobre un Canvas (directamente) es la que vas a tener que hacer, porque no tendrás otra forma de restaurar lo anterior (puedes borrar una línea, pero es difícil que puedas recuperar lo que había debajo).

(2) La segunda es posible si no pintas directamente (si trabajas con objetos, para las líneas, rectángulos,...); En ese caso debes guardarte una relación de las ultimas operaciones que has hecho con cada objeto y ese objeto en particular en su estado anterior.
De todas formas en alguna operación (como el Rellenado) tal vez si tengas que guardar todo el estado.

Para el relleno mira los procedimientos de FloodFill y FillRect de TCanvas.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 13-01-2009
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Neftali, acabo de pintar una circunferencia sobre el canvas de un TImage y necesito deshacerla, podrías manifestarte con algún código
Responder Con Cita
  #4  
Antiguo 13-01-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Código Delphi [-]
ExitWindowsEx(EWX_REBOOT, 0);

// Saludos
Responder Con Cita
  #5  
Antiguo 13-01-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por roman Ver Mensaje
Código Delphi [-]ExitWindowsEx(EWX_REBOOT, 0);
La función de Román seguro que deshace el pintado de la circunferencia, aunque tal vez es un poco drástica.
Prueba a Repintar el TImage.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 13-01-2009
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
jojojo, ya se cuanto me quieren, vez que pregunto algo en foro me dicen que la solución esta en apretar Alt+F4.

Me imagino que primero capturo la región en la que dibujare, por ejemplo si hago una circunferencia, la porción a de tener las mismas dimensiones.

Si quiero "deshacer" el dibujo, vuelvo a colocar esa porción de la imagen capturad en la posición original. Ahora que lo pienzo, eso no es exactamente un deshacer pero creo que resultara.

P.D.: ¿por que cuando no me dan soluciones termino respondiendome a mi mismo...?
Responder Con Cita
  #7  
Antiguo 13-01-2009
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Ahh no se MAXIUM pero si recuerdo que [coso] aportó un codigo que hace lo que el hilo busca.
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #8  
Antiguo 13-01-2009
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Gracias cHackAll, ya lo encontre http://www.clubdelphi.com/foros/show...light=deshacer

Lo adapte a mis necesidades y siiiiii funciona!!!

Última edición por MAXIUM fecha: 13-01-2009 a las 22:19:12.
Responder Con Cita
  #9  
Antiguo 13-01-2009
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Borrar por doble post

Última edición por MAXIUM fecha: 13-01-2009 a las 22:19:02. Razón: Borrenlo porfa, me equivoque
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 19:22:15.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi