怎样在dbgrid中给某一类记录添加背景颜色,以区别记录 !
解决方案 »
- delphi 下拉框的style属性改为csdropdownlist时.text属性失效,下面代码怎么改可以实现
- 如何进行字符串的异或处理?
- aaa字段为number[20,0],当字段值的位数为18位时,ADOQuery1.Fields('aaa').AsString出错
- delphi能使用在dll文件定义实现并引出的C++类吗(注意是引出的C++类 不是类的成员函数) 如:
- 当窗体释放时通过代码申明的指针和控件会自动释放吗?
- 淡一个自己这几天在论坛里面的感受
- 毕业设计菜鸟问题紧急求救,关于1对多数据计算问题.
- 100分寻问一条SQL语句INSERT语句,高手请进!!
- 关于orasmartquery
- 怎样在两个进程窗体之间拖动可视组件
- 请高手们进来看一吧,Dcom 客户端的编写
- 发布了一个基于WSDL的WEB服务,我怎么用DELPHI调用服务里面的方法?
Field: TField; State: TGridDrawState);
begin
if ADOQry1.FieldByName('field1').AsString = 'A' then begin
DBGrid1.Canvas.Brush.Color := clRed;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.Canvas.Font.Color := clBlack;
DBGrid1.DefaultDrawDataCell(Rect, Field, State);
end;
end
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
with TDBGrid(Sender) do
begin
case Self.Frame21.ADOQuery1.RecNo Mod 2 of
0: Canvas.Brush.Color :=clMoneyGreen;
1: Canvas.Brush.Color :=clWindow;
end;
if gdSelected in State then
begin
Canvas.Font.Color :=clBackground;
Canvas.Brush.Color:=clSkyBlue;
Canvas.FillRect(Rect);
end;
DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
end;procedure TProviderForm.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
with TDBGrid(Sender) do
begin
case Self.Frame21.ADOQuery1.RecNo Mod 2 of //隔行设置颜色,类似CSDN效果
0: Canvas.Brush.Color :=clMoneyGreen;
1: Canvas.Brush.Color :=clWindow;
end;
if gdSelected in State then //对选择行进行高亮颜色的设置
begin
Canvas.Font.Color :=clBackground;
Canvas.Brush.Color:=clSkyBlue;
Canvas.FillRect(Rect);
end;
DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
end;
const Rect: TRect; DataCol: Integer; Column: TColumneh; State: TGridDrawState);
begin
dbgrid1.Canvas.Brush.color:= $00BDCBE8;
dbgrid1.Canvas.Rectangle(rect);
dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);]
end;
//使网格中的数据依据一定条件显示颜色
if DM.adoquery1.FieldByName('库存').AsInteger < 0 then
//改变背景颜色
DBGrid1.Canvas.Brush.Color := clRed
else if DM.adoquery1.FieldByName('库存').AsInteger<3 then
DBGrid1.Canvas.Brush.Color := clYellow;
//改变字体颜色
// DBGrid1.Canvas.Font.Color := clRed;
if DM.adoquery1.FieldByName('库存').AsInteger > 50 then
DBGrid1.Canvas.brush.Color := clGreen;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;