請問如何 TEdit 或者 TMaskEdit 控件的 Text 轉為 Integer 型﹗(30分)

  • 主题发起人 主题发起人 happyzhj
  • 开始时间 开始时间
H

happyzhj

Unregistered / Unconfirmed
GUEST, unregistred user!
不知大家碰到這個部題沒有﹐將 TEdit 或者 TMaskEdit 控件的 Text 轉換為 Integer
時﹐常常會出錯﹐請問如何有效解決地解決這個問題﹗
 
strtoint(edit1.text)
 
假如我輸入的是"22fsaff"﹐這樣不會出錯嗎???
 
用 try 处理异常
或者干脆只让用户输入数字啊
 
vb中有IsNumber的判断,Delphi中只能用try exception 结构试验,有更好的方法请通知我
 
edit 中只输入数字
SetWindowLong(Edit1.Handle, GWL_STYLE,
GetWindowLong(Edit1.Handle, GWL_STYLE) or
ES_NUMBER);
俺回去睡觉
 
一、
var
a : integer;
try
a := StrToInt(Trim(Edit.Text));
except
showmessage('输入错误!');
end;

二、
在MaskEdit的Mask中设置使得只能输入数字
 
太麻煩了﹐有沒有簡單一點的方法呀﹗﹗﹗
 
这方法还不简单
 
在OnKeyPress事件中对输入的字符做校验。
如果该字符不在0-9,BackSpace、Enter等键范围内,则清零
这样在转换时基本就没有错误了
但还要考虑到用户没有输入任何字符的情况,
因此try ...Excpet还是需要的
 
StrToIntDef(const S: string; Default: Integer): Integer;
i:=StrToIntDef(edit1.text,$FFFFFFFF)
if i=$FFFFFFFF then
begin
//处理错误;
end;
你可以将$FFFFFFFF换成一个你估计不能出现的数字,或者是你认为一个不合理的数字;
该函数如果不能有效转换时将返回缺省值而不会产生错误!
 
沒辦法了﹐只好自己麻煩一點了﹗
 
后退
顶部