DBGrid 中能在不同的行中显示不同的颜色吗?(10分)

  • 主题发起人 主题发起人 xself
  • 开始时间 开始时间
X

xself

Unregistered / Unconfirmed
GUEST, unregistred user!
DBGrid 中能在不同的行中显示不同的颜色吗?
 
当然能,

看一下OndrawDateCell或OnDrawColumnCell事件
 
但是要自己定制输出,不能用他默认的方法
我有代码,可以给你参考,先给分,哈哈
 
在事件DBGridDrawColumnCell中加入如下代码:
If TDbGrid(Sender).DataSource.DataSet.FieldbyName('Sw_COUNT').Value<
TDbGrid(Sender).DataSource.DataSet.Fieldbyname('Sw_MINCOUNT').Value then
TDbGrid(Sender).Canvas.Font.Color:=clRed;
TDbGrid(Sender).defaultdrawcolumncell(Rect,DataCol,column,State);

如库数小于最小数变红
 
看这段小例子,很容易明白。
procedure TfmConsole.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if dmUnit4.cdsq_TPop3InfofOwnerStr.AsString='0' then
DBGrid1.Canvas.Font.Color:=clGray;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
{判断是否为系统基本账号,否则颜色变灰}
end;
 
同意上面的解答,Delphi 4 技术内幕里面有这方面比较详细的论述
 
你可以编辑DBGrid的属性,
 
多人接受答案了。
 
后退
顶部