procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if Column.Index = 0 then
  with DBGrid1.Canvas do begin
    FillRect(Rect);
    TextOut(Rect.Left+2, Rect.Top+2, IntToStr(DBGrid1.DataSource.DataSet.RecNo));
  end;
end;我运行能通过,可是第一列显示的全是-1,怎么回事???????
请高手帮忙,在线等!!!!!!!

解决方案 »

  1.   

    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
    with DBGrid1.DataSource.DataSet do
    begin
     if DataCol = 0 then
       DBGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, IntToStr(RecNo));
    end;
      

  2.   

    怎么会,我调试过了,是自动增加的啊!
    你新建一个字段,字段类型是integer的,然后放到所有字段的前面。肯定可以!
      

  3.   

    怎么会,我调试过了,是自动增加的啊!
    你新建一个字段,字段类型是integer的,肯定可以!