Delphi中:如何限制dbgird或者cxgrid某一列只能输入整数或小数。 20

 我来答
windblast
2017-08-21 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13624
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部

与 Grid 组件不同,由于 dbGrid 是与数据源直接相联接的。

通常情况下,如果设置好了数据库组件中字段列表,比如,将指定列的字段设置为数字型,当在 dbgrid 中输入时,delphi 会自动限制只能输入数字和小数点。

其他场合,如果需要对输入进行限制,比如,限制某列(字符类型)只能输入整数或小数,可以考虑编写在与 dbGrid 相联的 DataSource 组件的  OnDataChange 事件中编写校验代码。

参考代码如下:

procedure TForm1.ds1DataChange(Sender: TObject; Field: TField);
var
  s:string;
  n:Integer;
  r:Double;
begin
  if Field<>nil then
    if Field.FieldName='编号' then
    begin
      s := Field.AsString;
      if not (TryStrToInt(s,n) or TryStrToFloat(s,r)) then
      begin
        ShowMessage('当前输入内容不是整数或是小数,请重新输入!');
        tbl1.Cancel;
      end;
    end;
end;

运行效果:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式