增分题(100分)

  • 主题发起人 主题发起人 kevin8093
  • 开始时间 开始时间
K

kevin8093

Unregistered / Unconfirmed
GUEST, unregistred user!
如何使dbgird中的不同纪录根据不同字段属性,显示不同背景颜色。
 
ondbgrid1drawcolumncell
if XX then
begin
dbgrid.canvas.brush.color:=clread;//change color
dbgrid.defaultdrawcolumncell(rect,datacol,column,state)//
end;

 
抄的。

看这里:
在DBGrid的OnDrawDataCell事件里可以改变单元格的颜色
某一列的颜色可直接改

procedure TForm1.Button1Click(Sender: TObject);
begin
query1.close;
query1.sql.text:='select * from animals';
query1.open;
end;

procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
DBGrid1.Canvas.Font.Color:=clred;
DBGrid1.Canvas.Brush.Color:=clgray;

{//改变某个单元格的颜色
if (Field.FullName='SIZE')and (Field.AsInteger=2) then
begin
DBGrid1.Canvas.TextRect(rect,rect.Left,rect.Top,Field.AsString);
end;}

//改变某行的颜色,该行的NAME字段值=aaa
if Field.DataSet.FieldByName('NAME').asString='aaa' then
DBGrid1.Canvas.TextRect(Rect,rect.Left,rect.Top,Field.AsString);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
//改变某个列的颜色
DBGrid1.Columns[1].Color:=clgreen;
DBGrid1.Columns[1].Font.color:=clred;
end;


good luck!
 
上面这位老兄已经讲得很正确了,你也可以根据你的需要做一点修改。
不过方法就是这样子的。应该可以解决你的问题了。
 
多人接受答案了。
 
后退
顶部