如何更改TEdit默认错误消息(NumbersOnly模式)?

时间:2011-08-01 10:05:03

标签: delphi edit number-formatting

NumbersOnly模式下使用时,如何更改TEdit的默认错误消息。我的意思是这个错误:

  

不可接受的字符您只能在此处输入数字

是否可以更改此消息?

2 个答案:

答案 0 :(得分:8)

我不知道改变该消息的价值的直接方式(由Windows处理),但您可以显示自己的消息,然后使用Abort来避免显示原始窗口提示气球OnKeyPress活动中的程序。

检查此样本

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (CharInSet(Key,['0'..'9',#8,#9]))  then      
  begin
    ShowHintMessage('Only numbers please');//you must write this function 
    Abort;//this will prevent which the original windows hint was shown
  end;
end;

您必须知道这些代码将阻止在控件上执行剪贴板操作。

更新

我更新代码以允许Tab(#9)和Back space(#8)字符。

答案 1 :(得分:5)

查看VCL源代码,看起来该消息是由Windows生成的,而不是由Delphi生成的。也就是说,VCL只包含Windows中存在的功能。因此,修改消息似乎并不容易。