下面的代码是在大富翁论坛里Copy 过来的在 DBGrid 里好用
我用在 DBGridEh 里用有段会编译不过
(sender as TDBGrid).DefaultDrawColumnCell(Rect, datacol, column, State);
我在Eh里用改成了
 (sender as TDBGridEh).DefaultDrawColumnCell(Rect, datacol, column, State);  我在Eh里把所有的 TDBGrid 改成了 TDBGridEh
这段
我在DBGrideh 里编译出错
不知道怎么改
如果有高手过路帮我看看~谢谢procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
var
  RowNo: Integer;
begin
  RowNo := TDBGrid(sender).DataSource.DataSet.RecNo;
  if RowNo = -1 then   // 等于-1 就是处理Insert状态
    RowNo := TCustomGrid(Sender).MouseCoord(Rect.Left + 1, Rect.Top + 1).Y + //这是DBgrid显示一屏的总数
    TDBGrid(sender).DataSource.DataSet.RecordCount -   //数据集总数
    TStringGrid(Sender).VisibleRowCount + 1;
  with (sender as TDBGrid).canvas do
  begin
   FillRect(Rect);
    if RowNo Mod 2 = 0  then
    begin
      Font.Color := clBlue;
      Brush.Color := clWhite;
    end else
    begin
      Font.Color := clWhite;
      Brush.Color := clBlue;
    end;
    if DataCol = 0 then    if (state =[gdSelected])or(state =[gdSelected, gdFocused]) then
    begin
      Brush.Color := clYellow;
      font.Color := clGreen;
    end;
    Pen.Mode :=  pmMask;
    (sender as TDBGrid).DefaultDrawColumnCell(Rect, datacol, column, State);
    if DataCol = 0 then
      TextRect(Rect, Rect.Left + 2, Rect.Top + 2, IntToStr(RowNo));
  end; //  with (sender as TDBGrid).canvas do
end;