答案 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中存在的功能。因此,修改消息似乎并不容易。