if DBGrid1.DataSource.DataSet.Active and
    (DBGrid1.DataSource.DataSet.RecordCount <> 0) then
    {};

解决方案 »

  1.   

    我现在没有环境! 但是我记得 DBGrid中好像有selected属性吧
      

  2.   

    如伴水所说,
    如果DataSet是Active的并且RecorCount>0
    则一定有记录被选中,
    如果有多条记录被选中,
    则请使用DBGrid1.SelectedRows
    如下:
      with myDBGrid do
      begin
        if SelectedRows.Count>0 then
          with DataSource.DataSet do
            for i:=0 to SelectedRows.Count-1 do
            begin
              myConnect.BeginTrans;
              try
                GotoBook(pointer(SelectedRows.Items[i]));
                if not DoOneRecordAuditing(AuditingFlag) then//一个自定义的函数,你不必关心
                begin
                  myConnect.RollbackTrans;
                  exit;
                end;
                myConnect.CommitTrans;
              except
                myConnect.RollbackTrans;
                exit;
              end;
            end;
      end;
      

  3.   

    Visual Component Library Reference Help>>SelectedRows,>>Example
      

  4.   

    嘿嘿,雪儿,侬认识俺不?,,@_@我来补充一下问题,雪儿是说:如果把dbgrid中的记录全部选中后,在用鼠标点取几条反向选定,然后处理这几条被反向选定的记录,,或删除,或是这样吧?嘿嘿拉拉拉拉拉拉拉。让你猜猜我是谁,,,从1234567到7654321,,,就是没有,,,@_@
      

  5.   

    俺解释错了,雪儿的意思是:窗体上有N个按钮,当窗体创建时,按钮是灰色的,只有在选定dbgrid中的一条记录时变亮,这一步没有问题,已经实现。问题是,在第一次选定一条记录后,按钮变亮后就一直是亮的了,希望能在对选中的记录操作完按钮的功能以后使按钮重新变成灰色,,这次解释的对吗?没人解答不是俺的问题,给俺翻译费@_@
      

  6.   

    to liang_z(千山一刀之忍者神龟):
      为什么我用
    DBGrid1.DataSource.DataSet.RecordCount <> 0
      不用
    DBGrid1.DataSource.DataSet.RecordCount > 0 //?????????