delphi中文本框中的Keypress事件中
delphi中文本框中的Keypress事件中如何只能输入0.01到1之间的数!或者有别的办法...
delphi中文本框中的Keypress事件中如何只能输入0.01到1之间的数!或者有别的办法
展开
5个回答
展开全部
你可以输入之后判断,就是在你点击按钮的时候进行判断,一般都是这样处理的;
当然也可以在正在输入的时候判断,假如输入的不是在定义范围之内就把它清除掉;
你想实现的就是后者,我写的代码如下:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', '.',#8]) then //#8 backspace不允许输入数字和退格键以外的
begin
Key := #0;
end
else
if Length(Edit1.Text)=0 then //第一位只能是0或1
begin
if not (Key in ['0', '1',#8]) then
begin
Key := #0;
end
end
else
if Length(Edit1.Text)=1 then//第2位只能为小数点
begin
if not (Key in ['.',#8]) then
begin
Key := #0;
end
end
else
if Length(Edit1.Text)>3 then//不能输入3位以上长度,如0.123
begin
if not (Key in [#8]) then
Key := #0;
end
else
if Length(Edit1.Text)<=3 then//第1位位1后面只能跟0
begin
if Copy(Edit1.Text,1,1)='1' then
if not (Key in ['0',#8]) then
Key := #0;
end;
end;
当然也可以在正在输入的时候判断,假如输入的不是在定义范围之内就把它清除掉;
你想实现的就是后者,我写的代码如下:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', '.',#8]) then //#8 backspace不允许输入数字和退格键以外的
begin
Key := #0;
end
else
if Length(Edit1.Text)=0 then //第一位只能是0或1
begin
if not (Key in ['0', '1',#8]) then
begin
Key := #0;
end
end
else
if Length(Edit1.Text)=1 then//第2位只能为小数点
begin
if not (Key in ['.',#8]) then
begin
Key := #0;
end
end
else
if Length(Edit1.Text)>3 then//不能输入3位以上长度,如0.123
begin
if not (Key in [#8]) then
Key := #0;
end
else
if Length(Edit1.Text)<=3 then//第1位位1后面只能跟0
begin
if Copy(Edit1.Text,1,1)='1' then
if not (Key in ['0',#8]) then
Key := #0;
end;
end;
展开全部
Keypress事件是输入时触发的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
按键事件,写键盘ASCII
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
请问您想问什么?就是按键按下事件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
太牛都方法我不知道,我一般都是自定义一个函数去分析内容返回True或False
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询