Ok, creo que ya lo tengo.
He hecho algunas modificaciones a tu código en función a un ejemplo que he pillado por internet y esto parece que funciona como quiero.
Código Delphi
[-]
procedure TNTFormInmuebles.InsertaDatos(Tipo: String);
var
N: SmallInt;
Stream: TStream;
ImagenBMP: TBitmap;
ImagenJPG: TjpegImage;
StretchedBMP: TBitmap;
begin
DataModule1.EDBQuery1.SQL.Clear;
DataModule1.edbquery1.SQL.Add('SELECT * FROM DOCUMENTOS WHERE FINCA='+QuotedStr(NtEditCodigo.Damevalor)+' AND TIPO='+QuotedStr(Tipo));
DataModule1.EDBQuery1.ExecSQL;
DataModule1.EDBQuery1.First;
ListView1.Clear;
ImageList1.Clear;
N:=0;
while not DataModule1.EDBQuery1.Eof do begin
ImagenBMP:= Tbitmap.create;
ImagenJPG:= TjpegImage.create;
StretchedBMP := TBitmap.Create;
StretchedBMP.Width := ImageList1.Width;
StretchedBMP.Height := ImageList1.Height;
if DataModule1.EDBQuery1.FieldByName('TIPOI').AsString='J' then begin
Stream := DataModule1.EDBQuery1.CreateBlobStream(DataModule1.EDBQuery1.FieldByName('IMAGEN') as TBlobField, bmRead);
ImagenJPG.LoadFromStream(stream);
ImagenBMP.Height:= ImagenJPG.Height;
ImagenBMP.Width:= ImagenJPG.Width;
ImagenBMP.Assign(ImagenJPG);
end;
if DataModule1.EDBQuery1.FieldByName('TIPOI').AsString='B' then begin
Stream := DataModule1.EDBQuery1.CreateBlobStream(DataModule1.EDBQuery1.FieldByName('IMAGEN') as TBlobField, bmRead);
ImagenBMP.LoadFromStream(stream);
end;
StretchedBMP.Canvas.StretchDraw(Rect(0, 0, StretchedBMP.Width-1, StretchedBMP.Height-1), ImagenBMP);
ImageList1.Add(StretchedBMP,nil);
ListView1.Items.Add;
ListView1.Items[ListView1.Items.Count-1].Caption := 'Imagen';
ListView1.Items[ListView1.Items.Count-1].ImageIndex := N;
ImagenBMP.Free;
ImagenJPG.Free;
DataModule1.EDBQuery1.Next;
Inc(N);
end;
end;
Gracias de nuevo y un saludo