下面是我发现的一断代码.
很不错!可惜编译时会有异常,而且用DBCtrlGrid运行时也会出现异常!
哪位高人帮忙改进一下,去掉异常.
如何让Tdbimage控件能感知jpeg图片格式?
 --------------------------------------------------------------------------------
 
时间:4/3/2003 10:23:03 PM 来源:易成网络服务公司华源软件开发部 作者:smokingroom 
 
修改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能通过!
      

  2.   

    运行是没问题但 编译 时会有异常,而且用DBCtrlGrid  运行 时也会出现异常!
      

  3.   

    我也是没有问题,delphi6可以通过的啊!
      

  4.   

    function Jpg2Bmp(Jpg: TJpegImage): TBitmap; begin   Result := nil;   if Assigned(Jpg)   then begin   Result := TBitmap.Create;   Jpg.DIBNeeded; {Key method...}   Result.Assign(Jpg); {Its all folks...}   end; end;相同问题
      

  5.   

    你们编译时没出错?"因為修改后的代碼是嘗試以Bitmap格式載入,失敗后再嘗試以JPEG格式載入.但在Exe文件中不會.可以正常使用."
      

  6.   


    To: Searcher007(搜寻者)
        wjsfr(令狐葱)你们没出现问题是因为,你的库中存放的是BMP格式图片
    如果改成JPG格式,就会出现上面的问题
      

  7.   

    我在D7上试过,没出现编译时的问题!
    是不能生成EXE文件,还是在IDE环境中运行出现异常?
    如果能生成EXE文件,直接运行EXE看看怎么样?
      

  8.   

    可否改为先尝试载入JPG格式?我改成这样也不行:procedure TDBImage.LoadPicture;
    var
      JPEG:TJPEGImage;
    begin
      if not FPictureLoaded and (not Assigned(FDataLink.Field) or
        FDataLink.Field.IsBlob) then
        try
          JPEG:=TJPEGImage.Create;
          try
            JPEG.Assign(FDataLink.FField);
            Picture.Assign(JPEG);
          finally
            JPEG.Free;
          end;
        except
          Picture.Assign(FDataLink.Field);
        end;
    end;如何改?高手帮帮忙!
      

  9.   

    To: madyak(无天)编译运行会出现问题
    生成Exe文件没问题的
    如果程序是单个DBImage运行也没问题.但将DBImage放到DBCtrlGrid上就会出现问题
      

  10.   

    代码是没问题,只是我想把那个代码改进一下,
    不要出现异常.编译执行会出现异常,生成的exe不会出现异常.但如果将它放在DBCtrlGrid,当库中是Jpg格式的图片,运行就会出错(BMP格式没问题) 出现异常的原因是DBImage先试图加载BMP格式图片,如果不是BMP就加载JPG图片我想能否交换过来,先加载JPG格式图片,出现异常再加载BMP图片,或者直接加载JPG图片(因为我的数据库中放得肯定是JPG格式图片)?
      

  11.   

    高手~~~~高手~~~~高手~~~~高手~~~~高手~~~~高手~~~~高手~~~~高手~~~~高手~~~~高手~~~~高手~~~~高手~~~~
    Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????Where r u????