delphi+DBgrid显示记录,如何在记录前显示一个小图标?就是每条记录前面显示一个固定的图片。记得以前找到过方法,忘记了。只记得用到了imagelist,dbgrid代码理加了imageindex什么的。
解决方案 »
- 关于Delphi中Listview控件
- 请问如何删除从数据库读取的DBGrid的选种内容阿?
- tidhttp新问题在线等待,急急急(绝对高分)
- 请问有没有那么一个函数,能计算出两个日期之间相差几天?
- 请使用DBGRIDEH的试着打开你这个GridEH.pas文件,看有什么错误?!!!
- Spcomm3.0 Delphi2010安装成功,但发AT命令不成功。
- 如何判断memo里有文字?我要用if ....then
- 求救,注册MsCommActivx,拿来使用时显示‘License information for TMSComm not found,you cannot use this contral in design’
- 如何使用Tstrings,我在声明后无法使用
- 一个关于delphi的问题求助
- 不能设置类chartarea的height属性
- 同“甘”共苦\同“舟”共濟\風雨同“舟”+“舟”曲堅強
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
var
Bmp: TBitmap;
begin
if Field is TGraphicField then
begin
try
Bmp:=TBitmap.Create;
Bmp.Assign(Field);
DBGrid1.Canvas.StretchDraw(Rect, Bmp);
finally
Bmp.Free;
end
end
else
DBGrid1.DefaultDrawDataCell(Rect, Field, State);
end;
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
bitmap : TBitmap;
fixRect : TRect;
bmpWidth : integer; imgIndex : integer;
begin
fixRect := Rect; if DataCol = 1 then
begin
if ADOQuery1.Fields[1].Value > 10000 then
imgIndex := 0 else imgIndex := 1; bitmap := TBitmap.Create;
try
ImageList1.GetBitmap(imgIndex,bitmap);
bmpWidth := (Rect.Bottom - Rect.Top);
fixRect.Right := Rect.Left + bmpWidth;
DBGrid1.Canvas.StretchDraw(fixRect,bitmap);
finally
bitmap.Free;
end; fixRect := Rect;
fixRect.Left := fixRect.Left + bmpWidth;
end; DBGrid1.DefaultDrawColumnCell(fixRect, DataCol, Column, State);
end;
1.可以在dbgrid的自繪事件中畫一個小圖標;
2.直接拖一個iamgelist控件,在canvas中進行處理