Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-09-2008
dantemol dantemol is offline
Registrado
 
Registrado: sep 2003
Ubicación: Salta - Argentina
Posts: 8
Poder: 0
dantemol Va por buen camino
Question Form no refresca el movimiento de una imagen por codigo

Hola:
Tengo un problema y no entiendo como solucionarlo. La cuestión es que muevo una imagen por mi formulario por código, cuando se da una determinada condición, a través de la propiedad Left o Top y este cambio no se visualiza en la pantalla, sin embargo cuando este movimiento lo ejecuto pulsando un botón (con el código anterior) se visualiza correctamente. Use refresh en el formulario, en la imagen y nada. Muchas gracias por combatir mi ignorancia. Saludos.
Responder Con Cita
  #2  
Antiguo 26-09-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Todos los mensajes de repintado tienen poca prioridad en windows, si lo mueves por código varias veces, solo verás la última posición, quizás sea eso.

Código Delphi [-]
for i:= 1 to 30 do
begin
  image1.left := image1.left + i;
  image1.Update; // obligamos a que se pinte inmediatamente y se vea el cambio
end;

Si mueves más controles, quizás te interese Form1.Update, ya que forzaría el repintado de toda la ventana y ésto hace que se "refresquen" todos y cada uno de los componentes que tenga.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 26-09-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Disculpen que me cole en la fiesta,
Y si se observa cierto efecto molesto al "repintar" la ventana (o parte de ella) debería cambiarse a true la propiedad DoubleBuffered del Form (o tal vez con la del componente baste). Al ser una propiedad pública y no publicada, no se la encuentra disponible en el Inspector. Debe hacerse por código.
Tengo entendido que a partir de la versión 2007 o 2009 recién se pasó esta propiedad a published.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #4  
Antiguo 26-09-2008
dantemol dantemol is offline
Registrado
 
Registrado: sep 2003
Ubicación: Salta - Argentina
Posts: 8
Poder: 0
dantemol Va por buen camino
Unhappy Aun no visualiza el salto

Ese un solo movimiento el que hago:

Image1.Left := Image1.Left + 200;

con ningún Update funcionó ni en el Form, ni en Image1; lo solucioné a medias poniendo el código para mover en el evento OnResize se que no es lo correcto, será porque es una imagen PNG? voy a convertira a JPG y les cuento. Saludo

Perdón, debo aclarar algo: el código para el movimiento lo ejecuto al crear el formulario y al darse cierta condición la imagen se desplaza a una posición u otras, tendrá algo que ver?

Última edición por dantemol fecha: 26-09-2008 a las 17:22:48.
Responder Con Cita
  #5  
Antiguo 26-09-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por dantemol Ver Mensaje
Ese un solo movimiento el que hago:

Image1.Left := Image1.Left + 200;

con ningún Update funcionó ni en el Form, ni en Image1; lo solucioné a medias poniendo el código para mover en el evento OnResize se que no es lo correcto, será porque es una imagen PNG? voy a convertira a JPG y les cuento. Saludo

Perdón, debo aclarar algo: el código para el movimiento lo ejecuto al crear el formulario y al darse cierta condición la imagen se desplaza a una posición u otras, tendrá algo que ver?
Me parece que es mucho más probable que sea a causa de que lo haces en el evento OnCreate. OnCreate se ejecuta cuando se crea el form, distinto es cuando se muestra, es por ello que no ves el movimiento, muy seguramente lo ves en su posición final. Posiblemente el evento apropiado sea OnActivate.

No creo que se deba al formato de la imagen; al menos intuyo que es poco probable. Me inclino a que es a causa de OnCreate.

Sería oportuno que muestres el código tal cual lo tienes.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #6  
Antiguo 29-09-2008
Avatar de krlox31416
krlox31416 krlox31416 is offline
Miembro
 
Registrado: jun 2008
Ubicación: San Juan del Río, Querétaro, México
Posts: 75
Poder: 16
krlox31416 Va por buen camino
Pega tu imagen a un panel para que veas la diferencia
y programa en el evento OnActivate
Código Delphi [-]
procedure TForm1.FormActivate(Sender: TObject);
Var i: Integer;
begin
for i:= 1 to 500 do
begin
Panel1.left := image1.left + i;
Panel1.Update; // obligamos a que se pinte inmediatamente y se vea el cambio
end;

y si no pureba estas lineas

Código Delphi [-]
// prueba estas líneas de código y nos cuentas que tal te fue!!!
// es cuestion de jugar con los intervalos y el tamaño de tu imagen
// agrega un timer
procedure TForm1.Timer1Timer(Sender: TObject);
var band: Boolean;
begin
if band = False Then
   begin
   if Image1.Left >= Form1.Width - 1 Then
      begin
      band := True;
      end;
   end
   else
   begin
   if Image1.Left <= 1000 Then
   band := False;
   end;
if band = False Then
   begin
   Image1.Left := Image1.Left + 100;
   end
   else
   Image1.Left := Image1.Left - 100;
end;
__________________
el cielo me dio un cariño sin merecerlo... chimikuilo!!!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Imagen animada en la esquina superior izq de mi form Gelmin Gráficos 6 22-08-2007 03:17:31
Convertir un form junto con sus controles en una imagen Pernorak C++ Builder 7 30-05-2007 13:37:52
Cargar Imagen desde un Form secundario Bicholoco Gráficos 11 02-04-2007 18:11:51
Imagen de Fondo en form lafirma OOP 1 28-08-2003 19:59:41
Movimiento de Form ChristianS Varios 2 04-06-2003 17:57:40


La franja horaria es GMT +2. Ahora son las 08:29:17.


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