Ver Mensaje Individual
  #3  
Antiguo 26-01-2015
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
¿Cómo están guardadas las imágenes? (Campos blob? todas en la misma tabla?)
¿Qué formato de imágenes son?
¿Qué tamaño tienen las imágenes?
¿Qué tamaño quieres que tengan en la pantalla?

Se me ocurre que podrías leerlas una a una, reducirlas de tamaño y ponerlas en un ListView.

Yo lo hago así:

Código Delphi [-]
// Variables
tamano : integer;
ILGaleria: TImageList;

// Valores iniciales
tamano := 50;

procedure TDMGaleriaImagen.CargaImageList(Lista: TListView);
var
  Imagen : TImage;
  Item : TListItem;
  RDim : TRect;
begin
  // Borro lo que hay en la lista
  Lista.Clear;

  // Asigno el tamaño que van a tener las miniaturas
  ILGaleria.Clear;
  ILGaleria.Height := Tamano;
  ILGaleria.Width := Tamano;

  RDim.Left := 0;
  RDim.Top := 0;
  RDim.Right := ILGaleria.Height;
  RDim.Bottom := ILGaleria.Width;

  // Carga de imagenes
  Imagen := TImage.Create(Self);
  try
     with QMGaleriaImagen do
     begin
        Close;
        Open;
        First;
        // Recorro la galería de imagenes
        while not EOF do
        begin
           // Agrego un ítem al TListView
           Item := Lista.Items.Add;
           Item.Caption := QMGaleriaImagen.FieldByName('NOMBRE').AsString;
           Item.Data := Pointer(QMGaleriaImagen.FieldByName('CODIGO').AsInteger);

           // Cargo la imagen con el Blob que corresponda de la tabla de imagenes
           Imagen.Picture := nil;
           DMMain.RefrescarImagen(Imagen, QMGaleriaImagenCODIGO.AsInteger);

           // Modifico el tamaño de la imagen
           Imagen.Picture.Bitmap.Canvas.StretchDraw(RDim, Imagen.Picture.Graphic);
           Imagen.Picture.Bitmap.Height := ILGaleria.Height;
           Imagen.Picture.Bitmap.Width := ILGaleria.Width;

           // Asigno la imagen del ImageList al ítem de TListView
           Item.ImageIndex := ILGaleria.Add(Imagen.Picture.Bitmap, nil);

           Next;
        end;
        Close;
     end;
  finally
     Imagen.Free;
  end;
end;
Responder Con Cita