这可能是一个非常简单的问题,但我从未接触过delphi.我有一个编辑框,可以接受角色.但在某些特殊情况下,我必须验证编辑框字符只是数字.
我们怎么做?
注意:用户可以输入任何char,但在验证时我必须验证上面的一个.
Dav*_*nan 10
我不知道您打算使用什么事件来调用验证,但验证可以像这样完成:
if TryStrToInt(Edit1.Text, Value) then
DoSomethingWithTheNumber(Value)
else
HandleNotANumberError(Edit1.Text);
Run Code Online (Sandbox Code Playgroud)
War*_* P 6
我不明白为什么你想让用户输入一个字符,以后不允许它通过验证.
如果你真的需要阻止进入,那么为你做这个的控件比自己破解它更好.如果你的delphi版本真的很旧,那么试试JVCL组件库中的JVCL:TJvValidateEdit,例如,在所有版本的delphi中.但是,在最近的常规delphi版本(2009及更高版本)中,已经内置了几种可能的解决方案,包括TMaskEdit和TSpinEdit.
如果您真的只需要编写验证方法,那么请考虑使用正则表达式或手动编码验证函数,并将该代码与控件分开.
// Taking OP question obsessively literally, this
// function doesn't allow negative sign, decimals, or anything
// but digits
function IsValidEntry(s:String):Boolean;
var
n:Integer;
begin
result := true;
for n := 1 to Length(s) do begin
if (s[n] < '0') or (s[n] > '9') then
begin
result := false;
exit;
end;
end;
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14871 次 |
| 最近记录: |