Desenvolvimento - Mobile

Palm: Desenvolvendo Aplicativos com NS Basic

Neste Tutorial teremos o primeiro contato com o IDE – Integrated Development Enviromento – do NS Basic e programaremos nossos primeiros aplicativos.

por Wellington Pinto de Oliveira



Objetivos:
  • Conhecer o IDE do NS Basic;
  • Escrever o primeiro programa;
  • Gerar o aplicativo e executá-lo no Palm OS Emulator;
  • Criar aplicativos com entrada de dados;
  • Trabalhar com variáveis e funções de manipulação de datas.

Neste Tutorial teremos o primeiro contato com o IDE - Integrated Development Enviromento - do NS Basic e programaremos nossos primeiros aplicativos. Vamos também aprender a utilizar o Palm OS Emulator, e perceber o quanto esta ferramenta é importante durante o desenvolvimento de um software Palm.

Com estas atividades você vai constatar que o NS Basic é uma ferramenta extremamente intuitiva, e que escrever um sistema sofisticado não é uma tarefa impossível de ser realizada.

Vamos começar com o tradicional Olá Pessoa, depois uma aplicação de entrada de dados utilizando formulários e por fim manipulação de variáveis e tempo.

Olá Pessoal

Vamos começar nosso curso com a tradicional aplicação "Olá pessoal". Para isto, vamos primeiro carregar o NS Basic através do menu Iniciar | Programas | NS Basic for Palm OS 3.0 | NS Basic Palm IDE no Windows. Feito isto será exibida a tela inicial do NS Basic, que se assemelha a figura abaixo.

Sempre que carregamos o NS Basic é exibido o diálogo "Abrir", onde o desenvolvedor pode optar por:

  • Criar um novo projeto através da opção New;
  • Abrir um projeto existente através da pasta Existing;
  • Abrir um projeto recente com a pasta Recent.

Clique no ícone Project File da pasta New. Veja na figura seguinte uma análise mais detalhada do IDE (Integrated Development Enviroment):


Figura 18 - Ferramentas do IDE NS Basic Agora que conhecemos melhor a interface do NS Basic, vamos por a mão na massa e começar o desenvolvimento do nosso aplicativo Olá Pessoal. Para isto, selecione o Project1 no Project Explorer. Repare que as opções do projeto estão agora visíveis na janela Properties. Veja a figura acima.

Vamos então entender melhor para que serve cada uma destas propriedades:

  • Name: É um texto que identifica o aplicativo na tela principal do Palm. Evite colocar aqui caracteres com acento. Espaço é permitido.
  • Project Path: Diretório, na máquina de desenvolvimento, onde ficará armazenado o projeto.
  • Creator ID: Seqüência de quatro (exatamente quatro) caracteres utilizados para identificação do aplicativo no Palm OS. Este número deve ser único para cada aplicativo instalado no Palm. Para garantir esta unicidade devemos registrar nosso CreatorID no site da Palm quando pensarmos em distribuir qualquer aplicação.
  • ID, Large Icon e ID, Small Icon: Ícones do programa, caso não seja inserido nenhum ícone o programa atribui um ícone default.
  • Type: Tipo de arquivo. Neste caso utilizaremos sempre appl (application).
  • Version: Informação sobre versão. Esta informação é exibida pelo browser do Palm.

Retorne a janela Properties e modifique as seguintes propriedades do projeto:

Salve o projeto com o nome "OlaPessoal" ( File | Save Project ou Ctrl + S ).

Selecione agora o "FORM1003" no Project Explorer. Vamos entender melhor as propriedades de um formulário.

  • Name: Nome do formulário. Este nome é muito importante pois será referenciado diversas vezes no código fonte;
  • ID: Identificação do formulário. Serve como uma referência pelo NS Basic;
  • Default Form: Indica que este é o formulário base do aplicativo (formulário principal);
  • Height: Tamanho vertical do formulário. O tamanho normal é 160 pixels;
  • Modal Form: Tipo exibição de formulário, que pode ser modal e não modal;
  • Show Titlebar: Mostrar barra de titulo;
  • Title: Título do formulário.
  • Top: Posição do formulário em relação ao topo da tela do Palm.
  • Width: Tamanho horizontal do formulário.

Retorne a janela Properties e modifique as seguintes propriedades do formulário:

Nosso formulário ficou assim:


Figura 19 - Propriedades do Formulário frmBase

Adicione um controle Button (botão) ao formulário seguindo as orientações abaixo:


Figura 20 - Adicionando um botão ao formulário

Para finalizar o layout acima, centralize o botão utilizando as opções Format | Center in Form | Horizontally e Format | Center in Form | Vertically do menu principal.

