又是DBGrid,为什么不会输出当前记录数?(15分)

  • 主题发起人 主题发起人 wangchengwu
  • 开始时间 开始时间
W

wangchengwu

Unregistered / Unconfirmed
GUEST, unregistred user!
又是DBGrid,为什么不会输出当前记录数?

代码如下:
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);
begin
if field=adoquery1.FieldByName('xuhao') then
dbgrid1.Canvas.TextOut(rect.Left,rect.Top,inttostradoquery1.RecNo));
end;
 
你必须调用DBGrid的DefaultDrawdatacell方法
所以你的代码必须这样写:
begin
DBGrid1.DefaultDrawDataCell(Rect, Field, State);
if Field = ADOQuery1.FieldByName('xuhao') then
DBGrid1.Canvas.TextOut(Rect.Left, Rect.Top, IntToStr(ADOQuery1.RecNo));
end;
这样就可以显示当前记录数了,但是当编辑的时候会自动变回字段中的值。
 
if Field = ADOQuery1.FieldByName('xuhao') then
DBGrid1.Canvas.TextOut(Rect.Left, Rect.Top, IntToStr(ADOQuery1.RecNo));

DBGrid1.DefaultDrawDataCell(Rect, Field, State);//这句是最重要的
 
谢谢各位好人
 
后退
顶部