Как изменить сообщение об ошибке TEdit по умолчанию (режим NumbersOnly)? - PullRequest
9 голосов
/ 01 августа 2011

Как изменить сообщение об ошибке TEdit по умолчанию при использовании его в режиме NumbersOnly .Я имею в виду эту ошибку:

Недопустимый символ. Здесь можно ввести только число

Возможно ли изменить это сообщение?

Ответы [ 2 ]

8 голосов
/ 01 августа 2011

Я не знаю прямого способа изменить значение этого сообщения (которое обрабатывается 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).

5 голосов
/ 01 августа 2011

Глядя на источник VCL, похоже, что это сообщение генерируется окнами, а не Delphi. Таким образом, VCL только оборачивает функциональность, которая существует в окнах. Так что не похоже, что было бы легко изменить сообщение.

...