首先必須要觸發OnDrawColumnCell事件:
參考:http://blog.csdn.net/kunshan_shenbin/archive/2010/07/29/5773565.aspx
unit Unit1;</p><p>interface</p><p>uses<br /> Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,<br /> Grids, DBGrids, Db, DBTables;</p><p>type<br /> TCustomDBGridCracker = class(TCustomDBGrid); //不可忘寫</p><p> TForm1 = class(TForm)<br /> Table1: TTable;<br /> DataSource1: TDataSource;<br /> DBGrid1: TDBGrid;<br /> procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;<br /> DataCol: Integer; Column: TColumn; State: TGridDrawState);<br /> private<br /> { Private declarations }<br /> public<br /> { Public declarations }<br /> end;</p><p>var<br /> Form1: TForm1;</p><p>implementation</p><p>{$R *.DFM}</p><p>procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;<br /> DataCol: Integer; Column: TColumn; State: TGridDrawState);<br />begin<br /> with TCustomDBGridCracker(Sender) do<br /> begin<br /> if DataLink.ActiveRecord = Row - 1 then<br /> Canvas.Brush.Color := clRed<br /> else<br /> Canvas.Brush.Color := clWhite;<br /> DefaultDrawColumnCell(Rect, DataCol, Column, State);<br /> end;<br />end;</p><p>end.
其他參考資料:
http://gaowenjie7758.blog.163.com/blog/static/594678892008119102338896/