Club Delphi  
    Paypal   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 03-11-2007
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.503
Poder: 23
MAXIUM Va camino a la fama
Question Sin que se borre

Hola, mi problema es el siguiente:

cada vez que uso el canvas para dibujar algo ya sea sobre el TForm o un TImage el dibujo se borra cuando superpongo otra ventana, minimizo, etc.

La solución sería colocar la rutina del dibujo en el evento OnPaint, pero lo que yo deseo es que se dibuje al momento de pulsar un TButton o similar.

¿Como lo hago?
Responder Con Cita
  #2  
Antiguo 03-11-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Una posible solución tal vez pase por usar un determinado procedimiento, que sea llamado desde el "botón" y desde el evento "OnPaint" correspondiente. ¿No?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 04-11-2007
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.503
Poder: 23
MAXIUM Va camino a la fama
....no....
Responder Con Cita
  #4  
Antiguo 04-11-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Cita:
Empezado por MAXIUM Ver Mensaje
....no....
Con estas Respuestas da gusto ayudar, no te parece Dec?.
Saludos
Responder Con Cita
  #5  
Antiguo 04-11-2007
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.503
Poder: 23
MAXIUM Va camino a la fama
Lo que pasa es que, el que esta preguntando soy yo y en segundo lugar da la impresión que esta tratando de adivinar la solución.

Perdonen si he ofendido a alguien
Responder Con Cita
  #6  
Antiguo 04-11-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 27
Delphius Va camino a la fama
Cita:
Empezado por MAXIUM Ver Mensaje
Lo que pasa es que, el que esta preguntando soy yo y en segundo lugar da la impresión que esta tratando de adivinar la solución.

Perdonen si he ofendido a alguien
A mi no me afende "demasiado", pero tampoco me agrada que sueltes la frase diciendo que tu eres el que pregunta. Aqui estamos para ayudarnos entre todos y si es necesario preguntar al que que inició el hilo (o reinició) hay que hacerlo.

Si a tu parecer Dec o Caral están adivinando la solución se debe a que tu no explicas en profundidad y correctamente cual es tu problema, duda o inquietud.

No te enojes conmigo, veo que llevas tiempo aqui. Y creo que ya deberías saber que hay maneras de decir las cosas. Por más sutiles que hayan sido tus palabras no creo que a Caral, a Dec y/o a cualquiera que haya sido la persona que te ofrezca ayuda le haya gustado leer tu comentario.

A ver... puede que esté adivinando...
¿Que tan compleja debe ser la imagen a dibujar?
¿Siempre es la misma?
¿Se forma por algún procedimiento en el que intervenga el azar?

Una posible solución es que si el dibujo a obtener es siempre el mismo lo más economico es emplear un TImage con la imagen ya guardada y hacer visible el TImage cuando sea necesario.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #7  
Antiguo 04-11-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Cita:
Empezado por MAXIUM Ver Mensaje
Lo que pasa es que, el que esta preguntando soy yo y en segundo lugar da la impresión que esta tratando de adivinar la solución.
Caramba Entonces ¿no se te pueden hacer preguntas?. Pues nada, yo pensaba preguntarse si habías comprobado que eso pasaba con el TImage ( ya que lo que se dibuja sobre el canvas de un TImage te aseguro que no se borra) pero mejor no pregunto nada, no te vaya a parecer mal
Responder Con Cita
  #8  
Antiguo 04-11-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Bueno. A mí no me importa preguntar ni que me pregunten, así que, aprovechando la coyuntura, Domingo, ¿cómo es que lo que se dibuja en el "TImage" no se borra? ¿Incluso sin guardar la imagen? ¿Por qué razón o razones? Si alguien puede dar aunque sea una pista acerca de esto quedaré agradecido, como en tantas otras ocasiones.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #9  
Antiguo 04-11-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 24
ArdiIIa Va por buen camino
Pues yo creo que simplificando y viendo la herencia, todo queda reducido a esto....

Código Delphi [-]
procedure TGraphicControl.WMPaint(var Message: TWMPaint);
begin
  if Message.DC <> 0 then
  begin
    Canvas.Lock;
    try
      Canvas.Handle := Message.DC;
      try
        Paint;
      finally
        Canvas.Handle := 0;
      end;
    finally
      Canvas.Unlock;
    end;
  end;
end;
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #10  
Antiguo 04-11-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Pues dec, el proceso es el siguiente. Cuando tu dibujas sobre el canvas de un TImage pueden pasar tres cosas, dependiendo de lo que contenga la propiedad Picture del TImage:
  1. Si la propiedad Picture = nil, es decir no hay ninguna imagen cargada, internamente se crea un TBitmap del mismo tamaño que el TImage y se le asigna a la propiedad Picture. Así las operaciones de dibujo se realizan sobre ese bitmap y quedan guardadas en el, encargándose el TImage de mostrarlo correctamente en pantalla.
  2. Si la propiedad Picture es un TBitmap pues se dibuja sobre el, y al igual que en el caso anterior, es el TImage el encargado de mostrarlo en pantalla.
  3. Por ultimo, si la propiedad Picture no es un TBitmap, por ejemplo una imagen Jpeg, cualquier intento de dibujar sobre el canvas del TImage provocara un error.

Si luego quieres guardar la imagen dibujada no te queda mas remedio que usar el SaveToFile como siempre
Responder Con Cita
  #11  
Antiguo 04-11-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Pues muchas gracias por vuestras explicaciones. O sea, que se dibuja sobre un "TBitmap" y este "persiste" en todo caso, no como cuando dibujas en otro "canvas" cualquiera. Bueno es saberlo, por si acaso fuera menester algún día hacer algo al respecto. Gracias otra vez.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #12  
Antiguo 04-11-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Como se aprende en este club, Preguntando y repreguntando.
Tambien aprendi alfo nuevo hoy, Gracias.
Saludos
Responder Con Cita
  #13  
Antiguo 05-11-2007
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.503
Poder: 23
MAXIUM Va camino a la fama
Ya, si perdonen, es que así como les molesto mi respuesta de ese modo me sentí con Dec.

Fue una respuesta de esas que dan en soprote de Microsoft

Pero bueno, perdonen, me descargue con el pobre Dec. Gracias por las respuestas
Responder Con Cita
  #14  
Antiguo 05-11-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Pues el caso es que yo no te estaba preguntando nada... y si eso fue lo que entendiste sin duda es porque me expliqué mal. Mi "¿No?" al final es más bien una "coletilla" que suele usarse a veces cuando se termina una frase, como, por ejemplo, "Hoy iremos al cine, ¿no?", así que yo estaba proponiendo una posible solución (según yo), y mi "¿No?" "preguntaba" (y no sólo a ti) qué tal parecía dicha solución.

No iba con segundas, ni con terceras, ni tenía otra intención que la dicha.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #15  
Antiguo 13-11-2007
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.503
Poder: 23
MAXIUM Va camino a la fama
Em compilador me dice uq e TImage no posee la propiedad WMPaint
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como dibujar en el escritorio sin que se borre ? fafastrungen Gráficos 2 29-01-2007 00:15:14
Es Normal Al Presionar ESC en DBDRID se Borre Registro en Uso???? AGAG4 Varios 3 06-04-2006 19:33:34
ADO- Como puedo saber cuanto registros borre o actualice mgaray Conexión con bases de datos 4 11-05-2005 21:28:47


La franja horaria es GMT +2. Ahora son las 22:53:21.


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