【发布时间】:2021-06-08 20:14:02
【问题描述】:
我使用 InputQuery 从用户那里获取一个值,但它只能是整数 (from 1 to 9999999...),不能是小数,也不能是字符串(不是 ABCDEF)或不是字母数字(A1B2C3)而不是特殊字符 (Hi!,)。在 delphi `RAD STUDIO 2010 中。
范围是捕获值,然后显示一条消息,告诉用户他必须只输入有效值。
我怎样才能做到这一点?
【问题讨论】:
-
请注意,您对输入格式的描述可以大大简化:确实,如果
s是一个标准格式整数的字符串,那么它不是“十进制”而不是 。 .. 一些非整数字符串(包括英语、希腊语或俄语单词)。还要注意 1, 2, 3, ... 是 positive 整数,-1, -2, -3, ... negative 整数,0 是既不积极也不消极。 0, 1, 2, 3, ... 称为非负整数。 -
您使用什么组件让用户输入值?如果是 TEdit,那么您可以设置其属性
NumbersOnly以防止他们首先在编辑控件中输入除数字以外的任何其他字符。它甚至显示有关尝试在编辑框中输入不受支持的字符的默认操作系统消息。因此,您只需检查EditBox是否为空或不包含0,因为当NumbersOnly属性设置为 true 时,用户甚至无法输入负号。 -
@SilverWarior:OP 说他们正在使用
InputQuery函数,所以它是标准的TEdit。当然,在 Delphi 10.4.2 中,您也可以使用新的TNumberBox控件(或我的multi input box)。
标签: delphi delphi-2010