我的一个字段是 ftgraphic 的,
我想在dbgrid中显示,应如何办呢?

解决方案 »

  1.   

    多句嘴,说句不相干的话
    用DBimage不行吗?
      

  2.   

    在自画事件中处理,或用控件如ehlib
      

  3.   

    为了显示图象,要设置OnDrawColumnCell事件。
    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    var
    bmp:tbitmap;
    outrect:trect;
    bmpwidth:integer;
    begin
      outrect:=rect;
      if (column.Field =table1.fields.FieldByName('Common_Name')) then
      begin
        bmp:=tbitmap.Create;
        try
          bmp.Assign(table1.fieldbyname('Graphic'));
          bmpwidth:=(rect.Bottom -rect.Top )*2;
          outrect.Right :=rect.Left +bmpwidth;
          dbgrid1.Canvas.StretchDraw(outrect,bmp);
        except
          bmp.free;
        end;
        if table1.fieldbyname('Length (cm)').asinteger>100 then
        begin
          dbgrid1.Canvas.Font.color:=clred;
          dbgrid1.Canvas.Font.style :=[fsbold];
        end;
        outrect:=rect;
        outrect.left:=outrect.Left +bmpwidth;
      end;
      //dbgrid1.defaultdrawdatacell(rect,column.field,state);
      dbgrid1.DefaultDrawDataCell(outrect,column.field,state);
    end;
      

  4.   

    我觉得还是在界面上放一个DBImage比较好,一个效率比较高,
    再一个编程也容易一些。