窗体的TForm_Car的dbgrid控件Car_DBG显示数据表数据,Car_DBG双击事件中弹出窗体CarDetail_Form显示单条记录的详细内容,数据表中的“照片”字段通过流文件最后加载到CarDetail_Form.Image1,但是“照片”字段为空时程序总是报错,我做的报错处理总是失败,请大家帮忙,多谢!
procedure TForm_Car.Car_DBGDblClick(Sender: TObject);
var
 JpgFile:TjpegImage;
  mStream:TMemoryStream;
  i:integer;
begin
  mStream:=TMemoryStream.Create;
  JpgFile:=TjpegImage.Create;
  TBlobField(Car_DataS.DataSet.FieldByName('照片')).SaveToStream(mStream);
  mStream.Position :=0;
  JpgFile.LoadFromStream(mStream);
  CarDetail_Form.Image1.Picture.Assign(JpgFile);
  mStream.Free;
  JpgFile.Free;
if CarDetail_Form=nil then 
CarDetail_Form:=TCarDetail_Form.Create(self);
 for i:=1 to 14 do
 TEdit(CarDetail_Form.FindComponent('Edit'+inttostr(i))).Text:=self.Car_DBG.Columns[i].DisplayText;
CarDetail_Form.ShowModal;
end;

解决方案 »

  1.   

    可以用try ..except end 来处理错误
      

  2.   


    procedure TForm_Car.Car_DBGDblClick(Sender: TObject); 
    var 
     JpgFile:TjpegImage;
      mStream:TMemoryStream;
      i:integer;
    begin
    if CarDetail_Form=nil then
    CarDetail_Form:=TCarDetail_Form.Create(self);if not Car_DataS.DataSet.FieldByName('照片').IsNull then begin{如果照片字段不为空时}
       mStream:=TMemoryStream.Create;
      JpgFile:=TjpegImage.Create;
      TBlobField(Car_DataS.DataSet.FieldByName('照片')).SaveToStream(mStream);
      mStream.Position :=0;
      JpgFile.LoadFromStream(mStream);
      CarDetail_Form.Image1.Picture.Assign(JpgFile);
      mStream.Free;
      JpgFile.Free;
    end;
    CarDetail_Form.ShowModal;
     for i:=1 to 14 do
     TEdit(CarDetail_Form.FindComponent('Edit'+inttostr(i))).Text:=self.Car_DBG.Columns[i].DisplayText;
    end;
      

  3.   


    procedure TForm_Car.Car_DBGDblClick(Sender: TObject); 
    var 
     JpgFile:TjpegImage;
      mStream:TMemoryStream;
      i:integer;
    begin
    if CarDetail_Form=nil then
    CarDetail_Form:=TCarDetail_Form.Create(self);if not Car_DataS.DataSet.FieldByName('照片').IsNull then begin{如果照片字段不为空时}
       mStream:=TMemoryStream.Create;
      JpgFile:=TjpegImage.Create;
      TBlobField(Car_DataS.DataSet.FieldByName('照片')).SaveToStream(mStream);
      mStream.Position :=0;
      JpgFile.LoadFromStream(mStream);
      CarDetail_Form.Image1.Picture.Assign(JpgFile);
      mStream.Free;
      JpgFile.Free;
    end; for i:=1 to 14 do
     TEdit(CarDetail_Form.FindComponent('Edit'+inttostr(i))).Text:=self.Car_DBG.Columns[i].DisplayText;CarDetail_Form.ShowModal;
    end;