Я не знаю прямого способа изменить значение этого сообщения (которое обрабатывается Windows), но вы можете показать свое собственное сообщение, а затем избегать показа оригинальной подсказки 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;
Вы должны знать, что этот код будет препятствовать выполнению операций буфера обмена над элементом управления.
Обновление
Я обновляю код, чтобы разрешить символы табуляции (# 9) и Назад (# 8).