
Introdução
O sistema operacional Palm OS possui um recurso nativo conhecido como Alert, e que no Handheld Basic pode ser utilizado através da função MsgBox. Estes Alerts são utilizados para exibir simples caixas de diálogo com mensagens de alerta, informação, erro ou para pedir a confirmação do usuário antes de executar alguma ação.
Conceito
A função responsável por mostrar estas caixas de diálogo é a MsgBox, que recebe como parâmetro o texto a ser mostrado para o usuário, o tipo do diálogo (Informação, Erro, Confirmação, Aviso) combinado com as opções de resposta do usuário (OK, Cancelar, Sim, Não) e o título da caixa de diálogo. Exemplo:

MsgBox "Mensagem de Alerta", hbMsgBoxWarning + hbMsgBoxOKCancel, "Alerta"
Parâmetros e Combinações
O Palm OS possui 4 (quatro) tipos diferentes de Alerts, e cada um deles está representado por uma das variáveis constantes abaixo:
hbMsgBoxInformation
hbMsgBoxConfirmation
hbMsgBoxWarning
hbMsgBoxError
Juntamente com os tipos de Alerts, podemos combinar opções de resposta para o usuário:
hbMsgBoxDoneOnly- Exibe apenas o botão "Done" ("OK" para Português do Brasil e "Terminado" para Português de Portugal);hbMsgBoxOKCancel- Exibe os botões "OK" e "Cancel" ("OK" e "Cancelar" para Português do Brasil e "OK" e "Anular" para Português de Portugal);hbMsgBoxYesNo- Exibe os botões "Yes" e "No" ("Sim" e "Não");hbMsgBoxYesNoCancel- Exibe os botões "Yes", "No" e "Cancel" ("Sim", "Não" e "Cancelar" ou "Anular").
Detectando a Resposta do Usuário
A função MsgBox retorna um valor do tipo , que corresponde à opção que o usuário escolheu. Os possíveis valores são:
hbMsgBoxDone- Usuário clicou em "Done" ("OK" ou "Terminado" em Português);hbMsgBoxYes- Usuário clicou em "Sim";hbMsgBoxNo- Usuário clicou em "Não";hbMsgBoxOk- Usuário clicou em "OK";hbMsgBoxCancel- Usuário clicou em "Cancel" ("Cancelar" ou "Anular" em Português);
Por exemplo, para verificar o resultado de um pedido de confirmação do usuário:

Dim resposta As HbMsgBoxReturn
resposta = MsgBox("Mensagem de Confirmação", hbMsgBoxConfirmation + hbMsgBoxYesNo, "Confirmação")
If (resposta = hbMsgBoxYes) Then
MsgBox "Usuário selecionou 'Sim'", hbMsgBoxInformation, "Sim"
ElseIf (resposta = hbMsgBoxNo) Then
MsgBox "Usuário selecionou 'Não'", hbMsgBoxInformation, "Não"
End If
Utilizar MsgBox em Diferentes Idiomas
Por padrão, o Handheld Basic possui suporte aos idiomas Inglês, Espanhol, Francês, Alemão, Italiano, Holandês e Português de Portugal. Para alterar o idioma que será utilizado no projeto, e que consequentemente irá alterar as descrições dos botões utilizados pela função MsgBox, vá ao menu "Project / Settings", localize a aba "Locale" e selecione o idioma desejado. Lembre-se de alterar o idioma nas duas configurações: "Debug" e "Release".

Utilizar MsgBox em Português do Brasil
Como vimos acima, o Português do Brasil não é suportado por padrão pelo Handheld Basic, pelo menos até a versão 2.11, que é a mais recente na data da publicação deste artigo. Para contornar este problema, precisaremos apenas definir as descrições para o nosso idioma em um arquivo de configuração do Handheld Basic. Desta forma, localize a pasta onde foi instalado o HB++ (Normalmente C:\Arquivos de Programas\HB++ 2.0) e abra o arquivo "locale.dat" em um editor de textos, como por exemplo o Bloco de Notas padrão do Windows.

