david.rguez
17-01-2007, 13:37:15
Hola a todos/as:
Estamos intentando que un formulario extraiga una serie de información de una base de datos referente a imágenes y las muestre en dicho formulario. No podemos saber, en tiempo de diseño, cuántos elementos van a ser.
En diversos posts de este foro he encontrado gente explicando cómo se hace. He probado a seguir esos pasos, pero no me funciona bien.
Este es mi código:
tadepo.Open;
i:= 0;
imagenB:= TBitmap.Create;
while tadepo.Eof = false do
begin
tadepo.Next;
// Recuperamos los datos
imagen:= tadepoimagen.Value;
porcentaje:= tadepoporcentaje.Value;
x:= tadepox.Value;
y:= tadepoy.Value;
imagenB.LoadFromFile(ExtractFilePath(Application.ExeName) + 'imagenes\' + Trim(imagen));
imag:= TImage.Create(Self);
imag.Name:= 'deposito'+IntToStr(i);
imag.Parent:= Self;
imag.Width:= 150;
imag.Height:= 150;
imag.Picture.Bitmap:= imagenB;
imag.Top:= y;
imag.Left:= x;
imag.Visible:= true;
imag.Stretch:= true;
i:= i+1;
end;
El problema es que únicamente me aparece el último elemento detectado; es decir, se carga los anteriores al sobreescribir. Pensando con lógica, eso parece el comportamiento correcto pues se utiliza la misma variable; pero son tantos los posts que decían que de esta manera funcionaba que lo probé.
¿Alguien sabría decirme qué error cometo?
Gracias.
Estamos intentando que un formulario extraiga una serie de información de una base de datos referente a imágenes y las muestre en dicho formulario. No podemos saber, en tiempo de diseño, cuántos elementos van a ser.
En diversos posts de este foro he encontrado gente explicando cómo se hace. He probado a seguir esos pasos, pero no me funciona bien.
Este es mi código:
tadepo.Open;
i:= 0;
imagenB:= TBitmap.Create;
while tadepo.Eof = false do
begin
tadepo.Next;
// Recuperamos los datos
imagen:= tadepoimagen.Value;
porcentaje:= tadepoporcentaje.Value;
x:= tadepox.Value;
y:= tadepoy.Value;
imagenB.LoadFromFile(ExtractFilePath(Application.ExeName) + 'imagenes\' + Trim(imagen));
imag:= TImage.Create(Self);
imag.Name:= 'deposito'+IntToStr(i);
imag.Parent:= Self;
imag.Width:= 150;
imag.Height:= 150;
imag.Picture.Bitmap:= imagenB;
imag.Top:= y;
imag.Left:= x;
imag.Visible:= true;
imag.Stretch:= true;
i:= i+1;
end;
El problema es que únicamente me aparece el último elemento detectado; es decir, se carga los anteriores al sobreescribir. Pensando con lógica, eso parece el comportamiento correcto pues se utiliza la misma variable; pero son tantos los posts que decían que de esta manera funcionaba que lo probé.
¿Alguien sabría decirme qué error cometo?
Gracias.