FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Movimiento de un Timage
Hola
Tengo en un Form un botón que cuando pinchas una imagen cambia de posición y se coloca en una nueva ubicación. image.Top := 50; image.Left := 50; Lo que necesito es que cuando pincho en el botón, la imagen se mueva por el form desde la ubicación inicial hasta la ubicación final antes mencionada. Como lo tengo ahora pues desaparece y aparece en el nuevo sitio. Si se puede hacer como se le dice que recorrido lleva la TImage hasta la posición final ? Gracias |
#2
|
||||
|
||||
puedes simular un recorrido de la siguiente forma:
Declara 2 variables globales al form, llamadas posx y posy. Pincha un objeto TTimer en el formulario, y dale un tiempo de 100 ms En el onclick del botón activas el Timer: Timer.active := true; En el evento que se disparará del timer cada 100 ms le pones el siguiente código: image.left := posx; image.top := posy; if posx < 300 then posx = posx + 1; if posy < 300 then posy = posy + 1; self.repaint; if (posx>=300) and (posy >= 300) then timer.enabled := false Esto te llevará la imagen en diagonal hasta las coordenadas (300,300) Para cambiar la velocidad modifica los 100 ms del timer Para darle un camino deberças jugar con los incrementos de las coordenadas posx y posy. Lo importante es el self.repaint, si no lo pones no vas a ver nada hasta el final! Suerte! Edu |
#3
|
|||
|
|||
No me funciona correctamente
Hola
Algo me hace pero al dar al botón no se donde se va la imágen pero las scrollbar se hacen pero que muy pequeñas y por mucho que busco la imagen no la encuentro. hago una prueba en un form nuevo con el siguiente code: (perdona que no meta el code en tag, no se donde están. procedure TForm3.Button1Click(Sender: TObject); begin Timer1.Enabled := true; end; procedure TForm3.Timer1Timer(Sender: TObject); Var Posy : integer; Posx : integer; begin image1.left := posx; image1.top := posy; if posx < 300 then posx := posx + 1; if posy < 300 then posy := posy + 1; self.repaint; if (posx>=300) and (posy >= 300) then timer1.enabled := false end; El timer se pone en marcha al dar al botón, pero la imágen desaparece y no se donde va. Gracias |
#4
|
|||
|
|||
Ya se donde está el fallo
Hola
Ya se lo que había puesto mal. Las Var no estaban globales en el form, las había puesto en los botones. Ya me funciona Gracias. |
|
|
|