Hola a tod@s.
Estoy intentando rellenar un ListView con iconos de imágenes que vienen de un campo de una tabla.
Voy recorriendo la tabla e insertando en un ImageList las imágenes para posteriormente crear el icono en el ListView y asignarle esa imagen creada. Tengo 2 problemas con la asignación de las imágenes en el ImageList, el primero es que asigno la imagen pero no aparece en el icono del ListView y segundo que cuando la imagen proviene de un JPG en vez de un BMP me da error.
Este es el código que estoy usando:
Código Delphi
[-]
procedure TNTFormInmuebles.InsertaDatos(Tipo: String);
var
N: SmallInt;
Stream: TStream;
ImagenBMP: TBitmap;
ImagenJPG: TjpegImage;
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
Stream := DataModule1.EDBQuery1.CreateBlobStream(DataModule1.EDBQuery1.FieldByName('IMAGEN') as TBlobField, bmRead);
ImagenBMP:= Tbitmap.create;
if DataModule1.EDBQuery1.FieldByName('TIPOI').AsString='B' then begin
ImagenBMP.LoadFromStream(Stream);
end else begin
ImagenJPG:=TjpegImage.create;
ImagenJPG.LoadFromStream(Stream);
ImagenBMP.Assign(ImagenJPG);
ImagenJPG.Free;
end;
if ImageList1.Add(imagenBMP,nil)<>0 then
showmessage('error');
ListView1.Items.Add;
ListView1.Items[ListView1.Items.Count-1].Caption := 'Imagen';
ListView1.Items[ListView1.Items.Count-1].ImageIndex := N;
ImagenBMP.Free;
DataModule1.EDBQuery1.Next;
Inc(N);
end;
end;
Como siempre agradecería un poquito de ayuda.
Gracias y un saludo