修改TDBImage的源碼. 具體操作如下:
1.找到Delphi6\Source\DBCtrls.pas,將其拷貝至目錄Delphi6\Lib中.
2.打開Delphi6\Lib\DBCtrls.pas,在uses中加入JPEG.
3.修改TDBImage.LoadPicture過程.新代碼如下:
procedure TDBImage.LoadPicture;
var
JPEG:TJPEGImage;
begin
if not FPictureLoaded and (not Assigned(FDataLink.Field) or
FDataLink.Field.IsBlob) then
try
Picture.Assign(FDataLink.Field);
except
JPEG:=TJPEGImage.Create;
try
JPEG.Assign(FDataLink.FField);
Picture.Assign(JPEG);
finally
JPEG.Free;
end;
end;
end;
4.保存,編譯(編譯的話只要在一個程序中放入一個DBImage,運行即可),
修改結果會保存至Delphi6\Lib\DBCtrls.dcu中,
再將Delphi6\Lib\DBCtrls.pas刪除.
5.你已經可以在DBImage中載入BMP,JPEG圖片了,在設計階段載入JPEG圖片會出現異常,
因為修改后的代碼是嘗試以Bitmap格式載入,失敗后再嘗試以JPEG格式載入.但在Exe文件中不會.可以正常使用.
1.找到Delphi6\Source\DBCtrls.pas,將其拷貝至目錄Delphi6\Lib中.
2.打開Delphi6\Lib\DBCtrls.pas,在uses中加入JPEG.
3.修改TDBImage.LoadPicture過程.新代碼如下:
procedure TDBImage.LoadPicture;
var
JPEG:TJPEGImage;
begin
if not FPictureLoaded and (not Assigned(FDataLink.Field) or
FDataLink.Field.IsBlob) then
try
Picture.Assign(FDataLink.Field);
except
JPEG:=TJPEGImage.Create;
try
JPEG.Assign(FDataLink.FField);
Picture.Assign(JPEG);
finally
JPEG.Free;
end;
end;
end;
4.保存,編譯(編譯的話只要在一個程序中放入一個DBImage,運行即可),
修改結果會保存至Delphi6\Lib\DBCtrls.dcu中,
再將Delphi6\Lib\DBCtrls.pas刪除.
5.你已經可以在DBImage中載入BMP,JPEG圖片了,在設計階段載入JPEG圖片會出現異常,
因為修改后的代碼是嘗試以Bitmap格式載入,失敗后再嘗試以JPEG格式載入.但在Exe文件中不會.可以正常使用.