DBGrid既然是从TCustomGrid中继承德,那么Col,Row两个属性也一定可以用。
具体使用方法:
type 
  TDBGridHack = class(TDBGrid)
  end;
begin
  ...
  TDBGridHack(DBGrid1).Row
  ...
end;

解决方案 »

  1.   

    DBGrid既然是从TCustomGrid中继承德,那么Col,Row两个属性也一定可以用。
    具体使用方法:
    type 
      TDBGridHack = class(TDBGrid)
      end;
    begin
      ...
      TDBGridHack(DBGrid1).Row
      ...
    end;
      

  2.   

    好像不行,可以用stringgrid来实现
      

  3.   

    当前光标所在的记录是第几行也就是取得当前记录的编号,因为dbgrid中显示的就是数据表的记录吗!所以用recno取得当前记录编号也就是当前光标所在的第几行。
      

  4.   

    cobi,你理解错了,他的意思是在DBGRID中如何判断当前光标所在的记录
    是屏幕上显示的第几行?
      

  5.   

    可以用TStringGrid(DbGrid1).Row,我试过了可以
      

  6.   

    但有一点我不明白要请教各位高手,为什么DbGrid1也是继承TCustomGrid,
    但是它却没有Row、Col属性
      

  7.   

    TCustomGrid中,Row,Col属性都放在Protected中,所以你无法访问。而在TStringGrid中,则把它们放到了Published中了。
    另,你的强制类型转化有一定危险性,最好不要使用。
      

  8.   

    按照Inprise公司Delphi开发小组的说法!这种强制转换是没有什么问题的!所以我在此建议各位使用zzllabc(龙) 说的方法!谢谢
      

  9.   

    首先谢谢各位,
    但是使用zzllabc(龙)说的方法有时觉得太麻烦,列如一个类(如Tchild)的
    父类(如Tparent)把某一属性(如test)放在Protected中,那Tchild要访问
    这个test属性,那是不是都要在类型定义中加入其子类的定义:
    type 
      Tchildchild = class(Tchild)
      end;还有一个问题要请教大家,Delphi各个类的属性是protected、public
    还是published,在帮助中怎么没有表明,那不是还要看各个类的原代码???