TDBImage فقط میتونه تصاویر bmp رو نشون بده . اگر یه شی TDBImage داری که همه کاره باشه فبهل مراد ، وگرنه من ترجیح میدم برای فیلد گرافیکی از ،TImage استفاده کنم . البته یه نمه کد نویسی داره.
procedure TForm1.InputImageClick(Sender: TObject);
begin
CDS.Append;
CDSimagetype.AsString := extractfileext(OD.FileName);
CDSPicture.LoadFromFile(OD.FileName);
CDS.Post;
end;
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
var
Stream: TStream;
JPEGImage : TJPEGImage;
Ext : String;
begin
if (field = nil) or (field = CDSPicture) then
begin
if CDSPicture.asstring <> '' then
begin
Stream := CDS.CreateBlobStream(CDSPicture, bmRead);
try
Ext := uppercase(CDSimagetype.AsString);
if Ext = '.BMP' then
Image1.Picture.Bitmap.LoadFromStream(Stream 1;
else if Ext = '.JPG' then
begin
JPEGImage := TJPEGImage.Create;
try
JPEGImage.LoadFromStream(Stream);
Image1.Picture.Assign(JPEGImage);
finally
JPEGImage.Free;
end;
end;
finally
Stream.Free;
end;
end
else
Image1.Picture := nil;
end;
end;
کد بالا ضمن نمایش تصویر در TImage فرمت تصویر را هم در فیلد imagetype نشان میدهد.