如何在dbgrid里显示图片?
如:
表1的字段
会员等级、会员姓名
表1的数据
普通会员 张三
vip会员 李四
高级会员 王大麻子显示这个表。
普通会员就显示一个图标
vip会员显示另外一个图标
都是imagelist的图标。怎么弄法?

解决方案 »

  1.   

    在DBGrid的OnDrawCell事件中加入如下代码即可在DBGrid控件中显示图形。
    var
      Bmp: TBitmap;
    begin
      if (Column.Field.DataTyp = ftBLOB) or (Column.Field.DataTyp = ftGraphic) then
      begin
        Bmp:=TBitmap.Create;
        try
          Bmp.Assign(Column.Field);
          DBGrid1.Canvas.StretchDraw(Rect,Bmp);
          Bmp.Free;
        Except
          Bmp.Free;
        end;
      end;
    end;
      

  2.   

    为什么提示没有定义变量:cloumn   ?
      

  3.   

    78hgdong(蜗牛跑步) ,有别的方法吗?
    这个方法好象达不到我的要求,我是想从imagelist1的图片显示在dbgrid。怎么弄?
      

  4.   

    在OnDrawColumnCell调用
    imagelist.Draw(Canvas: TCanvas; X, Y, Index: Integer; Enabled: Boolean=True);
      

  5.   

    hahafan(注意!此人前途迷茫),能具体点吗?
    比如:
    字段值为“vip会员”,显示一个图片。
      

  6.   

    procedure TForm1.dbgrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
      if Column.Field.AsString = 'vip会员' then
        imagelist.Draw(TDBGrid(Sender).Canvas, Rect.Left, Rect.Top, 0, True);
    end;
      

  7.   

    另一个方法:
    也可以用TDBGridEH来做.
    1.标题行显示图片 
        首先添加一个imagelist组件img1并在其中添加一组bmp,ico格式的图片。然后将DBGridEh的TitleImages设置为img1.最后在需要显示图片的列标题的imageindex中设置需要显示的img1中图片的序号。按F9执行一下程序
      

  8.   

    hahafan(注意!此人前途迷茫)
    兄弟,按的你的代码,我还是没有调试成功。
    虽然没有报一个错误,但还是显示不出图片来。