简述文本框的change与keypress事件的区别
展开全部
你可以输入之后判断,就是在你点击按钮的时候进行判断,一般都是这样处理的;
当然也可以在正在输入的时候判断,假如输入的不是在定义范围之内就把它清除掉;
你想实现的就是后者,我写的代码如下:
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
当然也可以在正在输入的时候判断,假如输入的不是在定义范围之内就把它清除掉;
你想实现的就是后者,我写的代码如下:
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询