如:用户在Dbgrid中录入数据时,若判断用户输入的数据不合法,则取消当前单元格的输入,光标定于此单元格,要求用户重新输入。求怎么写此语句.在线等。

解决方案 »

  1.   

    用dbgrid可是不容易实现,做过类似的,虽然实现了但总是不进人意,考虑换个控件吧。
      

  2.   

    Dbgrid是和ADO联系起来的,把ado中相应的字段的内容清空,然后使Dbgrid相应的列得到焦点
      

  3.   

    procedure TForm1.ADOQuery1BeforePost(DataSet: TDataSet);
    begin
      If ADOQuery1.FieldByName('PersonName').AsString <>'aaa' then
      begin
        ADOQuery1.FieldByName('PersonName').AsString :='';
        ShowMessage('bu fu he !');
        Abort;
      end;
    end;
      

  4.   

    上边的是Grid对应DataSet.BeforePost中写
      

  5.   

    對於感知的DBGIRD輸入很難有效的控制,比如FLOAT數據,截獲錯誤不太容易!不推薦這麼做!
      

  6.   

    你的这种判断应该是对一整个列有效!如果是的话,那就在keyperss中判断是否在当前列,
    如果是的话,执行你的keypress否则exit;