偶没有分了,编辑框,身份证号码,偶希望存入数据表前进行合法性检查,最佳的事件? ON EXIT :当直接按存盘时候,并不触发;ON CHANGE :每输入一个字符都触发,太烦琐了;其他: 鼠标或者键盘变化时候,也不触发;谢谢大虾~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 procedure TGydlForm.Edit1KeyPress(Sender: TObject; var Key: Char);beginif key=#13 then begin key:=#0; perform(WM_NEXTDLGCTL,0,0); end;end; 本人经常用exit检测!先检测它的长度是否是0,是0不执行任何操作或者做你想做的操作,点存盘的时候更要执行这个检测啊?晕!如果你存盘里面也有这部分检测这无所谓的,你可以把一些小的操作做成一个独立的过程,总之,在exit的时候检测就OK,如果点了存盘的话还是要检测,不过可以做个标记,对标记进行标识究竟存盘的是否是合法信息!或者你也可以这样想想:在exit的过程里面判断activecontrol的名字是否是你要按存盘的那控件的名字!如果是就不用执行exit的那个所谓的检测了!如果不是就继续执行那个检测! 从我们编程人员的角度去看:在OnBeforPost中检验最好!这是肯定的!但问题用的毕竟是客户!你想想,如果你在这里检测的话,客户一时是很难感觉究竟是哪里有错误,就算你有提示了,这样还是没有在exit这个时候检测来的快!这是从人的反应速度上去考虑的!你难道没有在网上注册帐号吗?你不是点了确认后他才检测的吗?这样还要重新输入密码或者再次刷新等等等!不过你也可以考虑在Tedit控件的后面弄个检测的按钮,让客户去按!不过这样对网页的来说比较好,如果是这种form的话,感觉客户不想按这个按钮,因为他又要去移动鼠标并点击了!这样是很不爽的! var S :set of char; str :S;begin str = ['0'..'9',#8]; if not(key in str)then key = #0;end;就可以了 在on exit事件里写比较好立即提示用户出错位置!如果在提交的时候检测,那就希望你提示出错信息后,把光标定位到出错的TEDIT里,方便用户 建议直接做在onkeypress里面,限制别人的输入,不符合条件的不给输入 WM_XXXX消息问题,高手进来帮帮忙吧 近日朋友提起这样一个问题,问是否能实现,我回答不了,特来请教大家! 如何实现正常显示邮件内容? 十六进制的转换!? 这是什么问题:内在的OLE自动化错误? 各位大侠,小弟一事相问!! 一個初學delphi的求助 穷我们所能未能解决的问题,请问大虾们。 MRP格式的JAVA模拟器怎么用? 大家帮忙找一下,找到我给50分 采用流的手段如何将图像存储到数据库中 哪有delphi7.0的补丁下载啊
begin
if key=#13 then
begin
key:=#0;
perform(WM_NEXTDLGCTL,0,0);
end;
end;
或者你也可以这样想想:在exit的过程里面判断activecontrol的名字是否是你要按存盘的那控件的名字!如果是就不用执行exit的那个所谓的检测了!如果不是就继续执行那个检测!
S :set of char;
str :S;
begin
str = ['0'..'9',#8];
if not(key in str)then
key = #0;
end;就可以了
立即提示用户出错位置!
如果在提交的时候检测,那就希望你提示出错信息后,
把光标定位到出错的TEDIT里,方便用户