if not ( Key in ['0'..'9','.',#8] ) then
Key := #0;完整的onKeyPress事件代码如下:
CODE:
procedure TForm2.输入KeyPress(Sender: TObject; var Key: Char);
begin
if not ( Key in ['0'..'9','.',#8] ) then
Key := #0;
end;这个程序的意思是当Key的字符不是0-9、'.'或退格键时将Key改为“#0”,也就是说将用户输入的除上述字符外都给过滤了。
直接将工程编译运行F9即可,这时编辑框只能输入0-9、'.'或退格键了。
如果把代码改成下面则只能输入0-9的数字字符
CODE:
procedure TForm2.输入KeyPress(Sender: TObject; var Key: Char);
begin
if not ( Key in ['0'..'9','.',#8] ) then
Key := #0;
end;如果要限制输入框只能输入十六进制数的字符,则改成:
CODE:
procedure TForm2.输入KeyPress(Sender: TObject; var Key: Char);
begin
Key := UpCase(Key);
if not ( Key in ['0'..'9','A'..'F',#8] ) then
Key := #0;
end;
//如果字符串中含有小数点则返回真
function TForm2.检查小数点(字符串: String): Boolean;
begin
if Pos('.',字符串) > 0 then
begin
检查小数点 := True;
end
else
begin
检查小数点 := False;
end;
end;修改onKeyPress事件如下所示:
CODE:
procedure TForm2.输入KeyPress(Sender: TObject; var Key: Char);
var
Temp_Str : String;
begin
Temp_Str := Trim(输入.Text);
if (检查小数点(Temp_Str) = True) and ( Key = '.') then
Key := #0;
Key := UpCase(Key);
if not ( Key in ['0'..'9','.',#8]) then
Key := #0;
end;运行程序,此时在输入框中只能输入一个小数点了。
截图06.jpg
在窗体上放置一个TEDIT及TBUTTON按钮,如下图所示:
截图07.jpg
把Edit1的name属性改为:输入
把Button1的name属性改为:确定
再把Edit1的text属性的字符清空。
截图11.jpg
截图08.jpg
双击后变会自动填上事件调用,如下图:
截图09.jpg
同时代码编辑器也自动为你准备好了。
截图10.jpg
因此我们要实现楼主位所需要的代码非常简单,只需要在在onKeyPress事件中加入如下代码即可:
CODE:
if not ( Key in ['0'..'9','.',#8] ) then完整的onKeyPress事件代码如下:Key := #0;
CODE:
procedure TForm2.输入KeyPress(Sender: TObject; var Key: Char);这个程序的意思是当Key的字符不是0-9、'.'或退格键时将Key改为“#0”,也就是说将用户输入的除上述字符外都给过滤了。begin
if not ( Key in ['0'..'9','.',#8] ) then
Key := #0;
end;
直接将工程编译运行F9即可,这时编辑框只能输入0-9、'.'或退格键了。
如果把代码改成下面则只能输入0-9的数字字符
CODE:
procedure TForm2.输入KeyPress(Sender: TObject; var Key: Char);如果要限制输入框只能输入十六进制数的字符,则改成:begin
if not ( Key in ['0'..'9','.',#8] ) then
Key := #0;
end;
CODE:
procedure TForm2.输入KeyPress(Sender: TObject; var Key: Char);begin
Key := UpCase(Key);
if not ( Key in ['0'..'9','A'..'F',#8] ) then
Key := #0;
end;
不然的话,敲进去几个小数点,就算不出错看着也不正规,呵呵
方法就是再加个检查程序段(最好做成一个函数),把Edit1.text的内容扫一次,如果小数点的数量等于1并且当前输入的字符是“.",则直执行:Key := #0;
我属于懒惰型...呵呵,都是用 SUIPack 包中的 suiNumberEdit 数字输入控件
习惯不好,太依赖现成的东西了
先加下函数声明:
截图12.jpg
现在程序中加入如下函数体。
CODE:
//如果字符串中含有小数点则返回真修改onKeyPress事件如下所示:function TForm2.检查小数点(字符串: String): Boolean;
begin
if Pos('.',字符串) > 0 then
begin
检查小数点 := True;
end
else
begin
检查小数点 := False;
end;
end;
CODE:
procedure TForm2.输入KeyPress(Sender: TObject; var Key: Char);运行程序,此时在输入框中只能输入一个小数点了。var
Temp_Str : String;
begin
Temp_Str := Trim(输入.Text);
if (检查小数点(Temp_Str) = True) and ( Key = '.') then
Key := #0;
Key := UpCase(Key);
if not ( Key in ['0'..'9','.',#8]) then
Key := #0;
end;
QUOTE:
我一般是需要什么功能就自已去实现,用第三方的控件有总觉得不踏实。