procedure TForm1.Edit1Exit(Sender: TObject); var i:integer; begin try i:=strtoint(edit1.Text); if i<1000 then raise ERangeError.Create(''); except ShowMessage('必须输入4位数'); Edit1.SetFocus; end; end;
begin if (length(edit3.Text)<>15) and (length(edit4.Text)<>18) then begin messagedlg('请输入正确的身份证号码!',mterror,[mbok],0); exit; end; 我这样也会出错,大家帮我看看
AND跟and 还有区别的啊?改一下大小写就OK了?
begin if (length(edit3.Text) <>15) and (length(edit4.Text) <>18) then begin messagedlg('请输入正确的身份证号码!',mterror,[mbok],0); exit; end; 按理说,如果你edit3的text=15,或者edit4的等于18就不会出错。 在delphi中,大写和小写是没有区别的。 messagedlg有个讨厌的地方,就是按钮是英文的。 不如用messagebox(0,'提示内容','提示标题',mb_error+mb_topmost)这个东东帮助里讲的比messagedlg详细。
begin if (length(edit3.Text) <>15) and (length(edit4.Text) <>18) then begin messagedlg('请输入正确的身份证号码!',mterror,[mbok],0); exit; end; 按理说,如果你edit3的text=15,或者edit4的等于18就不会出错。 在delphi中,大写和小写是没有区别的。 messagedlg有个讨厌的地方,就是按钮是英文的。 不如用messagebox(0,'提示内容','提示标题',mb_error+mb_topmost)这个东东帮助里讲的比messagedlg详细
procedure TForm1.Edit1Exit(Sender: TObject);
var
i:integer;
begin
try
i:=strtoint(edit1.Text);
if i<1000 then
raise ERangeError.Create('');
except
ShowMessage('必须输入4位数');
Edit1.SetFocus;
end;
end;
而楼主要表达的好像是,焦点在edit中的时候,就是在edit在编辑状态的时候,不过这个好像有些问题啊还是楼主表达的不准确?
而不且onchange而用onedit的话,像也会有问题。
if (length(edit3.Text)<>15) and (length(edit4.Text)<>18) then
begin
messagedlg('请输入正确的身份证号码!',mterror,[mbok],0);
exit;
end;
我这样也会出错,大家帮我看看
if (length(edit3.Text) <>15) and (length(edit4.Text) <>18) then
begin
messagedlg('请输入正确的身份证号码!',mterror,[mbok],0);
exit;
end; 按理说,如果你edit3的text=15,或者edit4的等于18就不会出错。
在delphi中,大写和小写是没有区别的。
messagedlg有个讨厌的地方,就是按钮是英文的。
不如用messagebox(0,'提示内容','提示标题',mb_error+mb_topmost)这个东东帮助里讲的比messagedlg详细。
begin
if (length(edit3.Text) <>15) and (length(edit4.Text) <>18) then
begin
messagedlg('请输入正确的身份证号码!',mterror,[mbok],0);
exit;
end; 按理说,如果你edit3的text=15,或者edit4的等于18就不会出错。
在delphi中,大写和小写是没有区别的。
messagedlg有个讨厌的地方,就是按钮是英文的。
不如用messagebox(0,'提示内容','提示标题',mb_error+mb_topmost)这个东东帮助里讲的比messagedlg详细