COMO MODIFICAR A MENSAGEM DE ERRO DO NUMBERSONLY de um TEDIT?

16/01/2017

0

Bom dia pessoal,
Meu problema é o seguinte: Desenvolvo em Delphi uma aplicação no idioma Espanhol e estou utilizando a propriedade NumbersOnly do componente TEdit para permitir apenas digitação de números, como vocês já sabem. Mas meu problema é que a mensagem de erro, quando tentamos digitar letras, aparece em português e eu preciso que apareça em espanhol para meu cliente. A mensagem aparece no tipo baloonhint, criada pelo Delphi. Ja entrei nas Units TCustomEdit e nao consegui encontrar o local da mensagem para modifica-la para o ESPANHOL. alguem pode me ajudar?

A mensagem que presciso modificar para o espanhol é essa:
CARACTERE INACEITÁVEL - você pode digitar apenas números aqui.
Wilton Santos

Wilton Santos

Responder

Posts

16/01/2017

Gutierry Pereira

Bom dia,
Verifica se as mensagens do componente não estão dentro de uma unit com resourceString.
Em geral muitos compontes fazem isso, afim de facilitar a manutenção nas strings de apresentação,
Responder

16/01/2017

Raimundo Pereira

Uma maneira!

If not( key in['0'..'9',#08] ) then
key:=#0;
Application.MessageBox('Usted puede digitar sólo números aquí.','CARACTERE INACEITÁVEL!');
end;

Ou

If not( key in['0'..'9',#08] ) then
begin
key:=#0;
Edit1.Hint:='Usted puede digitar sólo números aquí.';
Edit1.ShowHint:=true;
end;
Responder

18/01/2017

Wilton Santos

Caro amigo, as soluções infelizmente não resolveram, porque estou usando a Property NumbersOnly do componente. Nao encontrei nenhum sinal de resource string neste codigo, pois o codigo da Vcl.StdCtrls que cria a propriedade SetNunbersOnly está assim:
procedure TCustomEdit.SetNumbersOnly(Value: Boolean);
begin
  if FNumbersOnly <> Value then
  begin
    FNumbersOnly := Value;
    if HandleAllocated then
    begin
      if FNumbersOnly then
        SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) or ES_NUMBER)
      else
        SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) and not ES_NUMBER);
    end;
  end;
end;


Eu gostaria de saber quem neste codigo chama alguma função de Unit Resource String, porque me parece que está usando o próprio Windows. Na verdade eu até gostaria de fazer que minhas mensagens de erro respondessem desse modo, sem utilizar show mensage ou messagebox. Eu queria que aparecesse em um baloonHint sempre apontando para onde estiver piscando o cursor e ao clicar qualquer tecla o baloonHint desaparecesse, conforme acontece ai nesta mensagem, mas nao consigo encontrar o lugar deste código da mensagem.
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar