Delphi - Imágenes

 
Vista:

Imágenes

Publicado por Cristián (115 intervenciones) el 04/05/2003 17:47:31
Hola!! yo de nuevo, Bueno... tengo en un arreglo la direccion en disco duro de varias imágenes, osea.. "c:\imagenes\imagen1.jpg" algo asi y todas van "imagen2.jpg, imagen3.jpg" etc... ahora... quiero que cada imagen se muestre en un Image. Lo que hize fue poner un componente Image por cada imagen que mostrare o que utilizare, pero como le hago para que en un ciclo cada componente Image cargue y muestre cada imagen que se encuentra en el arreglo (que tiene las direcciones). Así cada componente Image muestrará una imágen. Este es una forma que yo pense... diganme si hay alguna forma de hacerlo. Pense en otra... como crear los componente en tiempo de ejecucion, pero no se hacer esto :'( Espero alguien me ayude.. ya sea por una o por ambas soluciones,, :) Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Imágenes

Publicado por Diego Romero (636 intervenciones) el 04/05/2003 19:26:15
Pon un TImage en el form y un TButton.

Var
indImagen: integer;

procedure TForm1.Siguiente;
begin
Inc(indImagen);
try
Image1.Picture.LoadFromFile('C:\Imagenes\Imagen'+IntToStr(indImagen)+'.jpg');
except
ShowMessage('No mas imagenes.');
end; { try }
end;

procedure TForm1.Button1Click(Sender: TObject); { OnClick del TButton }
begin
Siguiente;
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Imágenes

Publicado por Oye Diego? (115 intervenciones) el 05/05/2003 08:10:22
Gracias por responderme.... pero.... todavia no resuelvo mi problema... entiendo el codigo que pusiste.... pero....lo que hace es que en un mismo Image pasa todas las imagenes.... y lo que quiero es que coloque cada imagen en un Image diferente.... Yo si se cuantas imagenes pondre.... por lo tanto se cuantos Images poner... Mira.... de la linea de codigo que pusiste,,,,, quiero hacer algo asi:

Image1.Picture.LoadFromFile('C:\Imagen'+IntToStr(indImagen)+'.jpg');
Image2.Picture.LoadFromFile('C:\Imagen'+IntToStr(indImagen)+'.jpg');
Image3.Picture.LoadFromFile('C:\Imagen'+IntToStr(indImagen)+'.jpg');

Pero con la diferencia en que en un tipo ciclo.... Lo que pasa es que seria algo asi:

Image[indImagen].Picture...
Image[indImagen].Picture...
Image[indImagen].Picture...

Pero creo que esto no se puede.... Ese es mi problema... de como lo hago en un ciclo.... O si me puedes decir como crear los componentes en tiempo de ejecucìon me ayudaria tambien.

El caso es que necesito que se muestren todas las imagenes al mismo tiempo (en Images diferentes).
Espero me ayudes, Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Imágenes

Publicado por BigLuis (463 intervenciones) el 05/05/2003 16:49:00
Prueba con esto:
Declara una variable I:Integer;
Asumimos que Formulario contiene los TImage.
for I:=0 to Formulario.ConTrolCount-1 do
if Formulario.Controls[I] is TImage then
begin
TImage(Formulario.Controls[I]).Loadfromfile(Utiliza la forma que te dijo Diego); ¡¡¡CUIDADO no utilices I para el numero de Imagen ya que I almacena todos los componentes del formulario no solo los TImage, por eso luego hacemos la comparacion if .....is TImage.!!!
end;
Asi te cargará desde la primera imagen hasta la ultima en los TImage delde el primero hasta el último y como sabes exactamente el numero de TImages=Numero de Imagenes no te dará errores.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Imágenes

Publicado por Diego Romero (636 intervenciones) el 05/05/2003 18:52:07
Es correcto siempre y cuando, y como dice BigLuis, solo si sabes exactamente cuántas imagenes hay para cargar.
Otra forma sería crear en tiempo de ejecución los TImages a medida que los necesites. Puedo escribir un ejemplo si quieres.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Si!! el ejemplo

Publicado por Cristián (1 intervención) el 05/05/2003 22:08:35
Gracias.... si, espero me puedas dar un ejemplo :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Imágenes

Publicado por BigLuis (463 intervenciones) el 04/05/2003 20:50:08
Pienso por tu pregunta que lo que quieres hacer es una especie de visualizador de Thumbnails ¿no?. Puedes mostrar las imagenes de un TListView de la sigueinte forma:
1º Conviertes las imágenes que tienes a BMP y al tamaño deseado escalandolas.
2º Las agregas a un componente TImageList
3º En el ListView a cada Item agregas la imagen que tienes en el Image List en la propiedad ImageIndex (creo que se llama asi).
(Yo lo he hecho y funciona pero cuidado con la memoria, a mi con una lista de 250 Bitmaps me cascó).
Otra solucion es dibujar en el Canvas del formulario o de un TImage todas las imagenes, una tras otra, a la escala que quieras.Yo tambien lo he hecho pero tengo el problema sin solucionar de que cuando excedo el tamaño del canvas ya no se ven las que dibuja.Estoy ahora mirando como puedo hacerlo con un ScrollBox, pero este no tiene Canvas.Tambien probaré de añadir al ScrollBox para cada imagen un panel en runtime y dibujar en su canvas y asi el Sc rollBox seguro que se va adaptando al nuevo tamaño. En fin ya veremos.
Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar