在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;
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;
这个方法好象达不到我的要求,我是想从imagelist1的图片显示在dbgrid。怎么弄?
imagelist.Draw(Canvas: TCanvas; X, Y, Index: Integer; Enabled: Boolean=True);
比如:
字段值为“vip会员”,显示一个图片。
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;
也可以用TDBGridEH来做.
1.标题行显示图片
首先添加一个imagelist组件img1并在其中添加一组bmp,ico格式的图片。然后将DBGridEh的TitleImages设置为img1.最后在需要显示图片的列标题的imageindex中设置需要显示的img1中图片的序号。按F9执行一下程序
兄弟,按的你的代码,我还是没有调试成功。
虽然没有报一个错误,但还是显示不出图片来。