Mensagens do DELPHI em Português

Autor: Oziel
Publicado em: Artigos

 Esse artigo discute um pouco sobre como emitir as mensagens do programa no idioma do sistema operacional.

No delphi sempre existiu o problema das mensagens que são enviadas pela função MessageDlg serem em inglês o que resulta certo desconforto, pois um sistema totalmente desenvolvido em português, por exemplo, ter as suas mensagens em inglês denota falta de um esforço maior de programação alem de que isto resulta em um trabalho final um pouco desleixado (afinal o sistema é em qual idioma?). Apesar de que o inglês é o idioma "Internacional" os sistemas desenvolvidos como soluções para automação comercial em geral são comummente desenvolvidos já tendo em mente um publico alvo bem definido. O aplicativo é desenvolvido sobre medida para suprir as necessidades do seu cliente, mas o momento das mensagens se torna algo deselegante, malfeito etc.

Para resolver este problema encontrei a seguinte solução, utilizando a função MessageBox
no lugar da função MesageDlg (na realidade existe uma família das funções messagebox) as mensagens são enviadas no idioma que foi configurado durante a instalação do sistema operacional (o português no caso em que o Windows tenha sido instalado no nosso idioma).

Na função MessageBox (ou também nas outras da mesma família)temos basicamente a seguinte
sintaxe:

MessageBox(hWnd:HWND;ipText:PAnsiChar;ipCaption:PAnsiChar;uType:Cardinal):integer;

Para poder utilizarmos a função MessageBox com os parâmetros passados anteriormente darei
algumas explicações com relação aos mesmos:

► hWnd:HWND => É um parâmetro do tipo Handle (identificador da janela, é um numero inteiro e maior que zero que o Windows utiliza para identificar qual foi a janela que disparou aquela mensagem), não entrarei muito fundo nele. Basta
preenche-lo com o próprio handle da aplicação: Application.Handle.

► ipText:PAnsiChar => É um ponteiro de caracteres, meio enjoado de mexer. Preencha com o texto que você deseja que apareça na janela: 'Este texto aparecerá no corpo da janela da
mensagem.'.

Mas é necessário prestar atenção à um detalhe, pois como o Delphi possui uma forte
verificação de compatibilidade entre tipos de dados se você colocar como parâmetro uma variável do tipo String o delphi não irá aceitar!!! Já as Strings escritas entre trechos delimitados por aspas simples ele aceita perfeitamente mas para que a função aceite variável declarada como tipo String é necessário realizar uma operação de TypeCast na referida variável (se você não sabe o que é TypeCast…), bastando escrever na frente dela o tipo para o qual você deseja que ela seja transformada (neste caso em PAnsiChar) e depois escrever o nome da variável do tipo string entre parêntesis: PAnsiChar( <variavel_string>) EX:

PAnsiChar(Edit.Text) // onde Edit.Text uma propriedade do tipo string e é automaticamente transformada em PAnsiChar.

► ipCaption:PAnsiChar => Idêntico a ipText, mas este é o texto que ira aparecer no caption
do form da mensagem.

► uType:Cardinal => Este parâmetro é um tipo de dado inteiro e sem sinal, ele é quem determina o tipo da mensagem (seus botões e ícones):

*****************[ Mensagens do tipo Custom]**********************************
Icone(não); alertasonoro(sim);

• 0 : Botoes:[MbOK]; Icone(não);
• 1 : Botoes:[MbOK, MbCancelar];
• 2 : Botoes:[MbAnular, Mb|Repetir, MbIgnorar];
• 3 : Botoes:[MbSim, MbNão, MbCancelar];
• 4 : Botoes:[MbSim, MbNão];
• 5 : Botoes:[MbRepetir, MbCancelar];
• 6 : Botoes:[MbCancelar, MbTentar_novamente, MbContinuar];

*****************[ Mensagens do tipo Error]**********************************
Icone(Sim); alertasonoro(sim);

• 16 : Botoes:[MbOK];
• 17 : Botoes:[MbOK, MbCancelar];
• 18 : Botoes:[MbAnular, Mb|Repetir, MbIgnorar];
• 19 : Botoes:[MbSim, MbNão, MbCancelar];
• 20 : Botoes:[MbSim, MbNão];
• 21 : Botoes:[MbRepetir, MbCancelar];
• 22 : Botoes:[MbCancelar, MbTentar_novamente, MbContinuar];

