限制一个工程中所有的Tedit控件输入某几个特殊字符。比如单引号。(120分)

  • 主题发起人 主题发起人 skyjacker
  • 开始时间 开始时间
S

skyjacker

Unregistered / Unconfirmed
GUEST, unregistred user!
如何限制一个工程中所有的Tedit控件输入某几个特殊字符。比如单引号。

if (Key in ['''']) then
Key := #0;

如何不用在每一个Tedit控件的keypress下加入,而统一处理?
 
var
i: Integer;
begin
for i := 0 to ComponentCount - 1 do
if Components is TEdit then
TEdit(Components).OnKeyPress := Edit1KeyPress;
end;
 
重载类的行为啊
 
楼上的都可以
 
在TEdit基础上做一个控件
 
麻烦的问题是:
现在每个窗体已经定型。而且大部分TEdit已经被设置。
有的TEdit只允许输入数字,
有的TEdit只允许输入数字和字母,
有的TEdit可以输入任意字符或汉字。

刚才发现如果用户输入单引号,会影响程序中的Sql语句,会弹出错误对话框。
现在想把可以输入任意字符或汉字的TEdit限制单引号的输入。
比较麻烦阿。

谢谢各位。
 
设置edit的tag的值,写在keypress里
with sender Tedit do
if tag=0 then begin
//数字
if (Key in ['''']) then
Key := #0;
end else begin
//汉字
if (Key in ['''']) then
Key := #0;
end;
 
写个函数,调用就几个子而已
 
如果 Edt格式不一样,还是建议在keypress里加吧。
 
多人接受答案了。
 
后退
顶部