仅允许CXGrid中的负数

时间:2016-02-12 13:14:03

标签: delphi tcxgrid

我正在使用devexpress在Delphi 2006中工作。

我有一个cxGrid。我想限制输入负数列的值

我的问题是如何在添加单元格时测试' - '的位置

是一种简单的方法,只允许在cxgrid的单元格中使用负数。

提前致谢

1 个答案:

答案 0 :(得分:1)

做你想做的最简单的方法就是在网格单元格中使用MaskEdit,但正如你在评论中所说的那样你不想使用它,我已经把如何做到了这个答案的结尾。

您可以完全使用自己的代码控制用户对单元格文本的编辑,我将向您展示如何执行此操作。

默认情况下,如果在整数字段的cxGrid列中键入字母键,则会听到哔声。这是因为密钥导致链接到单元格的整数字段protected $teamFormats返回TField.IsValidChar(InputChar: Char)

如果您想在不使用MaskEdit的情况下处理类似“错误”的键,您可以在EditKeyPressed事件中执行此操作。下面的代码显示您可以自己执行用户可以在字段中输入的内容,而无需像下面的评论中所引用的那样模拟按键编辑键。请仔细注意代码中的注释。

False

当然,如果你真的想要实现你在q的标题中所说的内容,即只允许负数,你可以对这段代码做一个微不足道的改变,要求编辑文本以减号开头(和如果编辑文本不为空,则编辑文本+键将转换为整数。

顺便说一句,这段代码回答了你的问题“如何在onpresskey中获取字符串值?”当然。

要在cxGrid单元格中使用MaskEdit,请在Object Inspector中选择cxGrid列,然后

  • 转到OI

  • 中的“属性”条目
  • 从下拉列表中选择“面具编辑”

  • 设置负数的编辑掩码。如果您需要帮助,请参阅在线帮助:基本上,您输入一个减号后跟数字9。

然后,用户只能输入负数而不能编辑前导减号。