数据库是SQL SERVER,DBGRID怎样可以将如果记录的数量大于100显示红色,小于则为白色?(30分)

  • 主题发起人 主题发起人 d_delphi
  • 开始时间 开始时间
D

d_delphi

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库是SQL SERVER,DBGRID怎样可以将如果记录的数量大于100显示红色,小于则为白色?
 
if DBGrid1.DataSource.DataSet.RecordCount>100 then
DBGrid1.Canvas.Font.Color := clRed
else
DBGrid1.Canvas.Font.Color := clWindowText;
DBGrid1.DrawColumnCell(Rect, DataCol, Column, State);
 
楼上说的对,其实这和SQL SERVER没有关系,其它的数据库也可以,即使是本地数据表。
 
sorry,我说错了,应是记录的一个字段[数量]的值大100
 
是字段也可以用上面的方法,只是将第一行:
>>if DBGrid1.DataSource.DataSet.RecordCount>100 then
改为:if DBGrid1.DataSource.DataSet.fieldbyname('field').value > 100 then
或:if query1.fieldbyname('field').value > 100 then
 
动态更新StringGrid的颜色
StringGrid控件是一个有许多用户接口的显示数据库的控件,
以下的程序告诉您如何根据显示的内容改变字体的显示颜色。
例如,如果一个城市的人口大于200万,我们就让它显示为蓝色。
使用的控件事件为StringGrid.OnDrawColumeCell.

procedure TForm1.StringGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if Table1.FieldByName('Population').AsInteger >20000000 then
StringGrid1.Canvas.Font.Color := clBlue;
StringGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

上面的例子是简单的,但是你可以根据自己的需要扩充,例如字体也变化等,
甚至你可以调用画圆的函数在数字上画上一个红色的圆圈。


 
接受答案了.
 
后退
顶部