在dbgrid的oncolexit中进行判断,判断当然要写程序了。

解决方案 »

  1.   

    有空是INSTALL inforpower ,它的功能很强!你问的问题a piece of cafe?
      

  2.   

    应该有一个GetEditText或者SetEditText的事件的吧,因为现在在学校的机房,所以不能帮你察看
    如果你有兴趣的话可以找一找源代码中的各种方法.实在不行的话就自己继承一个.
      

  3.   

    也可以在与DbGrid相连的DataSet中,对其字段对象的OnChange,OnValidate等事件编程判断
      

  4.   

    也可以在与DbGrid相连的DataSet中,对其字段对象的OnChange,OnValidate等事件编程判断
      

  5.   

    老兄:在相关数据集的OnBeforePost内添加相应代码不就行了。
      

  6.   

    不好意思,我看错了。
    请在DBGrid中的onkeypress中添加如下代码:
    if not key in ['0'..'9','.'] then  --具体的几个我记不清楚了,你看着办吧
       begin
         key:=chr(0);
       end
    else
       begin
         --数据处理部分内容
       end
      

  7.   

    我想在OnValiDate事件里验证数据。可是如果输入的是无效的数据(比如连续两个小数点),系统会先跳出自己的错误提示。并不去执行我的验证程序。
      

  8.   

    可以在用程序限制,但用程序限制比较麻烦,最好的方式是格式化输入数据,具体操作是:双击数据集(TQuery,TTable或其他的数据集),添加所有的字段,点任意一个字段,在DISPLAYFORMAT属性中写入格式:比如Integer写入#####表示为五位整数,Float写入######0.00表示七位整数,两位小数
      

  9.   

    你可以用Tedit控件呀,在DBgrid的好像是drawcol……什么交叉那个事件里动态改变Tedit控件的位置,用Tedit控件来输入数据
      

  10.   

    在Tedit控件在onchange事件里判断数据格式
      

  11.   

    到DbGrid相连的DataSet中,对其字段对象的OnValidate等事件编程判断 
      

  12.   

    设置DISPLAYFORMAT属性无法限制e和小数点的输入。我在字段对象的OnSetText事件中写
      if text<>'' then
      begin
        Try
          StrToFloat(Text);
        Except
          MessageBeep(0);
          Raise Exception.Create('数据输入错误!');
        end;
      end;
    可以拦截到数据格式的错误。但如果数据的数据是正确的又有奇怪的问题出现:
      如果grid中该单元格的数据是12.如果我输入15,离开单元格后数据又恢复成12。即使我把该事件的代码全部注释掉,也是这样。
      

  13.   

    请按如下判断
    var code:integer;
        n:real;
        val('15..6',n,code);
    如果code=0说明小数正确,否则则错误
      

  14.   

    myxfang(小方):请问这写在什么事件里?你看了我上面回的帖子么?OnVaildDate和OnSetText事件里写代码都会有问题。
      

  15.   

    DBGRID对应的DataSource控件上有DataChange事件,可以在那里进行判断用户输入的内容是否正确。
      

  16.   

    skimwater(掠水惊鸿):DataSource控件上有DataChange事件是记录指针移动时发生。而如果在单元格中输入错误的数据,在同一行移动光标到下一个单元格就会发生错误,这时并没有发生dataChange事件。
      

  17.   

    你可以在OnSetText事件中捕获错误,用exception嘛,然后报自己的错啊。比如
    var s:integer;
    try
     s:=strtoint(Text) ;
    except
     On E:EConvertError do
      showmessage('wrong type')
      Abort;
    end;
      

  18.   

    simon_pan(张大眼睛的鱼) :照你的方法可以拦截到错误。但如果输入没有错误的话,无法更改数据,比如该单元格原来的数据是12,如果我输入12..3的话,显示错误提示,如果输入的是15,离开单元格,该单元格数据又变回到12.