Em seguida, copie e cole o código abaixo para o final do arquivo. Note ainda que você pode mudar as descrições se desejar.
'--------------- Portuguese (Brazil) ------------------------- begin locale 1046 'Opções do MsgBox done = "OK" ok = "OK" cancel = "Cancelar" yes = "Sim" no = "Não" 'Dias da semana utilizados no calendário day_1 = "Domingo", "Dom" day_2 = "Segunda-feira", "Seg" day_3 = "Terça-feira", "Ter" day_4 = "Quarta-feira", "Qua" day_5 = "Quinta-feira", "Qui" day_6 = "Sexta-feira", "Sex" day_7 = "Sábado", "Sáb" 'Meses do ano utilizados no calendário month_1 = "Janeiro", "Jan" month_2 = "Fevereiro", "Fev" month_3 = "Março", "Mar" month_4 = "Abril", "Abr" month_5 = "Maio", "Mai" month_6 = "Junho", "Jun" month_7 = "Julho", "Jul" month_8 = "Agosto", "Ago" month_9 = "Setembro", "Set" month_10 = "Outubro", "Out" month_11 = "Novembro", "Nov" month_12 = "Dezembro", "Dez"
Grave as alterações, e reinicie o Handheld Basic para que as alterações no arquivo sejam carregadas. Abra seu projeto, vá ao menu "Project / Settings" e perceba que agora o idioma "Português (Brasil)" já aparece na lista.