Agora modifique as seguintes propriedades deste botão:

Quando o usuário clicar no botão btMsgBox será exibida a mensagem "Olá Pessoal". Para exibir esta mensagem precisaremos escrever uma pequena linha de código, a qual será associada ao clique do botão existente no formulário. Para implementar este código você pode:
  • Dar um duplo clique no botão btMsgBox;
  • Selecionar o botão e clicar com o botão direito. Depois selecione a opção "View Code" que aparece no menu popup;
  • As mesmas operações mencionadas acima estão disponíveis na janela Project Explorer.

Utilizando algum dos comandos acima, será exibida a janela de edição de código, também conhecida como Code Editor. Nela existe uma sub-rotina automaticamente declarada ( para maiores detalhes sobre sub-rotinas veja "Modularizando através de Sub-rotinas e Funções" do capítulo 4) e associada ao objeto btMsgBox. Observe que na declaração da sub-rotina o NS Basic utilizou um nome composto por "object" + ID do objeto, que neste caso é igual a 1004. Este ID pode ser visto na janela Properties do botão.


Figura 21 - Janela Code Editor

Nossa próxima tarefa é inserir o código abaixo na sub-rotina acima, entre as linhas "Sub object1004()" e "End Sub" (Nunca modifique a declaração desta Sub!!)

MsgBox "Olá Pessoal"

Veja como deve ficar nosso código após implementarmos o botão em questão:


Figura 22 - Código para exibir mensagem

Utilize a opção File | Save Project do menu principal para salvar o projeto. Salve com o nome OlaPessoal.prj.

Chegou a hora de compilar o aplicativo e gerar o arquivo PRC. Este arquivo PRC está para o Palm OS assim como arquivos .EXE estão para o Windows/DOS, ou seja, este é o executável na plataforma Palm OS. Para gerar este arquivo, acione o menu Run | Compile ou pressione F5.

Neste momento o NS Basic verifica a sintaxe do código fonte, gera o arquivo PRC e, dependendo da configuração, envia o arquivo automaticamente para o Emulator ou adiciona a lista de aplicações a serem instaladas no Palm pelo HotSync.

Para detalhes sobre configuração de compilação, verifique o item "Configurando o NS Basic" do capítulo 2.


Figura 23 - Diálogo de execução

Se o seu aplicativo não estiver aparecendo no Emulator, então experimente pressionar o botão "Applications". Neste momento são exibidos todos os aplicativos instalados. Identifique e clique no ícone "Ola Pessoal". Sempre que terminar a simulação execute o comando Run | Return to Launcher do NS Basic ( no ambiente Palm, launcher é uma aplicação que executa outra ).

Entrando com Dados

No próximo exemplo vamos construir um formulário onde o usuário pode entrar com dados ( Input ). Ele digitará seu nome e, ao clicar em um botão, exibiremos a mensagem "Olá" + NomeDigitado.

Inicie um novo projeto através do menu File | New Project ... e salve-o com o nome EntradaDados.prj. Da mesma forma que fizemos anteriormente, efetue as seguintes modificações no Projeto e no formulário base.

Para permitir que o usuário digite seu nome no formulário adicionaremos um controle Field. Veja na próxima figura como podemos inserir este controle.


Figura 24 - Adicionando um Field ao formulário

Vamos identificar as principais propriedades de um objeto do tipo Field:

  • Name: Nome do field. Este nome será utilizado pela rotina exemplo para acessar o valor digitado pelo usuário. Dar nomes significativos para controles adicionados ao formulário é sempre uma boa prática de programação;
  • Auto Shift: Shift automático para a primeira sílaba;
  • Editable: Se o campo pode ser editado pelo usuário do aplicativo;
  • Font ID: Tipo de fonte;
  • Has Scrollbar: Permite a existência de uma barra de rolagem. Esta barra só faz sentido quando a propriedade Single Line for False;
  • Max. Characters: Máximo de caracteres que o field pode suportar;
  • Numeric: Caso o field deva ter somente números e não letras;
  • Single Line: Quando false podemos utilizar o field para armazenar textos com várias linhas. Neste caso pode ser utilizado em conjunto com Has Scrollbar;
  • UnderLine: Ativa e desativa alinha abaixo do field;
  • Visible: Torna o field visível ou invisível.

Agora que conhecemos as propriedades básicas deste objeto, vamos modificar o nosso Field atribuindo as seguintes propriedades:

Acrescente também um botão (posicione logo abaixo do fldNome) com as seguintes propriedades:

Para o botão btExibir associe o seguinte código (este é o código que você precisa por entre a linha de início da Sub e a de fim ):

