DBImage不支持jpeg格式图片的显示,可按如下方法解决之
uses jpeg;procedure TForm1.h_DBEditChange(Sender: TObject);
var
  JpegImage: TJpegImage;
begin
  JpegImage := TJpegImage.Create(self);
  with query1 do
  begin
    if query1.fieldbyname('照片').asstring<>'' then
    begin
      JpegImage.LoadFromFile(FieldByName('照片').AsString);
      form1.DBImage_pic.Picture.Graphic.Assign(JpegImage);
    end;
    if query1.fieldbyname('照片').asstring='' then
      begin
        if query1.fieldbyname('性别').AsString='男' then
          JpegImage.LoadFromFile('c:\LEE01.JPG');
        else
          JpegImage.LoadFromFile('c:\RING01.JPG');
        form1.DBImage_pic.Picture.Graphic.Assign(JpegImage);
      end;
  end;
  JpegImage.Free;
end;procedure TForm1.A1Click(Sender: TObject);
var
  Picture1:TPicture;
  JpegImage: TJpegImage;
begin
  JpegImage := TJpegImage.Create(self);
  if form1.OpenPictureDialog1.Execute then
    begin
      JpegImage.LoadFromFile(OpenPictureDialog1.FileName); //假设你打开的JPEG格式
      form1.DBImage_pic.Picture.Graphic.Assign(JpegImage);
    end;
  with query2 do
    begin
      close;
      sql.clear;
      sql.add('update data set 照片=:p_wf where 姓名=:p_ww');
      parambyname('p_wf').asstring:=OpenPictureDialog1.FileName;
      parambyname('p_ww').asstring:=h_DBEdit.Text;
      execsql;
    end;
  JpegImage.Free;
end;

解决方案 »

  1.   

    以上都假设你用的是jpeg格式的图片。
      

  2.   

    如果是因为DBImage不能显示jpg的原因,但为什么一开始是能显示出默认的jpg文件的,只有修改了数据后才会出现can not load file '****.jpg'的问题呢?
      

  3.   

    你在程序IDE中是可以显示JPEG的,DELPHI帮你做了。不能装入文件是因为那个文件不存在,因为你没有指过定路径呀。
      

  4.   

    嗯,问题确实在此,谢谢游少了:)
    但为什么开始query1的时候,那个默认的相对路径的图片又能显示,而刷新数据后就不行了呢?