我的窗体上有一个MAIMENU菜单,此菜单中有添加,修改,删除等按钮,还有一个DBGRID控件,在使用过程中我发现一个问题,由于DBGRID控件的数据源是在程序中设定的,在程序开始时和有些时候,DBGRID中是没有数据记录显示的,但在这时要是单击了修改或删除就报错了(修改/删除是用DBGRID的数据源来定位记录的.).所以我想是不是有一个可以判断DBGRID中是否有记录的方法,这样把它写在修改/删除的代码中就不会报错了.请各位大哥多多指教了.麻烦写详细些,谢了.

解决方案 »

  1.   

    分明是dbgrid问题嘛,跟mainmenu有什么关系?最简单的判断方法:
    if dbgrid1.fields[0].asstring<>'' then 说明有数据
      

  2.   

    在点修改/删除时你可以判断DBGRID对应的数据集是否有数据。如
    adotable1.recordcount或adotable1.eof/bof等
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      if (dbgrid1.DataSource.DataSet.Active) and (dbgrid1.DataSource.DataSet.RecordCount > 0) then
        showmessage('可以修改删除!')
      else
        showmessage('不能修改删除!');
    end;