Clique para saber mais...
  Home     Download     Produtos / Cursos     Revista     Vídeo Aulas     Fórum     Contato   Clique aqui para logar | 20 de Julho de 2026
  Login

Codinome
Senha
Salvar informações

 Esqueci minha senha
 Novo Cadastro

  Usuários
38 Usuários Online

  Revista ActiveDelphi
 Assine Já!
 Edições
 Sobre a Revista

  Conteúdo
 Apostilas
 Artigos
 Componentes
 Dicas
 News
 Programas / Exemplos
 Vídeo Aulas

  Serviços
 Active News
 Fórum
 Produtos / Cursos

  Outros
 Colunistas
 Contato
 Top 10

  Publicidade

  [Artigos]  Mensagens do delphi em português
Publicado por charlelito : Sexta, Janeiro 28, 2005 - 09:17 GMT-3 (13514 leituras)
Comentários comentar   Enviar esta notícia a um amigo Enviar para um amigo   Versão para Impressão Versão para impressão
Administrador 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 comunmente 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 ;


Ai gente eu espero ter sido útil neste primeiro artigo (Não se preocupem os próximos serão melhores que este..com figuras codeHTML etc...) to com um artigo sobre automação de sistemas industriais saindo do forno para uma próxima publicação..

Caso haja dúvida : charlelito@yahoo.com.br


Comentários Comentários
   Ordem:  
Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos.
  Edição 112

Revista ActiveDelphi

  50 Programas Fontes


  Produtos

Conheça Nossos Produtos

Copyright© 2001-2016 – Active Delphi – Todos os direitos reservados