大家好 我想把DBGrid查询到的数据 做成动态的 也就是点每一行数据时 进入PageControl的另外一个页面(这个页面就是显示数据的) 请问这怎么做呢 是在DBGrid事件里加个OnCellClick事件吗? 是的话,这个事件代码咋写呢?

解决方案 »

  1.   

    OnCellClick事件中写入:PageControl1.ActivePageIndex := n;  其中n为你需要转入的TabSheet页的序号
      

  2.   

    既然知道在OnCellClick中写,还有什么不清楚的呢
      

  3.   

    具体n的数值,可以查看TabSheet的属性“Pageindex”的值
      

  4.   

    如PageControl1第一页是放置DBGrid,第二页面是放置详细。
    procedure TForm1.DBGrid1CellClick(Column: TColumn);
    begin
      PageControl1.ActivePageIndex := 1;
      //给详细页面赋值
      
    end;
      

  5.   

    在OnCellClick中
    PageControl1.ActivePageIndex:=1
      

  6.   

    玉米的DataSet.AfterScroll事件 是什么意思?
      

  7.   

    afterscroll可以在你用键盘切换记录是触发,而点击必须要点,而且重复点击同一条记录会重复触发(可以控制)
    但是afterscroll也会也负面影响,这要看具体情况了
      

  8.   

    我试了试 可以进去详细页面 但是进去每次显示的都是第一条数据啊  你在DBGrid点第二条记录 它进去显示的详细还是第一条的记录啊
      

  9.   

    楼主说明了是点击记录时发生事件,用afterscroll就不太适合了,况且很多人都习惯用Tab和方向键来回查看数据的,这样使用后会造成很多不必要的麻烦
      

  10.   

    我试了试 可以进去详细页面 但是进去每次显示的都是第一条数据啊  你在DBGrid点第二条记录 它进去显示的详细还是第一条的记录啊
      

  11.   


    这种情况,你可以在点击的事件中,先设定几个变量,预先读取点击位置的数据,然后在要显示的那个TabSheet的onshow事件里面把这几个变量的数据读过去就行了,变量要是全局变量。或者在OnCellClick事件中直接指定那个TabSheet页面上的数据
      

  12.   

    这么解释了还不明白?你说的那个详细页面是什么内容?跟dbgrid里面的数据有何关系?
      

  13.   

    详细页面是是想显示DBGRID的每条记录啊 也就是查看问卷面板里显示的数据是DBGRID的每条记录  这些是查看调查问卷里的东西
      

  14.   

    怎么现在显示个数据库记录,都要搞得这么繁琐呢,还点击什么,还afterscroll什么,直接托几个DBedit上去,练好字段,什么都不用你做用不同edit也行,无非就是写几行显示代码吗
      

  15.   

    这么简单的事情,同意bdmh说的,直接在TabSheet详细页面上摆几个dbtext或者dbedit,设置好datafield和datasource,保持跟dbgrid的datasource一致就可以了,不用编写什么代码
      

  16.   

    我的datafield不能设置啊 说MIssing sql proporty 这个问题真是头疼还没解决呢
      

  17.   

    先设置datasource,保持跟dbgrid的datasource一致,然后在设置datafield