Adicionar Outros Idiomas
Repetindo o procedimento acima, podemos adicionar muitos outros idiomas para serem utilizados em seus projetos. Cada idioma é definido por um número conhecido como Locale ID (Identificação da Localização). Por exemplo, o Locale ID do idioma Português (Brasil) é 1046, enquanto o Locale ID do idioma Português (Portugal) é 2070. Assim, para adicionar novos idiomas, basta utilizar a tabela abaixo, que contém todos os idiomas suportados pelo Handheld Basic.
- 1078 - Afrikaans
- 1052 - Albanian
- 5121 - Arabic - Algeria
- 15361 - Arabic - Bahrain
- 3073 - Arabic - Egypt
- 2049 - Arabic - Iraq
- 11265 - Arabic - Jordan
- 13313 - Arabic - Kuwait
- 12289 - Arabic - Lebanon
- 4097 - Arabic - Libya
- 6145 - Arabic - Morocco
- 8193 - Arabic - Oman
- 16385 - Arabic - Qatar
- 1025 - Arabic - Saudia Arabia
- 10241 - Arabic - Syria
- 7169 - Arabic - Tunisia
- 14337 - Arabic - U.A.E.
- 9217 - Arabic - Yemen
- 1069 - Basque
- 1059 - Belarusian
- 1026 - Bulgarian
- 1027 - Catalan
- 3076 - Chinese - Hong Kong
- 2052 - Chinese - PRC
- 4100 - Chinese - Singapore
- 1028 - Chinese - Taiwan
- 4 - Chinese
- 1050 - Croatian
- 1029 - Czech
- 1030 - Danish
- 2067 - Dutch - Belgium
- 1043 - Dutch
- 3081 - English - Australia
- 10249 - English - Belize
- 4105 - English - Canada
- 6153 - English - Ireland
- 8201 - English - Jamaica
- 5129 - English - New Zealand
- 7177 - English - South Africa
- 11273 - English - Trinidad
- 2057 - English - United Kingdom
- 1033 - English - United States
- 9 - English
- 1061 - Estonian
- 1080 - Faeroese
- 1065 - Farsi
- 1035 - Finnish
- 2060 - French - Belgium
- 3084 - French - Canada
- 5132 - French - Luxembourg
- 1036 - French - Standard
- 4108 - French - Switzerland
- 1084 - Gaelic - Scotland
- 3079 - German - Austrian
- 5127 - German - Lichtenstein
- 4103 - German - Luxembourg
- 1031 - German - Standard
- 2055 - German - Switzerland
- 1032 - Greek
- 1037 - Hebrew
- 1081 - Hindi
- 1038 - Hungarian
- 1039 - Icelandic
- 1057 - Indonesian
- 1040 - Italian - Standard
- 2064 - Italian - Switzerland
- 1041 - Japanese
- 1042 - Korean
- 1062 - Latvian
- 1063 - Lithuanian
- 1071 - Macedonian
- 1086 - Malay - Malaysia
- 1082 - Maltese
- 1044 - Norwegian - Bokmål
- 1045 - Polish
- 1046 - Portuguese - Brazil
- 2070 - Portuguese - Standard
- 1047 - Raeto-Romance
- 2072 - Romanian - Moldova
- 1048 - Romanian
- 2073 - Russian - Moldova
- 1049 - Russian
- 3098 - Serbian - Cyrillic
- 1074 - Setsuana
- 1051 - Slovak
- 1060 - Slovenian
- 2074 - Serbian
- 11274 - Spanish - Argentina
- 16394 - Spanish - Bolivia
- 13322 - Spanish - Chile
- 9226 - Spanish - Columbia
- 5130 - Spanish - Costa Rica
- 7178 - Spanish - Dominican Republic
- 12298 - Spanish - Ecuador
- 17418 - Spanish - El Salvador
- 4106 - Spanish - Guatemala
- 18442 - Spanish - Honduras
- 2058 - Spanish - Mexico
- 19466 - Spanish - Nicaragua
- 6154 - Spanish - Panama
- 15370 - Spanish - Paraguay
- 10250 - Spanish - Peru
- 20490 - Spanish - Puerto Rico
- 1034 - Spanish - Standard
- 14346 - Spanish - Uruguay
- 8202 - Spanish - Venezuela
- 1072 - Sutu
- 2077 - Swedish - Finland
- 1053 - Swedish
- 1054 - Thai
- 1073 - Tsonga
- 1055 - Turkish
- 1058 - Ukranian
- 1056 - Urdu - Pakistan
- 1066 - Vietnamese
- 1076 - Xhosa
- 1085 - Yiddish
- 1077 - Zulu
Histórico
- 03/05/2007 - Primeira versão deste artigo.
Sobre o Autor
Caio Proiete é Arquiteto de Soluções, especialista em desenvolvimento de softwares para PDAs e telefones celulares, principalmente nas plataformas Palm OS, Windows Mobile e Symbian OS.
Atualmente suas principais ferramentas/tecnologias de trabalho incluem CodeWarrior C++, Handheld Basic, eMbedded Visual C++, .NET Compact Framework, C# .NET, e Carbide.c++.
Possui extensa experiência em arquitetura e desenvolvimento de sistemas baseados em web e smart-clients, gerenciamento de projetos e treinamento, e atua também como instrutor oficial Microsoft em centros de treinamentos (CLPS), e é detentor das seguintes certificações:
- MCT - Microsoft Certified Trainer;
- MCSD - Microsoft Certified Solution Developer;
- MCDBA - Microsoft Certified Database Administrator;
- MCAD .NET - Microsoft Certified Application Developer;
- MCSD .NET - Microsoft Certified Solution Developer for .NET;
- MCTS - Microsoft Certified Technology Specialist for Windows Mobile.
Veja o todos os artigos publicados por Caio Proiete no PDAExpert.
Artigos Relacionados
1 Comentário »
Comentários via RSS TrackBack URI
-
Luis Wagner dos Santos em 18/02/2008 10:10
Abaixo segue nova configuração do locale.dat para o idioma Português ( Brasil ). As linhas abaixo funcionam na versão nova do hb++ 2.51 ( 2.51.655.732 )
somente copiar e colar no arquivo locale.dat contido no diretório de instalação.
Terminado
OK
Cancelar
Sim
Não
Domingo, Dom
Segunda-feira, Seg
Terça-feira, Ter
Quarta-feira, Qua
Quinta-feira, Qui
Sexta-feira, Sex
Sábado, SábJaneiro, Jan
Fevereiro, Fev
Março, Mar
Abril, Abr
Maio, Mai
Junho, Jun
Julho, Jul
Agosto, Ago
Setembro, Set
Outubro, Out
Novembro, Nov
Dezembro, DezFeito isso ir para Menu-> Project - > Settings. Em Locale escolher a nova configuração de idioma.
Espero ter ajudado em algo.
Abraços a todos e para o Caio por ceder este espaço.Luis Wagner



Envie seu comentário
ATENÇÃO: A área de comentários deve ser utilizada apenas para dúvidas sobre este artigo. Para dúvidas não relacionadas a este artigo, utilize o Fórum PDAExpert.net.