Tema: BMP en grid
Ver Mensaje Individual
  #1  
Antiguo 21-07-2008
harpo harpo is offline
Miembro
 
Registrado: jul 2006
Posts: 35
Reputación: 0
harpo Va por buen camino
BMP en grid

Buenas,

necesito mostrar una serie de imágenes jpeg en un grid (concretamente un GridView de http://www.bergsoftware.net/). El problema de este grid es que con él solo se pueden mostrar bmp de 32x32 .

Mi código de pruebas:

Código:
var
  IO        :TImageEnIO;
  Stream    :TStream;
  BMPStream :TStream;
  BMP       :TBitmap;
begin
  try
    IO := TImageEnIO.Create(Self);
    BMP := TBitmap.Create;
    BMPStream := TMemoryStream.Create;
    if ResultType = rtImage then
    begin
      Stream:=(NewRecord as TFileData).Thumbnail;
      if Assigned(Stream) then
        IO.LoadFromStreamJPEG(Stream);
        //IO.SaveToFileBMP('C:\p.bmp');
        IO.SaveToStreamBMP(BMPStream);
        BMP.LoadFromStream(BMPStream);
        BMP.Width := 32;
        BMP.Height := 32;
        DBImageList.Insert(DBImageList.Count-1,BMP,nil);
        gvResult.CellByName['image','Last'].AsInteger := DBImageList.Count-1;
    end;
  finally
    IO.Free;
    BMP.Free;
    BMPStream.Free;
    Stream.Free;
  end;
IO es un componente de ImageEn (http://www.hicomponents.com) que en este caso lo único que hace es cargar el jpeg y guardarlo en un stream bmp. El problema lo tengo al guardar las imágenes en la TImageList, si las añado en tiempo de diseño se muestran bien, sin embargo, en runtime no. He probado a no hacer el free de BMP, pero igual.

Alguna idea?

Gracias
Responder Con Cita