我用一个dbgrid,在他的onkeydown事件执行如下操作,选择其中一条记录并按回车时就会打印这一条记录。当现在如果dbgrid里没有任何记录时,按回车键会提出出错,请问如何解决这个问题,当dbgrid里没有任何数据时提示出错信息,并不执行打印操作?

解决方案 »

  1.   

    use 
       try 
         print.....
      except
         ...............
      

  2.   

    if Key = 13 then begin //VK_ENTER
      if Dbgrid.DataSource.DataSet.RecordCount = 0 then exit;
      try
        //print code here.
      except
        //raise Error.
      end;
    end;
      

  3.   

    if Key = #13 then begin //VK_ENTER
      if Dbgrid.DataSource.DataSet.RecordCount = 0 then exit;
      try
        //print code here.
      except
        //raise Error.
      end;
    end;
      

  4.   

    不行啊,我的代码如下:
    procedure Tfrmtkyw.DBG7KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);begin
    if key = VK_RETURN then
      begin
      //yjtm:=DBG7.dataSource.dataSet.FieldByName('yjtm').AsString;
     if DBG7.DataSource.DataSet.RecordCount = 0 then exit;  end;
    end;当dbgrid在没任何数据时,按下回车就提示如下图:
    http://shunde.183.gd.cn/error.jpg
      

  5.   

    你先确定一下这个错误是否是执行if DBG7.DataSource.DataSet.RecordCount = 0 then exit;
    时抛出来的,若否,则问题不在这里
      

  6.   

    如果dbgrid里有记录,就是recordcount > 0 时就没有出错信息的
      

  7.   

    recordcount好像有时不好使,你可以用ISEMPTY或是判断现在是不是DBGRID的SELECTEDCOUNT为0来试试
      

  8.   

    解决啦,是 DBGRID。SelectedIndex =0