C Chenlili Unregistered / Unconfirmed GUEST, unregistred user! 2000-12-06 #3 maskedit,如果不想用maskedit的话 procedure TForm1.Edit1KeyPress(Sender: TObject var Key: Char); begin if not (key in ['0'..'9','.']) then key:=#0; end;
maskedit,如果不想用maskedit的话 procedure TForm1.Edit1KeyPress(Sender: TObject var Key: Char); begin if not (key in ['0'..'9','.']) then key:=#0; end;
D dq Unregistered / Unconfirmed GUEST, unregistred user! 2000-12-06 #6 procedure TForm1.FormCreate(Sender: TObject); begin SetWindowLong(Edit1.Handle, GWL_STYLE, GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER); end;
procedure TForm1.FormCreate(Sender: TObject); begin SetWindowLong(Edit1.Handle, GWL_STYLE, GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER); end;
W wrench Unregistered / Unconfirmed GUEST, unregistred user! 2000-12-06 #7 想应onchange 然后try strtoint(edit.text) 出异常就不是数字
E eyes4 Unregistered / Unconfirmed GUEST, unregistred user! 2000-12-06 #8 如只想输入整数的话,chenlili的方法可以,但首位会出现0,应添加: procedure TForm1.Edit1OnChange(Sender: TObject var Key: Char); begin edit1.text:=inttostr(strtoint(edit1.text)); end; 如想输入浮点数,则 设置一全局变量text:string; procedure TForm1.Edit1Change(Sender: TObject); begin try strtofloat(edit1.text); except edit1.text:=text; end; end; procedure TForm1.Edit1KeyDown(Sender: TObject var Key: Word; Shift: TShiftState); begin text:=edit1.text; end; 不过还有点小小的问题是光标会跳到最前面去,这你自已想办法吧。
如只想输入整数的话,chenlili的方法可以,但首位会出现0,应添加: procedure TForm1.Edit1OnChange(Sender: TObject var Key: Char); begin edit1.text:=inttostr(strtoint(edit1.text)); end; 如想输入浮点数,则 设置一全局变量text:string; procedure TForm1.Edit1Change(Sender: TObject); begin try strtofloat(edit1.text); except edit1.text:=text; end; end; procedure TForm1.Edit1KeyDown(Sender: TObject var Key: Word; Shift: TShiftState); begin text:=edit1.text; end; 不过还有点小小的问题是光标会跳到最前面去,这你自已想办法吧。
D DJ. Unregistered / Unconfirmed GUEST, unregistred user! 2000-12-06 #11 if edit.text<='999999...' then it's 数字值 yes or no?
杜 杜宝 Unregistered / Unconfirmed GUEST, unregistred user! 2000-12-07 #12 我也来灌点水: 各位老大的方法打体可分为两类: 1、把输入限定在数字和字母上,如:Chenlili 2、检查输入的是否是一个整数,如:Eyes4 dp的方法没用过,不敢妄评。 但以下情况各位考虑过吗? 1、输入的是一个实数,如109.02(简单的StrToInt不行了) 2、输入的是一不合法如:109.0.02(限定输入字符不行了) 3、输入的是一个带格式的数,如:1,109.02(两种情况都不行了) 第三种情况可能有点特殊,但前两种一般是会遇到的。 我是这样作的: 1、设一个变量保存Edit输入的数字(如果是的话)。 2、响应Edit的OnExit事件,判断是否合法,如果是改变变量的值,否则报错。 3、处理Edit的显示。 一般三种情况都可解决。
我也来灌点水: 各位老大的方法打体可分为两类: 1、把输入限定在数字和字母上,如:Chenlili 2、检查输入的是否是一个整数,如:Eyes4 dp的方法没用过,不敢妄评。 但以下情况各位考虑过吗? 1、输入的是一个实数,如109.02(简单的StrToInt不行了) 2、输入的是一不合法如:109.0.02(限定输入字符不行了) 3、输入的是一个带格式的数,如:1,109.02(两种情况都不行了) 第三种情况可能有点特殊,但前两种一般是会遇到的。 我是这样作的: 1、设一个变量保存Edit输入的数字(如果是的话)。 2、响应Edit的OnExit事件,判断是否合法,如果是改变变量的值,否则报错。 3、处理Edit的显示。 一般三种情况都可解决。
A Atomic Unregistered / Unconfirmed GUEST, unregistred user! 2000-12-07 #13 IsNumberic( String ) = True or False 没有的话别怪我,这是VB的,哈