var
 pjpg:tjpegimage;    //1
 pic:TMemoryStream;  //2
begin
pjpg:=tjpegimage.Create;  //3
pjpg.LoadFromFile(F:\JPG.jpg);
pic:=TMemoryStream.Create;         //4
pjpg.SaveToStream(pic);
pic.Position:=0;                   //5
TBlobField(dataset.FieldByName('Img')).LoadFromStream(pic);//6
dataset.post;
pic.Free;
pjpg.free;
end;
/////////////////////////
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if Column.FieldName = 'Res' then
  begin
    DBGrid1.Canvas.TextRect(Rect, Rect.Left, Rect.Top,  Column.Field.AsString);                 //7  canvas,textrect 各是什么?
  end;
end;
//////////////////////////
从前辈的来的代码,请各位解释一下,谢谢

解决方案 »

  1.   

    pjpg:tjpegimage;    //1  声明一个TJpegImage类型的变量(用于对JPEG图像进行处理等)pic:TMemoryStream;  //2 声明一个内存流变量pjpg:=tjpegimage.Create;  //3 创建TJpegImage对象的实例(为其分配内存)pic:=TMemoryStream.Create;         //4 创建 TMemoryStream的实例pic.Position:=0;                   //5 将内存流的坐标移到开始处
    TBlobField(dataset.FieldByName('Img')).LoadFromStream(pic);//6 将内存流中所存的内容存储到数据库的img字段中Column.Field.AsString);                 //7  canvas,textrect 各是什么?
    Canvas 在这里是一个TCanvas对象的实例,称为画布,是一个可以用来做图的
    对象,而TextRect则是这个对象的一个方法,用于在指定的Rect(即:四方框)中输出文字