dbgrideh通过上下方向键移到其他行时触发什么事件!

解决方案 »

  1.   

    如dbgrideh相关的数据集是ADOQuery1,
    那可以在ADOQuery1的afterscroll里写,
    dbgrideh上下方向键移动就是数据记录
    滚动啊!
      

  2.   

    除楼上外,还可在DBGridEh.DataSource的OnDataChange中写
      

  3.   

    to:nicolas2003(落花含情,流水有意) 
    我是在做录入,是在grid里录入的,想在离开这一行时,就判断数据是否有效。。
    在afterscroll里,第一次点击cell框也会触发这个事件。。
      

  4.   

    dbgrideh连到一个RS,然后直接在里面录入,当用上下方向移动时,原来那一行如果有一些cell没填写时,照样能移动,但最后保存是会报错,所以想在离开这行时做一些判断!!有什么好的例子吗?
      

  5.   

    for i:=0 to dbgrid1.FieldCount-1 do
    begin
    if dbgrid1.Fields[i].AsString='' then
      .......
      

  6.   

    procedure TfrmStockPlan.RsStockPlanAfterScroll(DataSet: TDataSet);
    var
      eFlag:boolean;
    begin
      eFlag:=false;
      with dataset do
      begin
        if FieldValues['provider']=Null then eFlag:=true;   
        if FieldValues['provider']='' then eFlag:=true;  
        //用上面两种方式做判断都得不到正确结果,要怎么才能知道该字段有没输入内容
        if eFlag then
        begin
          showmessage('资料录入不完整!');
          PostMessage(StockPlanList.Handle, WM_KEYDOWN, VK_ESCAPE, 0);
        end;
      end;
    end;
    //在ADOQuery1的AfterScroll作判断的