Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Evitar el refresco al mover objeto (https://www.clubdelphi.com/foros/showthread.php?t=50063)

pjmedina 07-11-2007 12:25:22

Evitar el refresco al mover objeto
 
Buenas a todos,

El problema lo tengo en una aplicación el delphi 7, en la cual tengo un formulario con un timer, y un panel que debe de ir moviendose cada vez que se ejecuta el timer.

Código Delphi [-]
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if P00.top>=10 then
P00.Top:=P00.Top-10
else
P00.top:=400;
end;





El problema que tengo con esto, es que cada vez que se ejecuta el timer, hace como un parpadeo el formulario. Me gustaría saber si hay alguna forma de evitar eso.

Gracias.

dec 07-11-2007 12:56:44

Hola,

Prueba a ver poniendo la propiedad "DoubleBuffered" del formulario a "True".

pjmedina 07-11-2007 13:15:37

Cita:

Empezado por dec (Mensaje 244113)
Hola,

Prueba a ver poniendo la propiedad "DoubleBuffered" del formulario a "True".

Lo he probado y si que se me soluciona, lo que pasa me siguen parpadeando el resto de objetos que tengo en el formulario, debo de ponerle doblebuffered a todos los objetos.

Saludos y muchas gracias por contestarme.

Delphius 07-11-2007 14:20:59

Cita:

Empezado por pjmedina (Mensaje 244117)
Lo he probado y si que se me soluciona, lo que pasa me siguen parpadeando el resto de objetos que tengo en el formulario, debo de ponerle doblebuffered a todos los objetos.

Saludos y muchas gracias por contestarme.

¿Cómo es que te parpadean los otros objetos? ¿El panel tiene objetos?
Acabo de hacer la prueba y con sólo asignar el doublebuffered a la forma me anda bien.

Si puedes indicarnos mejor el problema. A lo mejor se trata de otra cosa... No se... supuestamente con asignar dublebuffered a la forma ya te debería andar bien.

Al ser algo visual ¿Podrías mandarnos un print screen para ver que es lo que sucede?

Saludos,

pjmedina 13-11-2007 09:43:30

Ya lo resolví, perona que no te contestase antes pero es que he estado liado.

Muchas gracias por la ayuda.

MAXIUM 13-11-2007 18:20:33

Podrías decirnos cual fue tu solución por si se presenta algún ususrio con el mismo asunto. :p

marcosl 23-11-2007 17:59:29

uses Windows.

Bloques tu ventana con..

LockWindowUpdate(self.handle)

moves todo lo que quieras y despues de que muevas todo la desbloqueas..

LockWindowUpdate(0)


Ô_o

pjmedina 26-11-2007 17:42:06

Activar DoubleBuffered
 
Cita:

Empezado por MAXIUM (Mensaje 245812)
Podrías decirnos cual fue tu solución por si se presenta algún ususrio con el mismo asunto. :p

Lo que hice para solucionar el problema fue poner el DoubleBuffered a todos los objetos que tenían esta propiedad, con esto se resolvió el problema. Siento haber tardado tanto en contestarte pero no he podido.

Saludos.


La franja horaria es GMT +2. Ahora son las 13:17:52.

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