看看下面的怎么样? 在KeyPress事件里写 if not (key in['0'..'9','.',#8,#13,#46]) then begin key:=#0; showmessage('你输入的不是数字!') end; if not (key in['a'..'z',#8,#13,#46]) then begin key:=#0; showmessage('你输入的不是字母!!') end;其中#13是回车键,#46是退格键,
procedure TForm1.Button1Click(Sender: TObject); begin if IntToStr(StrToInt(Trim(Edit1.Txit))) = Trim(Edit1.Txit) then ShowMessage('输入的是123456789') else ShowMessage('输入的是fferwe'); end;
可以把文本框的字符串读出,得到长度,逐一判断每个字符IF IN (0..9),如果每个字符都在(0..9)之间,就可看做是数值嘛,若有一个不在(0..9)内,就是看做是字符串了
我倒!!!!!!!!procedure TForm1.Button1Click(Sender: TObject); begin if IntToStr(StrToInt(Trim(Edit1.Txit))) = Trim(Edit1.Txit) then ShowMessage('输入的是一串数字') else ShowMessage('输入的是一串字符'); end;这样懂了吧??!!
一个字符一个字符判断不能满足吗?反正机器跑得很快^_^。只要读到一个是非数字的就跳出来,如下: for Index := 1 to Length(Text) do begin if not (Text[Index] in ['0'..'9']) then begin ShowMessage('输入的字母'); Exit; end; end; ShowMessage('输入的数字');
luke5678(~类~) 在文本里输入EDIT,运行就出错了。
用 StrToInt(S) 函数,在 S 不是数字或超长时,都会出现异常的,可以用 StrToIntDef(S, Default) 代替。
try StrToInt64(Trim(Edit1.text)); ShowMessage('输入的数字'); except on EConvertError do ShowMessage('输入的字母'); end;
str: string;
begin
str := 'fferwe';
if IntToStr(Integer(str )) <> str then
ShowMessage('是字符!')
end;
strtoint(str);
except
ShowMessage('是字符!')
end;
在KeyPress事件里写
if not (key in['0'..'9','.',#8,#13,#46]) then
begin
key:=#0;
showmessage('你输入的不是数字!')
end;
if not (key in['a'..'z',#8,#13,#46]) then
begin
key:=#0;
showmessage('你输入的不是字母!!')
end;其中#13是回车键,#46是退格键,
读一个值在文本框里,有时值是:123456789,有时值是:fferwe怎样把123456789,fferwe区分开?
begin
if IntToStr(StrToInt(Trim(Edit1.Txit))) = Trim(Edit1.Txit) then
ShowMessage('输入的是123456789')
else ShowMessage('输入的是fferwe');
end;
begin
if IntToStr(StrToInt(Trim(Edit1.Txit))) = Trim(Edit1.Txit) then
ShowMessage('输入的是一串数字')
else ShowMessage('输入的是一串字符');
end;这样懂了吧??!!
begin
if not (Text[Index] in ['0'..'9']) then
begin
ShowMessage('输入的字母');
Exit;
end;
end;
ShowMessage('输入的数字');
StrToInt64(Trim(Edit1.text));
ShowMessage('输入的数字');
except
on EConvertError do
ShowMessage('输入的字母');
end;