procedure Tform1.Edit1KeyPress(Sender:
TObject; var Key:
Char);
var
edt:
TEdit;
str, strL,
strR: string;
p:
integer;
begin
// 获取当前文本内容,
注意要去掉选中部分(因为会被改写).
edt :=
TEdit(Sender);
str :=
edt.text;
if Length(edt.SelText)
<>
0 then
begin
strL := LeftStr(edt.text, edt.SelStart);
strR
:= RightStr(edt.text, Length(edt.text) - edt.SelStart -
edt.SelLength);
str := strL +
strR;
end;
//
限制输入数字/小数点/退格键
if not (Key in [#8, #13,
#127, ‘.‘, ‘-‘, ‘0‘..‘9‘]) then Key :=
#0;
//限制只能输入一个小数点
if Key =
‘.‘ then
begin
p := Pos(‘.‘, edt.Text);
if p > 0 then Key :=
#0;
end;
//限制只能在第一位输入且只能输入一个‘-‘号
if Key =
‘-‘ then
begin
if edt.SelStart > 0 then Key
:= #0;
p := Pos(‘-‘,
edt.Text);
if p >
0 then Key :=
#0;
end;
end;
//要uses
StrUtils单元
如果程序里有很多的TEdit要做此限制,当然不必给每个控件写代码,把事件指定到同一个过程就行了。
原文:http://www.cnblogs.com/m0488/p/3526758.html