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 29-06-2006
jorgito.crazy jorgito.crazy is offline
Miembro
 
Registrado: may 2006
Posts: 54
Poder: 19
jorgito.crazy Va por buen camino
Red face Mover Imagen

Hola a todos, ¿por que?, cuando muevo una imagen, esta hace como si se cargace otra vez en cada posición que adopta, es decir se pone blanca como si se refrescara, he visto en este foro que se habla de OpenGL, ¿será que tengo que usar esta libreria para mi proposito?, ¿supongo que OpenGL se usa para todo lo que tenga que ver con gráfico no?, me gustaria una ayudita con esto de OpenGL, pues me interesa, lo único que sé hasta ahora es que tengo que agregarlo a la USES de la Form. Ha, la imagen la muevo asi, por si ayuda en algo:

Timer1(On Timer)[Interval:=1]: Image1.left:=image1.left+1;

Gracias de antemano
Responder Con Cita
  #2  
Antiguo 02-07-2006
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Poder: 19
Deiv Va por buen camino
Yo muevo así (con u TTimer de 100 o 150en velocidad y en propiedades: Enabled=false):
Código Delphi [-]
var
  i: integer=0;
  G:TBitMap;
implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
   G:= TBitMap.Create;
   G.LoadFromFile('MiBMP');
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Canvas.Brush.Color := clBtnFace;
  Canvas.FillRect(Rect(10+i-2, 10, 10+I, 10+G.Height)); //borra el anterior rect
  Bitblt(Canvas.Handle, 10 + i, 10, G.Width, G.Height, G.Canvas.Handle, 0, 0, SRCCOPY);
  i:=i+2;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
   G.Free;
end;

ó con una TImage:
Código Delphi [-]
var
  i: integer=0;
implementation
procedure TForm1.Timer2Timer(Sender: TObject);
begin
   Image1.Left:=Image1.Left+4;
   i:=i+4;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
  Form1.DoubleBuffered:=true;
end;
Espero te sirva
Saludos
Responder Con Cita
  #3  
Antiguo 03-07-2006
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Cita:
Empezado por jorgito.crazy
Hola a todos, ¿por que?, cuando muevo una imagen, esta hace como si se cargace otra vez en cada posición que adopta, es decir se pone blanca como si se refrescara, he visto en este foro que se habla de OpenGL, ¿será que tengo que usar esta libreria para mi proposito?, ¿supongo que OpenGL se usa para todo lo que tenga que ver con gráfico no?, me gustaria una ayudita con esto de OpenGL, pues me interesa, lo único que sé hasta ahora es que tengo que agregarlo a la USES de la Form. Ha, la imagen la muevo asi, por si ayuda en algo:

Timer1(On Timer)[Interval:=1]: Image1.left:=image1.left+1;

Gracias de antemano
Por partes:

* Cada vez que mueves algo (entre otras cosas) se repinta en la nueva posición, pero que veas ese pestañeo es señal de que o no tiene memoria suficiente para mover una imagen tan grande o que está haciendo un uso incorrecto de los buffers.

* Si nunca has usado OpenGL, te recomiendo que busques la librería GLScene, que es muchísimo más sencilla e igualmente potente. Es una auténtica librería de componentes (orientada a objetos) con muchas demos que te ayudarán a empezar.
Responder Con Cita
  #4  
Antiguo 03-07-2006
jorgito.crazy jorgito.crazy is offline
Miembro
 
Registrado: may 2006
Posts: 54
Poder: 19
jorgito.crazy Va por buen camino
Bien!, muchas gracias Diev.

En cuanto a ti Kuan, en el ejemplo de Diev (el segundo), me pone form1.doublebuffered (algo asi), tu me dices que puede que use mal los buffers, ¿puedes darme una ayuda con esto de los Buffers?, es primera vez que veo esto, y bueno, donde puedo encontrar Glscene, vere si lo encuentro, y muchas gracias, además ya sé que me dijiste que glscene es menos complicado, pero puedes por favor ponerme un ejemplo de código simple para ver como funciona OpenGL, es que me muero de curiosidad, Gracias de nuevo Kuan, un Saludo.

Última edición por jorgito.crazy fecha: 03-07-2006 a las 16:11:08.
Responder Con Cita
  #5  
Antiguo 03-07-2006
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Si usas el buscador del foro encontrarás este hilo o este otro en el que te indican un par de sitios en los que puedes obtener la librería.

Sobre lo del ejemplo... instálala y ejecuta cualquiera de las demos, luego mira el código y verás lo simple que es: un par de componentes, y crear formas es tan sencillo como montar un "TENTE".
Responder Con Cita
  #6  
Antiguo 03-07-2006
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Cita:
Empezado por jorgito.crazy
[...] ¿puedes darme una ayuda con esto de los Buffers?, [...]
Lo olvidaba.
En general siempre que utilices algún tipo de animación, la que sea, es necesario activar el doble buffering que básicamente consiste en tener dos espacios en memoria reservados para ir "dibujando" la imagen, así mientras se escribe uno se lee el otro... Resumiendo mucho, mucho.
Responder Con Cita
  #7  
Antiguo 03-07-2006
jorgito.crazy jorgito.crazy is offline
Miembro
 
Registrado: may 2006
Posts: 54
Poder: 19
jorgito.crazy Va por buen camino
Disculpa, pero no en encuentro Glscene en el sitio que señalan los hilos, he bajado algo de glscene: "GLScene_SnapShot_100506.7z", como ya vez tiene una extensión extraña, supongo que no es la librería sino un utilitario de esta, exactemente de donde lo puedo bajar, en cuanto a lo del Buffer, por favor explicamelo un poco más, por ejemplo, ¿Como trabajaría DoubleBuffer en un richedit, existe triplebufer?. Por lo que parece sabes mucho acerca de este tema, ya que no tengo el Glscene todavía, por favor te lo pido, dame un ejemplo, un empujón, una luz de como usar OpenGl que es el que tengo a mano y muchas gracias por la ayuda.
Responder Con Cita
  #8  
Antiguo 04-07-2006
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Cita:
Empezado por jorgito.crazy
Disculpa, pero no en encuentro Glscene en el sitio que señalan los hilos, he bajado algo de glscene: "GLScene_SnapShot_100506.7z", como ya vez tiene una extensión extraña, [...]
Es la librería, lo que ocurre es que está comprimida con 7-zip. Busca la extensión en Google (".7z") y encontrarás la descarga. Luego sólo tienes que descomprimirlo e instalar los paquetes que correspondan a la versión de Delphi con la que trabajas. Si ya lo has hecho alguna vez no tardarás mucho.
Yo la estoy mirando ahora mismo y veo que trae algunas demos que me ayudaron mucho.
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
Mover componentes masterwolf_fzh C++ Builder 0 08-06-2006 19:29:54
Mover dos Form lucasarts_18 Varios 2 24-04-2005 22:06:00
Mover una imagen encima de otra maravert Gráficos 2 24-02-2005 01:04:45
Impedir mover el form y redimensionar al mover barra tareas jealousy API de Windows 0 15-06-2004 12:58:05
Mover tablas WaRRanT MySQL 2 10-03-2004 21:42:32


La franja horaria es GMT +2. Ahora son las 10:04:33.


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