*****************[ Mensagens do tipo Confirmation]**********************************
Icone(sim); alertasonoro(não);

• 32 : Botoes:[MbOK];
• 33 : Botoes:[MbOK, MbCancelar];
• 34 : Botoes:[MbAnular, Mb|Repetir, MbIgnorar];
• 35 : Botoes:[MbSim, MbNão, MbCancelar];
• 36 : Botoes:[MbSim, MbNão];
• 37 : Botoes:[MbRepetir, MbCancelar];
• 38 : Botoes:[MbCancelar, MbTentar_novamente, MbContinuar];

*****************[ Mensagens do tipo Warning]**********************************
Icone(Sim); alertasonoro(Sim);

• 48 : Botoes:[MbOK];
• 49 : Botoes:[MbOK, MbCancelar];
• 50 : Botoes:[MbAnular, Mb|Repetir, MbIgnorar];
• 51 : Botoes:[MbSim, MbNão, MbCancelar];
• 52 : Botoes:[MbSim, MbNão];
• 53 : Botoes:[MbRepetir, MbCancelar];
• 54 : Botoes:[MbCancelar, MbTentar_novamente, MbContinuar];

*****************[ Mensagens do tipo Information]**********************************
Icone(sim); alertasonoro(sim);

• 64 : Botoes:[MbOK];
• 65 : Botoes:[MbOK, MbCancelar];
• 66 : Botoes:[MbAnular, Mb|Repetir, MbIgnorar];
• 67 : Botoes:[MbSim, MbNão, MbCancelar];
• 68 : Botoes:[MbSim, MbNão];
• 69 : Botoes:[MbRepetir, MbCancelar];
• 70 : Botoes:[MbCancelar, MbTentar_novamente, MbContinuar];

***[ A partir daqui o alinhamento da mensagem muda o texto da mensagem recebe formatação]***

*****************[ Mensagens do tipo Custom]**********************************
Icone(não); alertasonoro(nao);

• 80 : Botoes:[MbOK]; Icone(não);
• 81 : Botoes:[MbOK, MbCancelar];
• 82 : Botoes:[MbAnular, Mb|Repetir, MbIgnorar];
• 83 : Botoes:[MbSim, MbNão, MbCancelar];
• 84 : Botoes:[MbSim, MbNão];
• 85 : Botoes:[MbRepetir, MbCancelar];
• 86 : Botoes:[MbCancelar, MbTentar_novamente, MbContinuar];

*****************[ Mensagens do tipo Custom]**********************************
Icone(não); alertasonoro(nao);

• 96 : Botoes:[MbOK]; Icone(não);
• 97 : Botoes:[MbOK, MbCancelar];
• 98 : Botoes:[MbAnular, Mb|Repetir, MbIgnorar];
• 99 : Botoes:[MbSim, MbNão, MbCancelar];
• 100 : Botoes:[MbSim, MbNão];
• 101 : Botoes:[MbRepetir, MbCancelar];
• 102 : Botoes:[MbCancelar, MbTentar_novamente, MbContinuar];

*****************[ Mensagens do tipo Custom]**********************************
Icone(não); alertasonoro(nao);

• 112 : Botoes:[MbOK]; Icone(não);
• 113 : Botoes:[MbOK, MbCancelar];
• 114 : Botoes:[MbAnular, MbRepetir, MbIgnorar];
• 115 : Botoes:[MbSim, MbNão, MbCancelar];
• 116 : Botoes:[MbSim, MbNão];
• 117 : Botoes:[MbRepetir, MbCancelar];
• 118 : Botoes:[MbCancelar, MbTentar_novamente, MbContinuar];

etc…etc…

O resultado desta função corresponde ao botão que foi pressionado.

Lista de correspondências:

=> MbOK : 1 ;
=> MbCancelar : 2 ;
=> MbAnular : 3 ;
=> MbRepetir : 4 ;
=> MbIgnorar : 5 ;
=> MbSim : 6 ;
=> MbNão : 7 ;
=> MbTentar_novamente : 10 ;
=> MbContinuar : 11 ;




Receba Novidades GRÁTIS por e-mail!

Confirme sua inscrição no link que receberá por e-mail




Receba Novidades Grátis

Últimos Artigos:




PontoXP © 2006-2013 - Todos os direitos reservados.
Termos de uso | Contato | Anuncie| Assine os FEEDS RSS!