请问如何检测输入数据的合法性?比如说,一个输入框,它只能接收某特定类型的数据(如整型、浮点型或具有某些特定特征的数据如ip等),要怎么检测它的合法性呢?就好像在DELPHI 的IDE 环境里的那个对象编辑器里,输入的数据是错误类型的时候会弹出来对话框提示类型错误。这个要怎么实现呢?请大家多多指点。谢谢。
解决方案 »
- copyfile( )中用几个参数?
- D7 中的radougroup 组件
- DBgrid问题
- 用API画线时如何设置画线的模式(XOR、AND、OR等)
- TClientDataSet在增加时出错!!急!!
- 各位大虾,请说一说自己认为比较好的源码下载网址
- 怎样获得本地IP地址或者HOST,以便通过服务器,建立电脑的点对点连接?
- 新手求救--一个有关用delphi写web网页的问题
- 哪儿有好的杀毒软件下载(win2000server)
- ADODataSet 过滤的另一个问题
- 这样的错误也能出现?怎么解决啊?
- :★★★难度实在太大:如何将字体为'Fixedsys'的英文文本输出到打印机? ★★★
2、在他的onkeyPress或者keyDown事件中检查按键
3、在他的onExit事件中检测
可以预先定义一个常量集合,
const IntSet=['0','1','2','3','4','5','6','7','8','9'];
然后在OnExit事件里验证用户的输入,function CheckEdit(txt:string):boolean;
var
i:integer;
begin
result:=true;
for i:=1 to length(txt) do
begin
if not (txt[i] in IntSet) then
begin
result:=false;
exit;
end;
end;
end;procedure TForm1.Edit1Exit(Sender: TObject);
begin
if not CheckEdit(Edit1.Text) then
Messagedlg(...);
Edit1.Setfocus;
end;其它的类似。
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Not (Key in ['0'..'9',#8,#13,#46] ) then
Key := #0;
if (Key = #13 ) then
begin
// add your code here
end;这是只允许输入 0 - 9 ,回车,backspace ,delete 键的合法性检测,你可以在上面的 if 语句中进行你想要的判断