我知道在VB里面的HFlexGrid控件可以对任何单元格着色,DELPHI的DBGrid可以做到这一点吗?如果可以,怎么做?
谢谢
谢谢
解决方案 »
- 在北京吃小吃应该去什么地方??
- ※ 如何做Delphi7那样的菜单,试了很久没有出来,不解。
- 关注《软件研发》杂志(DDJ,Software Development,CUJ等名刊中文版),网址:www.ddjchina.com
- 100分请教,在d7里用rave打印储存在数据库中的jpg文件
- 如何获得选中的dbgrid中的数据?
- NULL 和 ''的区别????
- 十万火急:在win2000下用delphi6调用dll的问题?
- 能否更改messagedlg提示框内的字体大小???
- 巨难的报表,先以80分求一个报表解决方案,如有可能想以小额报酬请高手帮下忙。。。
- 如何将grid的中的内容拖拽到,treeview中?
- 如何在statusbar中动态显示光标所在位置的提示信息(比如菜单项和按纽的text)
- 怎么判断一个表是否存在,如存在就删除,不存在就创建?
每列:可在双击dbgrid,添加显示列,选中一列,从 color属性改颜色
每行:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
if adotable1.fieldbyname('id').asinteger mod 2=0 then
begin
dbgrid1.canvas.font.color:=clblue;
dbgrid1.canvas.brush.color:=clgrasientActivecaption;
end;
dbgrid1.DefaultDrawColumnCell(Rect,datacol,column,State);
end;实现隔行显示
在DBGrid1DrawColumnCell()事件中对任何选中的单元格着色 if gdselected in state then //判断该单元格是否选中
begin
dbgrid1.Canvas.Brush.Color:=clred; //着色
end;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
with TDBGrid(Sender) do
begin
case Self.ADOQuery1.RecNo Mod 2 of
0: Canvas.Brush.Color :=clMoneyGreen;
1: Canvas.Brush.Color :=clWindow;
end;
DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
end;可以揭贴了!
Field: TField; State: TGridDrawState);
begin //例如
if Field.Name='价格' then
begin
if Field.AsInteger>500 then
dbgrid1.Canvas.Brush.Color:=clred
else
dbgrid1.Canvas.Brush.Color:=clGreen;
end;
DefaultDrawColumnCell(Rect,DataCol,Column,State);end;