一个小问题,请回答,我现在只有25分了,全给你,呵呵(25分)

  • 主题发起人 主题发起人 changerxue
  • 开始时间 开始时间
C

changerxue

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个文本框edit1,想在程序中判断用户是否输入了除了数字以外的字符,如果输入的字
符不是数字,而是还包括其他字符,则退出,这个小程序段怎么编?
 
你试一试下面的程序,注:48 为 '0'在ASCII中的序号,57为'9'在ASCII中的序号;

procedure TForm1.Button1Click(Sender: TObject);
var
temp : string;
i : integer;
begin
temp := Edit1.Text;
for i := 1 to Length(Temp) do
if ((ord(temp)< 48) or (ord(temp) > 57)) then
begin
Edit2.Text := ' 在您输入的数字中夹杂其他字符。';
exit;
end
else
Edit2.Text := ' 您所输入的数字正确。'
end;
 
procedure TFmainin.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
//用RETURN=TAB
if key=#13 then
begin
key:=#0;
perform(CM_DialogKey,VK_TAB,0);
end
else
//只输与数据有关的键
begin
if not (key in['-','0','1','2','3','4','5','6','7','8','9','.',#8]) then
begin
key:=#0;
beep;
edit1.exit;
end;
end;
end;
其中#8是退格(删除)键
 
完全同意“wily”的做法!
我在ASP和PHP里都用过这种方法检验用户的输入!绝对可行!
 
changerxue:
用maskedit,如何?
 
如果你这个Edit只接受数字的话,最简单的办法是在Form的OnCreate里写上:
SetWindowLong(Edit1.Handle, GWL_STYLE, GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER);
 
接受答案了.
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
913
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
833
DelphiTeacher的专栏
D
后退
顶部