我是delphi的入门者,真诚请教以下几个简单的问题,谢谢各位了。用adoquery1和DBGrid查询数据,如何检测DBGrid里是否有数据(不是看到,而是用代码检测到)?
另外,按下《上一个》或《下一个》之类的按钮时,如何做到在DBGrid里相应显示,即被连接的数据行以不同的颜色或在最左方有小箭头之类的方式显示?
最后,如何检测DBGrid里的数据是第一个还是最后一个?谢谢

解决方案 »

  1.   

    1.如何检测DBGrid里是否有数据
     只要查DBGrid所连的adoquery(数据集)地记录数就知道了
     ADOQuery1.RecordCount<>0 就有数据
    2 按下《上一个》
       ADOQuery1.Prior
    3 按下《下一个》
       ADOQuery1.next
    4.首纪录
    ADOQuery1.first
    5.末纪录
    ADOQuery1.last
      

  2.   

    1.如何检测DBGrid里是否有数据
     只要查DBGrid所连的adoquery(数据集)地记录数就知道了
     ADOQuery1.ISEmpty 
    按下《上一个》《下一个》首纪录末纪录可以用
    DBNavigator1控件
      

  3.   

    to各位:
     ADOQuery1.Prior
     ADOQuery1.next
    以上这两句我都会,现在问题是我想按《上一个》《下一个》之类的按钮的同时,在DBGrid时对应地以高亮显示对应的记录,这怎么解决呢?
    另外补充一下我的第三个问题,我要的是怎么样知道现在我所选的记录是首个或是末个(其实我想实现的是当该记录是首个是,则《上一个》为暗之类的功能),谢谢了。
      

  4.   

    高亮度显示?是指这个?浏览时用
    dbgrid1.Options := [dgTitles,dgIndicator,dgColumnResize,dgColLines,dgRowLines,dgTabs,dgRowSelect,dgAlwaysShowSelection,dgConfirmDelete,dgCancelOnExit];
    编辑时用
    dbgrid.options:=
    [dgEditing,dgTitles,dgIndicator,dgColumnResize,dgColLines,dgRowLines,dgTabs,dgConfirmDelete,dgCancelOnExit];第三个问题:
    procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
    begin
      //button1 为<上一个>
      if adoquery1.bof then
        button1.Enabled:=false
      else
        button1.Enabled :=true;  //button2 为<下一个>
      if adoquery1.eof then
        button2.Enabled :=false
      else
        button2.Enabled :=true;
    end;