MsgBox "Olá " + fldNome.text

Neste código estamos exibindo mais uma mensagem com MsgBox, onde a mensagem é formada pela soma (concatenação) da constante "Olá" mais o valor da propriedade text do objeto fldNome (conteúdo digitado). Note que é possível referenciar no código fonte propriedades de controles colados no formulário. Compile o programa e teste.

Trabalhando com Datas e Variáveis

Agora vamos concentrar nossa atenção no código fonte, utilizando variáveis e funções de manipulação de datas. Crie um novo projeto e salve-o com nome DataVariavel.prj.

Neste novo projeto adicione um botão e codifique a seguinte rotina:

  "O NS Basic armazena datas entre 
  Dim DataAtual as Date
  "Domingo = 1, Segunda = 2 e assim por diante.
  Dim DiaSemana as Integer
  
  DataAtual = Today()  "obtendo a data atual...
  "obtendo o dia da semana...
  DiaSemana = DayOfWeek(DataAtual)
  "exibindo o dia da semana. Str é uma funcao que 
  "converte um valor para string
  MsgBox "Hojé é dia: " + Str(DiaSemana)

A primeira novidade que podemos constatar neste código é a presença de linhas de comentário. Estas linhas servem para documentação do código e serão constantes neste livro. Para iniciar um comentário basta inserir um caractere aspas simples, a partir deste caractere tudo é desconsiderado pelo compilador do NS Basic.

Os dois primeiros comandos declaram duas variáveis, uma do tipo Date e outra Integer. Para maiores detalhes sobre tipos de variáveis veja "Declarando Variáveis" no capítulo 4. Logo após a declaração, a variável DataAtual recebe o valor retornado pela função Today(), que representa a data atual do sistema. Em seguida esta data é utilizada para obtermos o dia da semana com DayOfWeek. Para maiores detalhes sobre funções de datas utilize o Apêndice B.

Por fim, é exibido um diálogo com o comando MsgBox contendo a string "Hoje é dia: " + dia da semana convertido para string através da função Str.

Compile e execute o exemplo no Emulator para ver o resultado.

Conhecendo Melhor o IDE

Como foi possível perceber nestes exemplos, o NS Basic possui um ambiente de desenvolvimento muito parecido com ferramentas conhecidas, como Visual Basic, Delphi, JBuidler etc.

Nós próximos tópicos vamos estudar um pouco mais afundo seus recursos de design de interface.

Selecionando Vários Controles Simultaneamente

Experimente criar um novo projeto e adicionar dois botões ao formulário base. Agora pressione o botão Shift do teclado e clique sobre os dois botões. Observe que os dois controles estão selecionados e, a partir deste momento, podemos efetuar operações que são aplicadas sobre os dois objetos. Tente arrastar um dos botões e perceberá que o outro também é deslocado.


Figura 25 - Selecionando vários controles

Com os dois botões selecionados acione a opção Format | Align | Tops do menu principal. Veja que agora os dois botões estão alinhados na mesma altura. O menu Format é utilizado para alinhamento de controles e muitas de suas opções só fazem sentido quando temos vários controles selecionados. Neste caso estamos trabalhando com dois controles do mesmo tipo, botão, mas poderíamos selecionar ao mesmo tempo botões, labels, fields etc. O efeito seria o mesmo, pois todos possuem características visuais em comum. Repare também que no alinhamento que fizemos o controle utilizado como referência foi o primeiro selecionado.

Para cancelar a seleção dos dois controles basta clicar em algum outro controle ou no formulário onde estão localizados.

"Conversando" com o Emulator

Já vimos que podemos invocar o POSE (Palm OS Emulator) automaticamente quando mandamos o NS Basic compilar e executar um projeto. Para que isto seja possível precisamos acessar a pasta Compile/Download da janela Options ( Tools | Options ... ) e marcar a opção Send to POSE. Veja a figura do tópico "Configurando o NS Basic" do capítulo 2 para maiores detalhes.

Para encerrar a execução de um aplicativo utilize o comando Run | Return to Launcher no NS Basic, ou então chame o Application Launcher diretamente no Emulator. Application Launcher é o menu de aplicativos inicial do Palm OS, onde o usuário pode acionar seus aplicativos.

Ainda no menu Run temos o comando Run | Start Palm OS Emulator que carrega o Emulator explicitamente e o Run | HotSync [NomeProjeto] que envia o arquivo PRC para o dispositivo Palm.

Wellington Pinto de Oliveira

Wellington Pinto de Oliveira - Autor do livro "Desenvolvendo Aplicações Palm com NS Basic", atualmente trabalha com automação de processos industriais e códigos de barras. http://www.softpalm.com.br.