ecfisa, me diste justo la respuesta correcta que necesitaba, gracias por tomarte el tiempo en responder mi inquietud.
Gracias amigo.
adaptandolo a mi proyecto quedo asi, por si acaso a alguien le hace falta.
Código Delphi
[-]var
i: Integer;
it: TListItem;
B: TBitmap;
P: TPNGObject;
begin
with Query do
begin
SQL.Clear;
SQL.Text := 'select * from img order by idimg asc';
Active := True;
First;
for i:= 0 to RecordCount -1 do
begin
it:= ListView1.Items.Add;
it.Caption := ' '+FieldByName('NOMBRE').AsString;
it.ImageIndex:= i;
P:= TPNGObject.Create;
B:= TBitmap.Create;
try
P.Assign(TBlobField(FieldByName('IMAGEN')));
B.Width:= P.Width;
B.Height:= P.Height;
B.PixelFormat:= pf24bit;
P.Draw(B.Canvas, Rect(0, 0, P.Width, P.Height));
ImageList1.Add(B, B);
finally
P.Free;
B.Free;
end;
Next;
end;
ListView1.LargeImages:= ImageList;
end;