LEONARDO PEREIRA E SILVA
CU RSO DE
N SBASI C
PARA PALM
A FORMA MAIS FÁCIL DE PROGRAMA
EM UM PALM OS
EBOOK FREE
CURSO DE NSBASIC PARA PALM
LEONARDO PEREIRA E SILVA
Ebook
CURSO DE NSBASIC PARA PALM
João pessoa
2004
CONTATO
Rua. Carmelo Ruffo, 129 – bairro Jaguaribe
Cep: 58015460 João Pessoa -PB
Fone: (083)2220315 Cel: (083)99983293
http://www.lpsjampa.ubbi.com.br
e-mail: lpsjampa@ubbi.com.br
EDIÇÃO
Revisão e Formatação: Nadjacleia Vilar Almeida
Arte capa: Leonardo Pereira e Silva
Tiragem: Livre
CATÁLOGO NA BIBLIOTECA DA UFPB
S 586c
Silva, Leonardo Pereira e.
Curso de NSBasic para Palm / Leonardo Pereira
e Silva. – João Pessoa: ebook, 2004.
58p.: il.
1. Basic; 2. Palm; 3. PalmOS; 4. Programação;
5.Titulo
UFPB/BC
CDU 681.3.06(043.2)
AGRADECIMENTOS
A Deus, o ser supremo do mundo, que me deu e está dando saúde e me concedeu até hoje o
dom da sabedoria e da graça para poder lutar e conseguir um futuro melhor.
Aos meus pais José Maia e Ivonete e meu irmão Luciano que me incentivaram nessa vida de
computação.
A todos os colegas da internet e em especial aos criadores do clubepalm e do softpalm por
disponibilizar material e estarem sempre em discussões sobre o NSBasic diretamente ou
indiretamente quando necessário.
A minha namorada Nadjacleia fazer uma revisão gramatical e por editorar e formatar todo o
trabalho.
Enfim, agradeço a todas as pessoas que direta ou indiretamente contribuíram para a realização
deste trabalho.
SUMÁRIO
LISTA DE FIGURAS
LISTA DE QUADROS
APRESENTAÇÃO ......................................................................................................07
INTRODUÇÃO ...........................................................................................................08
1 VISÃO GERAL ........................................................................................................09
1.1 O SISTEMA OPERACIONAL PALM OS .............................................................09
1.2 INSTALANDO O NSBASIC .................................................................................09
1.3 INSTALANDO O PALM OS EMULATOR...........................................................12
1.4 UMA INTRODUÇÃO PARA AS VÁRIAS PARTES DO IDE...............................15
1.5 CRIANDO UM PEQUENO APLICATIVO ...........................................................18
2 AVALIANDO A LINGUAGEM ..............................................................................20
2.1 VARIÁVEIS............................................................................................................20
2.2 CONSTANTES.......................................................................................................21
2.3 ARRAYS.................................................................................................................21
2.4 DEFININDO ESTRUTURAS DE VARIÁVEIS......................................................22
2.5 DECLARAÇÕES ....................................................................................................23
2.6 SUBROTINAS ........................................................................................................23
2.7 FUNÇÕES ..............................................................................................................24
2.7.1 Construindo Funções.............................................................................................24
2.8 COMENTÁRIOS NO NSBASIC ...........................................................................24
2.9 DO / LOOP .............................................................................................................24
2.10 EXIT FOR.............................................................................................................25
2.11 FUNÇÃO EXIT ....................................................................................................25
2.12 GETEVENTTYPE.................................................................................................26
2.13 DECLARAÇÃO DELAY ......................................................................................26
3 PROPRIEDADES E METODOS DOS OBJETOS ...............................................27
3.1 PROPRIEDADES....................................................................................................27
3.2 MÉTODO................................................................................................................28
3.2.1 Método de Objetos ...............................................................................................28
3.3 CONSTANTES PRÉ-DEFINIDAS NO NSBASIC ................................................29
4 AVALIAÇÃO DE COMANDOS.............................................................................30
4.1 COMANDOS ARITMÉTICOS ..............................................................................30
4.2 CONTROLE E COMANDOS LÓGICOS..............................................................30
4.3 DEFINIÇÃO DE MÓDULO E COMANDOS DE CONTROLES .........................30
4.4 COMANDOS GRÁFICOS DE TELA ....................................................................31
4.5 COMANDOS MISTURADOS ...............................................................................31
4.6 CONSTRUÍNDO FUNÇÕES DE OBJETO DE TELA...........................................32
5 AVALIANDO FUNÇÕES ........................................................................................33
5.1 TRABALHANDO COM CORES ...........................................................................33
5.2 USANDO A BIBLIOTECA NSBSYSTEMLIB ......................................................34
5.3 A BIBLIOTECA MATHLIB....................................................................................34
5.3.1 Construindo Funções Trigonométricas....................................................................36
5.3.2 Construindo Funções de Banco de Dados..............................................................37
5.3.3 Construindo Funções Seiral I/O .............................................................................41
5.3.4 Construindo Outras Funções..................................................................................41
6 REFERÊNCIA DO NSBASIC/PALM ....................................................................44
7 O PALM FÍSICO......................................................................................................49
7.1 UTILIZANDO O QUICK INSTALL ......................................................................49
7.2 O QUE É UMA OPERAÇÃO DE HOTSYNC .......................................................51
7.2.1 Como Sincronizar ..................................................................................................51
8 GLOSSÁRIO ............................................................................................................53
CONCLUSÃO..............................................................................................................57
BIBLIOGRAFIA .........................................................................................................58
LISTA DE FIGURAS
FIGURA 1- NSBASIC.EXE.........................................................................................10
FIGURA 2 - TELA DE BOAS VINDAS DO NSBASIC..............................................10
FIGURA 3 - TELA DE ACORDO DO NSBASIC. ......................................................11
FIGURA 4 - DESTINO DOS ARQUIVOS DO NSBASIC .........................................11
FIGURA 5 - DESTINO DO PROGRAMA DO NSBASIC ..........................................11
FIGURA 6 - PROGRESSO DA COPIA DOS ARQUIVOS ........................................12
FIGURA 7 - TELA DE ENCERRAMENTO DA INSTALAÇÃO................................12
FIGURA 8 -TELA INICIAL DO PALM OS EMULATOR..........................................13
FIGURA 9 -TELA DE CONFIGURAÇÃO DO EMULATOR.....................................13
FIGURA 10 - ENCERRADO AS CONFIGURAÇÕES NO EMULATOR..................13
FIGURA 11 - PALM EMULATOR..............................................................................14
FIGURA 12 - INSTALAÇÃO NO PALM EMULATOR.............................................15
FIGURA 13 - INICIANDO O IDE DO NSBASIC ......................................................16
FIGURA 14 - IDE DO NSBASIC ................................................................................16
FIGURA 15 - TELA DO ICONMAKE........................................................................17
FIGURA 16 - TELA DO FORMULÁRIO COM OS CONTROLES ...........................18
FIGURA 17 – ESCREVENDO CÓDIGO ....................................................................19
FIGURA 18 – PROGRAMA EM EXECUÇÃO ...........................................................19
FIGURA 19 – PROPRIEDADES .................................................................................27
FIGURA 20 - TABELA DE CORES DO PALM..........................................................33
FIGURA 21 – DESENHANDO LINHAS COM FUNÇÃO TRIGONOMÉTRICA ....37
FIGURA 22 – TELA DO PROGRAMA.......................................................................38
FIGURA 23 - INSERINDO ARQUIVOS DO TIPO BMP...........................................38
FIGURA 24 – BDPALM SENDO EXECUTADO .......................................................41
FIGURA 25 – CAIXA DE MENSAGEM.....................................................................44
FIGURA 26 – CRIANDO MENUS .............................................................................45
FIGURA 27 - TELA INICIAL DO QUICK INSTALL ................................................50
FIGURA 28 - ENVIANDO ARQUIVOS PARA O QUICK INATALL ......................50
FIGURA 29 – TELA DE SINCRONISMO DO PALM ...............................................51
FIGURA 30 – SINCRONIZANDO .............................................................................52
LISTA DE QUADROS
QUADRO 1 - CONSTRUÇÃO DE FUNÇÕES DE TEMPO ......................................21
QUADRO 2 – PEGANDO EVENTOS ........................................................................26
QUADRO 3 – MÉTODOS DE OBJETOS ...................................................................28
QUADRO 4 – CONSTANTES PREDEFINIDAS........................................................29
QUADRO 5 – COMANDO LET .................................................................................30
QUADRO 6 – CONTROLES E COMANDOS LÓGICOS .........................................30
QUADRO 7 - DEFINIÇÃO DE MÓDULO E COMANDOS DE CONTROLES........30
QUADRO 8 - COMANDOS GRÁFICOS DE TELA...................................................31
QUADRO 9 - COMANDOS MISTURADOS .............................................................31
QUADRO 10 - FUNÇÕES DE OBJETO DE TELA ....................................................32
QUADRO 11 – FUNÇÕES ARITMÉTICAS ...............................................................35
QUADRO 12 - FUNÇÕES TRIGONOMÉTRICAS ....................................................36
QUADRO 13 - FUNÇÕES DE BANCO DE DADOS.................................................37
QUADRO 14- FUNÇÕES SEIRAL I/O .......................................................................41
CURSO DE NSBASIC
7
APRESENTAÇÃO
Este livro é fruto de uma imensa pesquisa e garimpagem de artigos, livros e manuais na
internet sobre o assunto, com intuito de divulgar essa que para mim foi uma das maiores
invenções da humanidade o “handhelds”, pois quem não conhece não imagina o que pode
fazer com ele e após conhecer-lo não consegue viver sem. Este livros tem por finalidade dar
uma visão geral sobre a programação em palmtop com conceitos e comparações com outras
ferramentas e outros computadores de mão, e também o seu sistema operacional palmOS,
quais as vantagens e desvantagens e todo o conjunto que é sem sobra de dúvida mais um
instrumento indispensável em nossas vidas e sobre a linguagem Basic que é utilizada no
NSBasic que é a ferramenta mais simples porem sem deixa a deseja nos recursos e com um
preço acessível, talvez a ferramenta vendida para programar em palmtop mais barata do
mercado.
João Pessoa, PB Junho de 2004
CURSO DE NSBASIC
8
INTRODUÇÃO
O BASIC (Código de Instrução Simbólica de Propósito Geral para Iniciantes) surgiu
já há algum tempo atrás e foi o primeiro produto a ser comercializado pela Microsoft do Bill
Gates.
No Brasil, o primeiro contado com o BASIC, foi na década de 80 com os
computadores MSX, TK90X, TK2000 e CP500, que o utilizavam como linguagem de
programação.
Quando o Windows foi lançado pensava-se que a única linguagem para este
ambiente fosse a linguagem “C”, foi aí que surgiu o Visual Basic, com um novo BASIC, bem
estruturado e mais poderoso, não mais aquele compilador confuso,. Tornou-se a linguagem
mais utilizada em todo o mundo chegando a ter três milhões de desenvolvedores no final da
década de noventa. Uma linguagem usada por mais programadores que qualquer outra
linguagem na história de computação.
Hoje no século XXI temos uma gama de programas que editam Aplicações como o
Microsoft Excel, Microsoft Acess, e muitos outros aplicativos para Windows usam a mesma
linguagem. O sistema de programação Visual Basic, Edição de Scripting (VBScript) para
programação Internet é um subconjunto da linguagem Visual Basic. E não seria diferente para
os computadores de mão os PDA’s Personal Digital Assistant (assistente pessoal digital em
português), graças a NSBASIC Corporation criadora do NSBasic que oferece uma ferramenta
muito simples, porém poderosa para desenvolvimento de aplicações para o Palm.
Uma das vantagens, a mais importante é que NSBasic está disponível para os sistema
operacionais Palm OS, Windows CE e Apple Newton, ou seja trabalhado com apenas uma
ferramenta é possível desenvolvimento aplicativo nas principais plataFormas de PDA´ s.
Outra vantagem do NSBasic é o seu baixo preço. O NSBasic custa apenas US$ 99,00
incluindo a livre distribuição do seu run-time, que é um arquivo de aproximadamente 85K
necessário para que as aplicações desenvolvida sejam executada no Palm e na versão 4.0 você
pode traduzir o menus para o português. Não é preciso ter o Palmtop para testar os programas,
pois na instalação do NSBasic encontra-se um emulador o “Palm OS Emulator” onde é
possível instalar e testar os aplicativos.
Ao final desta leitura você conhecerá o sistema operacional Palm OS e será capaz de
instalar o NsBasic, instalar o POSE, de criar, testar e instalar aplicativos em Palm.
CURSO DE NSBASIC
9
1 VISÃO GERAL
1.1 O SISTEMA OPERACIONAL PALM OS
A Palm Computing Inc. iniciou a comercializar o Pilot em abril de 1996. Esse
produto eletrônico que cabia num bolso de camisa e armazenava milhares de endereços e
compromissos e custava barato. A invenção de Jeff Hawkins vendeu mais de um milhão de
Pilots em 18 meses.
Palm OS é o Sistema operacional utilizado nos equipamentos Palm. O Palm OS é
responsável por gerenciar todas as funções dessa maquina, controlando a tela, teclas, sistema
de sincronismo, reconhecimento de escrita.
Gerenciando basicamente todas as funções, o Palm OS possui os principais
aplicativos que se precisa para utilizar um computador de mão, como agenda, contatos, tarefas
a fazer, bloco de notas, calculadora e aplicativos de configuração.
O Palm OS é o Sistema Operacional mais popular do mundo entre handhelds, os
handhelds são computadores de mão com cerca de 29 milhões entre handhelds e smartphones
vendidos. Com 275.000 desenvolvedores em todo o mundo no ano de 2001 cerca de 97% dos
aplicativos vendidos para handhelds foram feitos para Palm.
O Palm OS tem como ilnguagem nativa o C, mas alternativamente pode ser usado
C++, Pascal, Lua, Java e VB que é a linguagem do NSBasic.
1.2 INSTALANDO O NSBASIC
A instalação do NSBasic é semelhante a de vários programas baseado em Windows
com o software para instalação vá até o Windows Explorer, escolha o caminho do NSBasic,
abra a pasta onde se encontra o NSBasic, execute o arquivo Nsbasic.exe. (FIG. 1).
CURSO DE NSBASIC
10
FIGURA 1 - NSBASIC.EXE.
Você
pode
fazer
o
download
do
NSBasic
Demo
através
do
link
<www.nsbasic.com/pub/Palm_files/updates/NsbasicDemo.exe>, O qual foi utilizado para a
construção desse curso. Em seguida surgirá a tela inicial de boas vindas do programa, clique
no botão “Install” para continuar a instalação (FIG. 2).
FIGURA 2 - TELA DE BOAS VINDAS DO NSBASIC.
Aparecerá uma tela com o termo de contrato, após a leitura clique em “I agree” eu
concordo para continuar a instalação, caso contrario clique em “Cancel” para sair da
Instalação (FIG. 3).
CURSO DE NSBASIC
11
FIGURA 3 - TELA DE ACORDO DO NSBASIC.
Após a aceitação aparecerá uma tela a qual o usuário deverá indicar o caminho onde
os arquivos ficarão instados no seu computador, é recomendável que não mude o caminho
padrão (FIG. 4).
FIGURA 4 - DESTINO DOS ARQUIVOS DO NSBASIC.
Clique em “Ok” para continuar a instalação, irá aparece outra tela para indicar onde
ficará o programa (FIG. 5).
FIGURA 5 - DESTINO DO PROGRAMA DO NSBASIC.
Clique em “Ok” novamente para começar a instalação propriamente dita como
mostra a Figura 6 abaixo:
CURSO DE NSBASIC
12
FIGURA 6 - PROGRESSO DA COPIA DOS ARQUIVOS.
Após o termino da copia aparecerá a última tela seguida de um arquivo de texto
LEIA-ME clique em “Ok” para finalizar a instalação do seu NSBasic (FIG. 7).
FIGURA 7 - TELA DE ENCERRAMENTO DA INSTALAÇÃO.
1.3 INSTALANDO O PALM OS EMULATOR
O POSE é uma programa que roda tanto em Windows ou Macintosh, e é utilizado
como Palm não físico, pois emula um handheld.
O Palm OS Emulator é um programa genérico que simula o Palm em um computador
de mesa nas plataformas como a do Windows e Macintosh, este emulador possui o sistema
operacional Palm OS.
O POSE é um aplicativo que utiliza um arquivo ROM de um Palm. O arquivo ROM
é uma imagem do Palm. Portanto, faz-se necessário escolher o modelo do simulador adequado
para os testes, no caso, se você tiver um Palm é aconselhável que escolha a ROM do modelo
igual a seu Palm.
Você pode fazer o download do Palm OS Emulator pela internet no site da palmos no
link <http://www.palmos.com/dev/tech/tools/emulator>.
Em alguma versões do NSBasic o POSE instala-se automaticamente, você pode
visualizar se ele foi instalado, indo no botão iniciar do Windows; Programas; NSBasic for
Palm, caso não esteja instalado iremos instalar o Palm OS Emulator agora, vá até a pasta
CURSO DE NSBASIC
13
“PalmOSEmulator” que deve estar em \NSBasic\Tools\ e em seguida execute o programa
Emulator.exe. Aparecerá uma tela inicial clique em “New” para iniciar uma nova seção no
emulador (FIG. 8).
FIGURA 8 - TELA INICIAL DO PALM OS EMULATOR.
Clique em ROM file para carregar o arquivo referente a o Palm desejado, você pode
fazer o download de vários modelo no site da palmbrasil no endereço eletrônico
<http://www.palmbrasil.com.br/programas/pgm/> (FIG. 9), em seguida clique em Device
para escolher o modelo do seu Palm, em Skin não altere “Generic” e em RAM Size escolha o
maior tamanho possível para a memória do seu Palm OS Emulator (FIG. 10).
FIGURA 9 - TELA DE CONFIGURAÇÃO DO EMULATOR.
FIGURA 10 - ENCERRADO AS CONFIGURAÇÕES
CURSO DE NSBASIC
14
Em seguida clique em “Ok” salve as configurações para nas próximas vezes que o
emulador for iniciar não necessite de configura-lo. Agora e só explorar o seu Palm OS
Emulator (FIG. 11).
FIGURA 11 - PALM EMULATOR
Instalando aplicativos no Palm Emulator, vamos tomar, por exemplo, o Run-time do
NSBasic que é o arquivo necessário para os aplicativos desenvolvido no NSBasic serem
executado, existem duas maneiras de se compilar um aplicativo Palm.
A primeira maneira é utilizando a compilação estática, onde uma grande porção de
software é adicionada ao código final do seu aplicativo para permitir que ele rode no Palm.
Este software é chamado Run-time, um aplicativo compilado com esta opção é chamado Fat
App.
Uma outra forma é a compilação dinâmica, onde o Run-time é distribuído
separadamente do aplicativo. Esta é a opção mais interessante, pois permite que o Run-time,
com aproximadamente 85 KB seja compartilhado entre os diversos aplicativos desenvolvidos.
Para instalar o Run-time selecione a janela principal do Palm OS Emulator, clique
com o botão direito do mouse e selecione a opção Install Application em seguida Database e
Other, ao clicar em “Other” será exibida uma janela “Import File”. Selecione o arquivo
NSBRumtime.prc que esta em download no diretório do NSBasic (FIG. 12).
CURSO DE NSBASIC
15
FIGURA 12 - INSTALAÇÃO NO PALM
EMULATOR
1.4 UMA INTRODUÇÃO PARA AS VÁRIAS PARTES DO IDE.
Neste item conheceremos a IDE do programa e teremos uma visão geral de como
iniciaremos a programar no Palm. Com um ambiente enxuto e bem semelhante ao do
Microsoft Visual Basic que facilitar a vida dos programadores de Visual Basic, a IDE do
NSBasic foi desenvolvida em único ambiente simplificando para as construções dos
aplicativos.
Para iniciar o NSBasic clique no botão iniciar do Windows; Programas; NSBasic for
Palm e NSBasic Palm IDE (FIG. 13).
Inicialmente será exibida uma tela de dialogo que dará possibilidade de criar um
novo projeto, abrir um projeto existente e abrir um projeto recente. Clique em “New” para
iniciar um novo projeto (FIG. 14).
CURSO DE NSBASIC
16
FIGURA 13 - INICIANDO O IDE DO NSBASIC.
Project explorer
Form Designer
Exibe os objetos que
compõe o aplicativo
Onde é feito o layout
do aplicativo
TOOLBOX
Estes são os controles ou
componentes que serão
adicionados ao form.
Code
Onde será escrito o
código do aplicativo
Properties
Onde será feita a
modificação nos atributos
dos controles e form.
FIGURA 14 - IDE DO NSBASIC
Como a maioria dos programas para Windows o NSBasic é composto de um menu
suspenso com todas as funções do programa como open e salve, view, windows e existem
CURSO DE NSBASIC
17
menus especifico como project onde você pode acionar um novo form, o menu run onde será
possível compilar o aplicativo em outro, e o menu tool onde você poderá adicionar menus nos
aplicativos que serão desenvolvidos, existe ainda o toolbar com botões rápidos para às
funções mais utilizadas e a statusbar com informações a cerca do que estiver sendo feito, a sua
IDE foi feito em único ambiente. Contendo também o Form Designer um Formulário para os
aplicativos serem desenhado, o ToolBox com componentes que serão adicionado ao
Formulário, são eles: Bitmap, Button, Checkbox, Field, Gadget, Label, List ,Popup,
Pushbutton, Repeater, Scrollbar, Selector e Shift Indicator, parando o ponteiro do mouse
sobre cada ícone se exibirá o nome de cada controle. O Project Explorer tem a finalidade de
exibir os objetos do projeto construído, ou seja, o aplicativo, o Properties é responsável pela
mudança nas características dos objetos inseridos no projeto, como Form ou qualquer
componente que nele seja adicionada, o Code será o local para escreve as instruções dos
controles o que cada controle deve fazer, no caso de um Form você poderá mudar o nome,
titulo, tamanho e modo de exibição etc.
Algumas versões do Nsbasic vem com um aplicativo para criar ícones para sua
aplicação, você pode usar a ferramenta chamada de IconMaker. Para iniciar o programa de
edição de ícone pelo explore vá até a pasta \NSBasic\Tools\ e execute o IconMake.exe (FIG.
15).
FIGURA 15 - TELA DO ICONMAKE.
Com esse programa você pode abrir e editar ícones já existentes e fazer novos para as
aplicações feitas em seu NSBasic.
CURSO DE NSBASIC
18
1.5 CRIANDO UM PEQUENO APLICATIVO
Com NSBasic aberto crie um novo projeto, em um Form adicione um componente
do tipo Button, Label e um Field, selecione o Form dando-lhe um clique, em Properties mude
o nome do Form para “MSGfrm”, em Title mude para “Meu primeiro programa”, selecione o
Button e mude a propriedade nome para “MSGbtn” e por fim clique em Field, mude a
propriedade Name para “Fldnome”, selecione o Label e mude a propriedade nome dele para
“lblMSG” e propriedade Label para “escreva seu nome”. Para adicionar um componente basta
dar um clique selecionando um componente referente no Toolbox e adiciona-lo no Form
(FIG. 15).
FIGURA 16 - TELA DO FORMULÁRIO COM OS CONTROLES.
Em seguida dê dois clique no botão “MSGbtn” para escrever as linhas de código do
programa, deverá abri a janela do Code editor, então escreva o texto da Figura 17:
CURSO DE NSBASIC
19
FIGURA 17 – ESCREVENDO CÓDIGO
Depois de ter escrito o código acima, clique no Menu Run; Compile projeto ou
pressione F5 para testar o seu programa. Irá aparecer uma mensagem avisando que o Pose
esta rodando e outra com o tamanho do aplicativo.
FIGURA 18 – PROGRAMA EM
EXECUÇÃO
No código acima (FIG. 17) estamos exibindo uma mensagem com a função
MsgBox, onde a mensagem é formada pela soma dos caracteres “primeiro programa de” mais
o valor da propriedade text do objeto fldNome.
CURSO DE NSBASIC
20
2 AVALIANDO A LINGUAGEM
2.1 VARIÁVEIS
Variáveis são identificadores que podem dar nome a um valor. Por exemplo, uma
variável com um nome de “TODAYSDATE” pode ter o valor de uma data “10/15/98”. Uma
variável “PI” pode ter o valor de “3.1415”.
Para um variável ser valida:
1.
Tem que começa com um caractere alfabético.
2.
Caráter tem que ser de ‘a-z’ os números ‘0-9’, e o caractere de sublinha.
3.
Ter menos de 30 caracteres.
As variáveis não se diferenciam entre uma letra maiúscula “A” e uma minúscula “a”.
Então o uso do nome “CUSTO” e ”custo” se refere à mesma variável.
O Nsbasic permite os seguintes tipos de variáveis “Dim”:
INTEGER, SHORT - valores numéricos que não contenham dígitos fracionários.
DATE - valores de ano, mês e dia.
TIME - valores de hora, minuto e segundo.
FLOAT, DOUBLE, SINGLE - valores numéricos com dígitos fracionários.
STRING, BYTE - valores de texto.
Exemplo:
Dim Payment as Float
Payment=2.00
If overdue then
Payment=payment + .50
End if
As variáveis globais devem ser declaradas no startup code do projeto.
CURSO DE NSBASIC
Hour
HourMin
HourMinAMPM
21
QUADRO 1 - CONSTRUÇÃO DE FUNÇÕES DE TEMPO
Retorna as horas extraídas da data sistema
Retona uma string do formato “HH:MM” extraído do relógio do sistema
Retona uma string do formato “HH:MM XX” onde XX é AM ou PM
Minute
Now
Second
TimeVal
Retona os minutos extraído da data do sistema
Retona a hora atual do relógio extraído do computador
Retona os segundos extraído do sistema
Retona um tempo de entrada da variável numéricas de hora, minuto, e segundo
ToTime
Retona um tempo vindo da saída da string que está no formato “HH:MM:SS”
2.2 CONSTANTES
São permitidos os seguintes tipos de constantes:
Constantes Integers (inteira)
1
25
-1050
Constantes de Floating point (ponto flutuante)
1.0
32.5932
3.96
Constantes String (texto)
“this is an example”
“San Francisco”
Constantes Hexadecimal
&h05
&he3
Na maioria das instâncias, uma constante de hexadecimal é tratada como uma String.
2.3 ARRAYS
São variáveis que podem ter valores múltiplos. Um valor especifico após a ARRAYS
seguido entre parênteses. Por exemplo:
DIM MonthlyCost(12) AS FLOAT
CURSO DE NSBASIC
22
Define uma variável com 12 possíveis valores. MonthlyCost(1) se refere ao 1º valor,
MonthlyCost(2) ao 2º, e MonthlyCost(12) ao 12º valor.
Arrays começa com número subscript 1 para o primeiro valor. E nunca com 0 ou
valores negativo. NSBasic/Palm permite 3 níveis de subscripting para uma array:
DIM WarehouseCost(5, 12, 10) AS FLOAT
2.4 DEFININDO ESTRUTURAS DE VARIÁVEIS
As estruturas de uma variável são escritas entre TYPE e END TYPE. Por exemplo:
Type PersonInfo
Name as string
Address1 as string
Address2 as string
City as string
State as string
PhoneNo as Double
DateOfBirth as date
End Type
Você pode definir uma variável personalizada do tipo PersonInfo
Exemplo
Dim Mother as PersonInfo
Dim Father as PersonInfo
Father.PhoneNo=3198287766
Father.City=Galesburg
Msgbox "Mother's birthday is " + Mother.DateOfBirth
CURSO DE NSBASIC
23
2.5 DECLARAÇÕES
Uma declaração é uma unidade de código que define um comando executável.
Exemplos são:
• declaração de tarefa de aritmética
• um comando para tocar um som
• um comando para exibir outra tela (form)
Os comandos em NSBasic não diferenciam ente maiúsculas e minúsculas, veja o
exemplo:
MsgBox “This is an error message”
É quivalente
msgbox “This is an error message”
Note que o texto dentro de “” como “This...” é importante que a primeira letra esteja
em caixa alta, pois irá ser exibido ao usuário.
2.6 SUBROTINAS
Subrotinas são grupos de declarações que podem ser chamada por uma declaração ou
um evento que ativam a subrotina. Os nomes da subrotina seguem as mesmas regras de
nomeamento de variável, Subrotina são definidas pro uma declaração inicial de SUB e são
terminadas por uma declaração SUB END.
Subrotinas podem ser definidas com parâmetros onde são passados valores a
subrotina quando for chamado pela declaração.
CALL Sub1(2.0 , 12 , Amt)
…
SUB Sub1(Rate as float, Months as Integer, Pymt as float)
Pymt=Rate * Months
END SUB
CURSO DE NSBASIC
24
Este código calcula um novo valor por Amt e armazena o resultado no módulo
chamado.
2.7 FUNÇÕES
Funções referem-se a conjunto de rotinas, blocos de declarações auto-suficientes que
podem ser chamados de locais diferentes em um programa. Uma função é uma rotina que
devolve um valor quando executa.
2.7.1 Construindo Funções
NSBasic/Palm, tem muitas funções úteis que são providas com o software e podem
ser usadas pelo Programador.
X=Sqrt(y)
Sqrt é uma função que calcula e retorna a raiz quadrada de um número.
2.8 COMENTÁRIOS NO NSBASIC
Os comentários no NSBasic são colocados depois do caractere “ ' ” e não fará parte do
código são ignorado pelo script.
Comentário' Aqui se coloca um comentário
call mySubroutine(param1) ' Esta função se refere-se a...
2.9 DO / LOOP
Repete execução entre DO e LOOP e EXIT DO e em expressões DO WHILE e DO
UNTIL.
Exemplo
i=0
Do
i=i +1
CURSO DE NSBASIC
if i=5 then
Exit Do
End if
..............
.............
Loop
'An equivalent form is
i=0
Do Until i=5
i=i+1
...........
...........
Loop
'An equivalent form is
i=0
Do While i < 5
i=i+1
............
.............
Loop
2.10 EXIT FOR
Sai de um FOR...NEXT laço e continua a execução declarada depois do laço
Exemplo
For i=1 to 20
If mileage(i) > 5000 then
Exit For
End if
....................
....................
Next
2.11 FUNÇÃO EXIT
Encerrar uma função e retomar execução no programa de chamada
Exemplo
Function a(count as integer)
If count > 100 then
A=0
25
CURSO DE NSBASIC
26
Exit Function
End if
A=Count * 1.5
End Function
2.12 GETEVENTTYPE
GETEVENTTYPE()
Descrição
Retorna o último tipo de evento ativado. Os valores retornados estão expressos no
Quadro 2.
NsbKeyOrButton
NsbPenDown
NsbPenUp
QUADRO 2 – PEGANDO EVENTOS
Tecla ou botão pressionado
Evento de Caneta pressionado (estilo apertou na superfície de tela)
Evento de caneta erguida (estilo ergueu da superfície de tela)
Exemplo
Ans=GetEventType()
2.13 DECLARAÇÃO DELAY
DELAYsec
Descrição
Da uma pausa no programa durante alguns segundo.
Exemplo
Delay 1 ‘Pausa de 1 secundo
Delay 2.5 'pausa de 2 segundos e meio
CURSO DE NSBASIC
27
3 PROPRIEDADES E METODOS DOS OBJETOS
3.1 PROPRIEDADES
As propriedades de objeto são os detalhes sobre um objeto, por exemplo, uma caixa
de texto “field” pode ser modificado o nome, o text, cor e tamanho. Você pode altera as
propriedades de duas forma a primeira e no Properties (FIG. 19).
FIGURA 19 – PROPRIEDADES
Outra forma é via code, vamos agora altera a propriedade text de um field:
Sub object1004()
field1006.text = "texto"
End Sub
Valores de propriedade podem ser referidos para obter o valor atual OU podem ser
nomeados novos valores de propriedade.
CURSO DE NSBASIC
28
3.2 MÉTODO
Métodos são ações que podem ser levadas a um objeto. Por exemplo, um objeto list
pode ter todos seus elementos removidos pelo método clear. Um objeto de popup pode ter um
novo item adicionado em sua lista pelo método add.
Exemplo
ListBookTitles.Clear
ListBookTitles.Add "Huck Finn",3
FldPublisherName.setFocus
PopupCollegeCourseNames.Remove 4
3.2.1 Método de Objetos
Os métodos servem para mudar o aparecimento ou colocações de um objeto, veja
uma lista de métodos de alguns objetos no Quadro 3.
QUADRO 3 – MÉTODOS DE OBJETOS
Add Itemtext,
indexNo[,NODISPLAY]
Clear
Current CurValue
Hide
Itemtext IndexNo
Max int
MaxChars int
Min int
NoItems
PageSize int
Adiciona, Lista um indexNo e ItemText
Redraw
Remove indexNo
Selected indexNo
SetFocus
Show
Status
Text
Redesenha o objeto
Remove indexNo de uma lista
Pega ou fixa a seleção
Da o foco para o objeto
Mostra o objeto
Usado para Checkbox e Pushbutton
Pega ou seleciona o texto ou label
Limpa uma lista
Pega ou seleciona o valor corrente de um scrollbar
Esconde um objeto
Pega ou seleciona um corrente item em uma lista
Pega ou seleciona o valor Maximo do scrollbar
Pega o seleciona o maximo de caracteres
Pega ou seleciona o valor mínimo de um scrollbar
Pega o número de itens em uma lista
Pega ou seleciona o valor do tamanho da pagina de um scrollbar
As propriedades e métodos são definidos para cada objeto em seção de referências
onde cada objeto é tratado.
CURSO DE NSBASIC
29
3.3 CONSTANTES PRÉ-DEFINIDAS NO NSBASIC
As constantes seguintes são predefinidas e podem ser usadas dentro do programas
NSBasic/Palm, (QUAD. 4).
QUADRO 4 – CONSTANTES PREDEFINIDAS
NsbOn
Determina o estado do objeto PushButton
NsbOff
NsbChecked
Determina o status do objeto checkbox quando usado
NsbUnchecked
NsbNormal NsbInverted Constantes de comando gráfico de caneta
NsbGrey
NsbKeyOrButton
Devolve o estado do getEvent
NsbPenDown
NsbPenUp
NsbWait
Parâmetro de comando de Som
NsbNoWait
NsbYes
Parâmetro de yes/no
NsbNo
True
Valores booleanos
False
Enquanto estas constantes são requeridas para alguns comandos de funções, você
também pode usar, por exemplo o NSBasic/Palm tem tipos de dados booleanos com yes/no ou
propriedades on/off. Porém, você pode implementar sua própria forma de operações booleana
com no exemplo abaixo:
Dim mySwitch as integer
mySwitch=True
if mySwitch=True then
...
End if
CURSO DE NSBASIC
30
4 AVALIAÇÃO DE COMANDOS
4.1 COMANDOS ARITMÉTICOS
QUADRO 5 – COMANDO LET
Let
Calcula o valor de uma expressão e grava o resultado o em uma
variável
4.2 CONTROLE E COMANDOS LÓGICOS
QUADRO 6 – CONTROLES E COMANDOS LÓGICOS
If Then
Else
ElseIf
End if
Do
Loop
Exit Do
For
Next
Exit For
GoTo
tests an expression and executes statements depending on
Testa uma expressão e executa sentenças dependendo do
resultado do teste
Repete um serie de sentenças testando algumas vezes ate termina
a execução
Executa repetições de uma seria de declarações e incrementos em
uma variável de controle em cada execução
Gosub
Return
NextScreen
Select Case Case
End Select
Stop
Transfere o controle de uma seção declarada identificada por um
label (rotulo)
Transfere o controle de uma seção de code (código) e returns
(resultados)
Muda a tela exibida para uma outra tela
Testa um valor de uma variável e excuta a sentença selecionada
dependendo do valor
Para o programa executado
4.3 DEFINIÇÃO DE MÓDULO E COMANDOS DE CONTROLES
QUADRO 7 - DEFINIÇÃO DE MÓDULO E COMANDOS DE CONTROLES
Sub
Function
End Sub
End Function
Call
Exit Sub
Exit Function
Define o começo de uma sub-rotina
Define o começo de uma função
Define o fim de uma sub-rotina
Define o fim de uma função
Transfere o controle para outra sub-rotina
Sai de uma sub-rotina
Sai de uma função
CURSO DE NSBASIC
31
4.4 COMANDOS GRÁFICOS DE TELA
QUADRO 8 - COMANDOS GRÁFICOS DE TELA
CreateWindow
Cria uma nova janela a qual o gráfico pode ser exibido
DestroyWindow
Destrói previamente uma janela criada
DrawBitmap
Desenha um bitmap em um gráfico exibido
DrawChars
Desenha texto em um gráfico exibido
DrawLine
Desenha linha em um gráfico exibido
DrawRectangle
Desenha retângula em um gráfico exibida
EraseWindow
Apaga o uma janela exibida
FillRectangle
Desenha um retângulo com preenchimento sólido
SetCurrentWindow
Exibi uma janela de gráfico atual a qual o comando de
gráfico seguinte se aplique
4.5 COMANDOS MISTURADOS
MenuDraw
MenuErase
MenuReset
Msgbox
SetEventHandled
QUADRO 9 - COMANDOS MISTURADOS
Dar um beep no Palm
Termina o programa atual e inicia um novo dispositivo de programa no
Palm OS
Move o cursor de tela para uma determinada coordenada de tela
Move o cursor de tela para o objeto indicado de exibido na tela
Define uma função antes de sua ocorrência de forma que outro código possa
referência corretamente a função.
Delays execução uma pausa especificada de tempo deixa o programa em
um estado de espera até o tempo expira
Define variável de dados, ordens, ou bancos de dados que são usado em
uma função ou seqüência de dados.
Exibi os valores de um ou mais variáveis localizada na tela atual
Define variável de dados que são usado globalmente ao longo de todas as
seqüência de dados e funções
Desenha um menu especificado no topo da tela exibida
Apaga o menu atual da tela exibida
Cancela qualquer sub-menu de dropdown que foi selecionado previamente.
Apresenta uma caixa de mensagem na tela exibida
Especifica par o sistema operacional para ignorar um evento especial
Sound
Toca um som de uma pelo de dispositivo de som.
Beep
Chain
Cursor
Cursor Id
Define
Delay
Dim
Display
Global
CURSO DE NSBASIC
32
4.6 CONSTRUÍNDO FUNÇÕES DE OBJETO DE TELA
QUADRO 10 - FUNÇÕES DE OBJETO DE TELA
ControlGetStatus
ControlGetText
FieldGetText
ListGetNoItems
ListGetSelectedItemNo
ListGetItemText
PopupGetNoItems
PopupGetSelectedItemNo
PopupGetSelected
PopupGetItemText
PopupGetText
ScrollbarGetCurrent
Retorna o estado de alguns tipos de objetos de tela
Retorna a etiqueta de texto de um objeto de tela
Retorna o valor de uma string que foi digitada em um
campo de um objeto
Retorna o número de itens em um objeto de lista
Retorna o número de item em um objeto de lista que foi
selecionado
Retorna o texto de uma especifico item de lista
Retorna o número de itens em um objeto de popup
Retorna o número de item em um objeto de popup que
foi selecionado
É o mesmo que PopupGetSelectedItemNo
Retorna o texto de um especifico item de popup
Retorna o texto do item atualmente selecionado.
Retorna o valor atual de um objeto de scrollbar
CURSO DE NSBASIC
33
5 AVALIANDO FUNÇÕES
5.1 TRABALHANDO COM CORES
Para trabalhar com funções que utilizem cores em NSBasic/Palm se usa uma
biblioteca
compartilhada
chamada
ScreenLib
que
é
distribuída
com
NSBasic/Palm.
“ScreenLib” é uma biblioteca compartilhada distribuída gratuitamente. Agora vamos ver um
exemplo de como mudar a cor do form do Palm. No menu Projeto; Códigos iniciais digite:
Sub Project_Startup()
LoadLibrary "ScreenLib", "SL" 'chama a library
SL.SetTableEntryIndex(22,256) ' dar a cor
End Sub
O código acima chama a library e dar cor ao formulário que vai de 0 a 256, lembrese que tem que esta instalado no Palm “project.prc” e “NSBRuntime.prc” e a library
“ScreenLib.prc” (FIG. 20).
FIGURA 20 - TABELA DE CORES DO PALM
Se você deseja mudar de cor clique em um botão ou pressione o menu projeto, então
digite em code startup:
Sub Project_Startup()
LoadLibrary "ScreenLib", "SL" 'chama a library
End Sub
CURSO DE NSBASIC
34
E adicione um botão e digite o código abaixo
Sub Menu1017_click()
SL.SetTableEntryIndex(22,60)' da a cor
Redraw ' redesenha
End Sub
5.2 USANDO A BIBLIOTECA NSBSYSTEMLIB
O NSBasic/Palm pode chamar a maioria das funções da API do sistema Palm OS,
para isso as aplicações usam o “NSBSystemLib.pcr” veja como exibir a versão do Palm Os
em uma mensagem do tipo MSGBOX, num botão digite:
Sub object1004()
Dim version as Double
version = NSL.SystemVersion()
MsgBox "Palm OS " + str(version)
End Sub
5.3 A BIBLIOTECA MATHLIB
Certas funções trigonométricas e aritméticas implementada em NSBasic/Palm
necessitam de uma biblioteca compartilhada chamada MathLib que é distribuído com
NSBasic/Palm. MathLib é uma biblioteca compartilhada distribuída gratuitamente. Sua
distribuição é sob as condições do GNU General Public License, e esta disponível em
<http://www.probe.net/~rhuebnet/mathlib.html>. MathLib não é parte do NSBasic/Palm.
Você não pagará nada pelo seu uso; a copia é incluída no CD do NSBasic/Palm.
As funções aritméticas que usam o Mathlib estão marcadas com dois asteriscos (**).
Se você usar quaisquer destas funções, o Palm Os requer o Mathlib instado (MathLib.prc)
(QUAD. 11).
CURSO DE NSBASIC
Abs
Cbrt
Ceiling
Exp
Floor
Int
Log
Log10
Mod
Pow
Power10
Rem
Round
Sign
Sqrt
35
QUADRO 11 – FUNÇÕES ARITMÉTICAS
Retorna um valor absoluto de uma expressão aritmética
Retorna o cubo de um numero**
Retorna o próximo número inteiro e maior de uma determinada
expressão aritmética
Retorna um numero exponencial**
Retorna o próximo numero menor e inteiro de uma determinada
expressão aritmética
Retorna um valor inteiro de uma expressão aritmética
Retorna um numero natural **
Retorna um numero na base 10**
Retorna o resto de uma expressão aritmética dividida por outro
Retorna o resultado de um numero elevado a segunda potencia**
Retorna o resultado de um numero elevado a 10**
Retorna o resto da divisão de um numero por outro numero**
Arredonda os resultados de uma expressão de aritmética até o
próximo dígito fracionário
Retorna um indicador de sinal (Positivo ou Negativo) de uma
expressão aritmética
Retorna a raiz quadrada de uma expressão de aritmética * *
Este exemplo soma o conteúdo de dois componentes field mostrando o resultado em
uma caixa de mensagem, então em um novo projeto adicione dois componentes de campo
“field” e um botão. No botão escreva o código seguinte:
Sub object1004()
Dim result as Integer
result = Val(Field1.Text) + Val(Field2.Text)
MsgBox Str(result)
End Sub
OBS. O exemplo acima não necessita do arquivo MathLib.prc
E por fim a função EXP Retorna um float com o exponencial de um número elevado
a potencia.
Dim result as Float
Result=Exp(16.0)
MsgBox Str(Result)
End Sub
CURSO DE NSBASIC
36
5.3.1 Construindo Funções Trigonométricas
QUADRO 12 - FUNÇÕES TRIGONOMÉTRICAS
Acos
Asin
Atan
Atan2
Cos
Sin
Tan
Acosh
Asinh
Atanh
Cosh
Sinh
Tanh
DegToRadians
RadToDegrees
Retorna o co-seno de um ângulo**.
Retorna o seno de um ângulo**.
Retorna a tangente de um ângulo**.
Retorna a tangente de um ângulo com a divisão de dois números**.
Retorna o co-seno**.
Retorna o seno**.
Retorna uma tangente**.
Retorna o co-seno hiperbólico de um ângulo**.
Retorna o seno hiperbólico de um ângulo**.
Retorna a tangente hiperbólica de um ângulo**.
Retorna o co-seno hiperbólico**.
Retorna o seno hiperbólico**.
Retorna a tangente hiperbólica**.
Retorna o radiano de ângulo introduzo em graus
Retorna os graus de um ângulo introduzido em radiano
Neste exemplo iremos desenhar linhas (FIG. 21) utilizado cos e sin, inicie o
NSBasic, coloque um botão e escreva o código abaixo:
Sub object1004()
Dim Pi as Single
Dim i as Single
Dim X as Single
Dim Y as Single
Pi=3.14159265
For i=0 to 2*Pi Step Pi/20
X=50 * cos(i)
Y=50 * sin(i)
DrawLine 80,80,80+X,80+Y
Next
End Sub
Não esqueça que quando for instalar este exemplo no pose ou no palm físico terá que
instalar os arquivo:
Project1.prc
NSBRuntime.prc
MathLib.prc
CURSO DE NSBASIC
37
FIGURA 21 – DESENHANDO
LINHAS COM FUNÇÃO
TRIGONOMÉTRICA
5.3.2 Construindo Funções de Banco de Dados
Comando
DbClose
DbCreate
DbDelete
DbErase
DbFind
DbGet
DbGetNoRecs
DbInsert
DbOpen
DbPosition
DbPut
DbRead
DbReadNext
DbReadPrev
DbReset
DbUpdate
QUADRO 13 - FUNÇÕES DE BANCO DE DADOS
Descrição
Fecha um banco de dados aberto.
Cria um banco de dados no dispositivo de memória do
Palm OS
Apaga um registro de banco de dados através de chave
Remove um banco de dados do dispositivo de memória
do Palm OS
Procura um registro de banco de dados através de
chave
Lê o valor de uma variável do Registro de banco de
dados atual
Retorna o número de registros em um banco de dados
Inseri um novo registro em um banco de dados através
de chave
Abre um banco de dados e inicializa-lo por processar
Localiza um registro de banco de dados através de
número de registro relativo
Escreve o valor de uma variável ao Registro de banco
de dados atual
Lê um registro de banco de dados através de chave
Lê o próximo Registro de banco de dados
Lê o Registro anterior de banco de dados
Reajusta um banco de dados para o registro de começo.
Atualiza os conteúdos de um registro de banco de
dados através de chave
No Key
•
•
Key
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Para este exemplo iremos utilizar sete botões, três campos (field), cinco label e um
bitmap, no primeiro formulário troque o title para DBpalm, coloque os label e troque a
propriedade label para Chave, Titulo e Descrição insira os três campos e mude os nomes para
CURSO DE NSBASIC
38
key_field, title_field, body_field, agora coloque 6 botões e mude a propriedade label para
Abrir, Adicionar, Procurar, Limpar, sair e sobre... Que fique como a Figura 22.
FIGURA 22
PROGRAMA
–
TELA
DO
Adicione um novo form ao projeto, mude a o label para sobre..., Insira um botão, um
bitmap e dois label, mude a propriedade label do componente label para “Este programa foi
desenvolvido por” e “Curso de NSbasic free ”, agora vá ate o menu projeto e adicionar bitmap
procure um arquivo do tipo bmp, no diretório Nsbasc/bitmaps existem alguns. No
componente bitmap indique o ID do arquivo bmp como na Figura 23.
FIGURA 23 - INSERINDO ARQUIVOS DO TIPO BMP
CURSO DE NSBASIC
39
Agora vamos ao form 1003 para inserir os código de cada componente, então no
botão abrir, que vai procura o banco datafile se não encontra, irá criar-lo.
Sub object1010()
RES = dbopen(DBF,"datafile",0)
If RES = 0 Then
Exit Sub
End If
MsgBox str(RES) + ":ArquivoDB não Encontrado."
If RES = 519 Then
RES = dbcreate(DBF,"datafile",0,"skyF")
If RES = 0 Then
RES = dbopen(DBF,"datafile",0)
If RES = 0 Then
MsgBox "ArquivoDB criado e aberto."
End If
End If
MsgBox "Error:" + str(RES)
End If
MsgBox "Error:" + str(RES)
End Sub
No botão adicionar escreva o código abaixo para inseri um novo registro no banco de
dados.
Sub object1011()
KEY = val(key_field.text)
TITLE = title_field.text
BODY = body_field.text
If KEY = 0 Then
MsgBox " Não pode nomear 0 para key."
Exit Sub
End If
RES = dbinsert(DBF,KEY,TITLE,BODY)
If RES = 0 Then
MsgBox "Dados adicionado com sucesso."
Exit Sub
End If
MsgBox "Error:" + str(RES)
End Sub
Agora vamos escrever o código do botão procurar, que irá procurar um registro no
banco de dados.
CURSO DE NSBASIC
40
Sub object1012()
KEY = val(key_field.text)
RES = dbfind(DBF,KEY)
If RES = 0 Then
MsgBox "Registro achado."
RES = dbread(DBF,KEY,TITLE,BODY)
If RES <> 0 Then
MsgBox "Error:" + str(RES)
Exit Sub
End If
key_field.text = str(KEY)
title_field.text = TITLE
body_field.text = BODY
End If
End Sub
Insira o código abaixo no botão limpa:
Sub object1023()
key_field.text = " "
title_field.text = " "
body_field.text = " "
End Sub
No botão sair coloque.
Sub object1025()
Stop
End Sub
E por fim neste formulário insira no botão sobre o código abaixo.
Sub object1026()
NextForm "form1028"
End Sub
No formularia sobre no botão ok insira o código abaixo, este código tem a função de
chamar outro formulário.
Sub object1026()
NextForm "form1003"
End Sub
CURSO DE NSBASIC
41
Pressione F5 para rodar sua aplicação para ver o resultado (FIG. 24).
FIGURA 24 – BDPALM SENDO
EXECUTADO
5.3.3 Construindo Funções Seiral I/O
QUADRO 14- FUNÇÕES SEIRAL I/O
SerialOpen
Abre a porta serial e prepara para entra/saída
SerialClose
Fecha a porta serial para descontinuar seu uso
SerialReceive
Aceita a entrada da porta serial
SerialSend
Transmite dados de saída pela porta serial
SerialSet
Joga o valor de vários parâmetros da parta
serial para controlar opções de transmissão
SerialDial
Disca um número de telefone pelo mondem
SerialHangup
Desconecta uma conexão de linha telefônica
5.3.4 Construindo Outras Funções
Função LastOfMonth
LASTOFMONTH(theDate)
Descrição
Retorna a data do último dia do mês
CURSO DE NSBASIC
Exemplo
Dim theDate as Date
Dim result as Date
theDate=DateVal(1999,6,15)
result=LastOfMonth(theDate) ‘Calcula o resultado de uma data de 6/30/1999
Função LCase
LCASE(theString)
Descrição
Converte as primeiras letras.
Exemplo
Dim result as String
Result=Lcase(“John Doe”) ‘ Fixa o resultado para “john doe”
Função Left
LEFT(theString as String, num as Integer)
Descrição
Restringem o número de caracteres a ser indicado
Exemplo
Dim result as String
Result=Left (“John Doe”, 6) ‘Fixa o resultado para “John D”, seis caracteres
Função Len
LEN(theString as string)
Descrição
Retorna o tamanho de caracteres.
Example
Dim result as Integer
Result=Len (“John Doe”) ‘Retorna o número de caracteres8
Função Log
LOG(theNumber as Float)
Descrição
Transforma um número float para um natural.
Exemplo
Dim result as Float
Result=Log(16.0) ‘Retorna o log de 16
42
CURSO DE NSBASIC
43
Função Mid
MID(theString as String, start as Integer, num as Integer)
Descrição
Retorna alguns caracteres indicados pelo o usuário, indicando de onde começa e
quantos caracteres.
Exemplo
Dim result as String
Result=Mid (“John Doe”, 3, 4) ‘Retorna os caracteres “hn D”
Função Rand
RAND()
Descrição
Calcula um float aleatório entre de 0 e 1.0.
Example
Dim result as Float
Result=Rand() ‘Retorna algum numero entre 0 e 1.0
Função Rem
REM(a as double, b as double)
Descrição
Retorna um float com o remanescente de um número dividido por outro.
Exemplo
Dim a as double
Dim b as double
Dim x as double
X=rem(a, b) 'Se a era 2.457 e b era 2 então c Seria .457
CURSO DE NSBASIC
44
6 REFERÊNCIA DO NSBASIC/PALM
O capítulo de Referência contém uma introdução a algumas Declarações, Funções e
Objetos usadas em NSBasic/Palm.
Agora vamos utilizar uma forma mais sofisticada de exibir uma massagem em um
Palm a chamada “Alert Function” com esse tipo de massagem você pode escolher o tipo de
alerta ‘information’, ‘confirmation’, ‘warning’, ‘error’ o número de button e qual texto
aparecerá em cada botão (FIG. 25).
FIGURA 25
MENSAGEM
–
CAIXA
DE
Sub object1004()
Dim result as Integer
Result=Alert (“MSGBOX”, "QUAL É SUA PREFERÊNCIA ?",0,"SIM","NAO")
End Sub
A sentença acima declara uma variável “Dim” que é do tipo inteiro “as Integer” e
tem o nome de “result” exemplificaremos ao longo do nosso curso e o alerta tem como
Sintaxe:
ALERT (Titulo, Massagem, Tipo de massagem, Texto do botão,..., Texto do ‘N’ botão)
Agora vamos ver uma message personalizada, onde é exibido ao usuário texto +
valores, constante, variáveis.
CURSO DE NSBASIC
45
Type PersonType
Name as String
Occupation as String
Salary as Double
End Type
Sub object1018()
Dim person as PersonType
Person.name="John Doe"
Person.Occupation="Freelance artist"
Person.Salary=50000.00
MsgBox "The person's name is " + person.name
MsgBox "The person's occupation is " + person.occupation
MsgBox "The person's slary is " + str(person.salary)
End Sub
O exemplo que será mostrado a segui explana sobre a utilização de menus em um
palmTop, para começar vá até o menu do NSBasic Projeto; Adicionar Menu; insira um menu,
dê o nome de “menu1” (FIG. 26).
FIGURA 26 – CRIANDO MENUS
Escreva o caption do menu “arquivo” e adicione alguns menubar ao seu menu, click
no botão ok para terminar, pois neste exemplo iremos fazer apenas um item do menu. Agora
CURSO DE NSBASIC
46
vá até project explore, click com o botão direito do mouse e escreva o código abaixo no event
code.
Sub Form1003_Event()
Dim res as Integer
Dim c as String
res=getEventType()
If Not res=nsbKeyOrButton Then Exit Sub 'ignore penup/down events
c=getKey()
If c=&h5 Then
MenuDraw "Menu1"
SetEventHandled
EndIf
End Sub
Agora vamos trabalhar com data e hora em vários exemplos com a função TODAY
(). Que retorna a corrente data e hora extraída do sistema.
Sub object1004()
Dim s as String
Dim d as Date
d= today( )
s= str(d)
MsgBox "Hoje é " + s 'retorna a data e hora
End Sub
A função SUBTRACTDAYS retorna uma data da subtração dos números de dias.
Sub object1004()
Dim s as String
Dim theDate as Date
Dim newDate as Date
TheDate=ToDate("01/01/97")
newDate=SubtractDays(theDate, 15) 'Subtração de 15 dias
s= str(newDate)
MsgBox "A subtração é " + s
End Sub
CURSO DE NSBASIC
47
A função DATEMMDDYY que retorna uma data convertida do formato
MM/DD/YYYY.
Sub object1004()
Dim s as String
Dim theDate as Date
Dim result as String
TheDate=DateVal(1995,6,23)
Result=DateMMDDYY(theDate) ' Retorna"06/23/1995"
s= str(theDate)
MsgBox "Data formato: " + s
End Sub
Com o NSBasic você também pode trabalha com som, as declarações e funções que
vem a segui mostras como dá um beep e carregar um som, declaração Sound.
Sub object1009()
Sound 1200, 1000, 2, nsbWait
End Sub
Beep Toca um pequeno som de buzina.
Sub object1009()
Beep
Msgbox "Deu um beep."
End Sub
Para o próximo exemplo vai ser adicionado um resouce para isto vá ate o menu
Project; Add Resouce e procure um arquivo do tipo *.wav na pasta do bitmap do NSBasic tem
um exemplo “Supercalifragilistic.wav” após carrega-lo insira um botão e coloque o código a
segui:
Sub object1005()
PlaySound 1004,32767,1
End Sub
Onde o 1004 é o ID do resouce.
CURSO DE NSBASIC
48
Os exemplos que vêm a seguir, mostra como desenhar com linha e retângulas no
palm:
Linha
Sub object1006()
DrawLine 10,10, 20,40
DrawLine 20, 40, 20, 60, nsbGray
End Sub
Retângulo
Sub object1007()
DrawRectangle 10,10,30,40,0
DrawRectangle 40,50, 10,15,3,nsbInverted
End Sub
Retângulo
Sub object1009()
FillRectangle 10, 15, 30, 40, 5, nsbGray
End Sub
Caracteres
Sub object1010()
DrawChars "Hello, World!",80,80
End Sub
CURSO DE NSBASIC
49
7 O PALM FÍSICO
7.1 UTILIZANDO O QUICK INSTALL
Vamos agora vê como instalar um aplicativo feito no NSBasico utilizando um
programa que acompanha o seu Palm, o Quick Install. É possível também instalar outros tipos
de arquivos, como arquivos de áudio, vídeo e fotografia. Arquivos e aplicativos são fáceis de
instalar através da adição de arquivos ao Palm Quick Install e, em seguida, da execução de
uma operação de HotSync. Os aplicativos ou jogos que você instala no computador de mão
residem na RAM e podem ser excluídos a qualquer momento.
Quando adicionamos arquivos ao Quick Install, ele determina se os arquivos devem
ser instalados no computador de mão Palm ou em um cartão de expansão e, em seguida,
colocá-os na lista de arquivos onde são enfileirados para serem instalados durante a próxima
operação de HotSync.
Quick Install exibe uma lista de arquivos programados para serem instalados no
computador de mão e no cartão de expansão durante a próxima operação de HotSync. Na
Figura 27 é exibido o status do computador de mão no que se refere ao cartão de expansão
para instalação de arquivos a sua direita, Seletora de usuários que exibe o nome atual do
usuário HotSync e permite mudar entre usuários.
Se você sair do Quick install e houver arquivos listados para instalação, uma caixa de
diálogo informará que os arquivos não serão instalados até que você execute uma operação de
HotSync.
Outra maneira de instalar os programa em seu palm físico é clicando com o botão
direito do mouse sobre o arquivo e enviar para o Quick install, assim na próxima operação do
HotSync os arquivos estarão prontos para serem sincronizados (FIG. 28).
CURSO DE NSBASIC
FIGURA 27 - TELA INICIAL DO QUICK INSTALL
FIGURA 28 - ENVIANDO ARQUIVOS PARA O QUICK
INATALL
50
CURSO DE NSBASIC
51
7.2 O QUE É UMA OPERAÇÃO DE HOTSYNC
Uma operação de HotSync é uma sincronização bidirecional de registros entre o
computador de mão e o PC. As alterações feitas no Palm ou no PC são atualizadas nas duas
plataformas após uma operação de HotSync. A operação de HotSync faz o backup de todos os
dados e sincroniza somente as partes alteradas dos dados, reduzindo o tempo necessário para
concluir a operação. Com essa operação também podem ser instalados aplicativos e dados do
computador de mesa no Palm ou em um cartão de expansão.
Para que uma operação de HotSync seja executada, o Gerenciador de HotSync deve
estar em execução, ou seja ele deverá aparecer na barra de tarefas de seu PC. O Gerenciador
de HotSync é um aplicativo independente que supervisiona a operação de HotSync.
7.2.1 Como Sincronizar
Para executar uma operação de HotSync do tipo base/cabo local,
conecte o
computador de mão à base/cabo, Inicie o Gerenciador de HotSync se ele ainda não estiver em
execução vá ate o menu Gerenciador de HotSync, selecione USB local e/ou Serial local,
Pressione o botão de HotSync na base/cabo (FIG. 29).
FIGURA 29 – TELA DE
SINCRONISMO
DO
PALM
Aguarde uma mensagem no computador de mão indicando que o processo foi
concluído (FIG. 30).
CURSO DE NSBASIC
52
FIGURA 30 – SINCRONIZANDO
Quando o processo de HotSync terminar, o computador de mão poderá ser removido
da base/cabo.
CURSO DE NSBASIC
53
8 GLOSSÁRIO
Área de graffiti = Parte inferior da tela Palm, utilizada para escrever.
Basic = (Código de Instrução Simbólica de Propósito Geral para Iniciantes) Linguagem de
programação criada pela Microsoft.
Beam = É o ato de transferir arquivos de um Palm para outro via infravermelho (IR). Daí
surgiram outros termos como "beamar".
Bluetooth = Uma tecnologia de comunicação por rádio, sem fio, entre equipamentos digitais
a curta distância (até 30 metros).
CDMA (code -division multiple access) = Um dos três sistemas de telefonia celular digital
mais usados. Funciona de maneira completamente diferente do GSM e TDMA. Os dados são
digitalizados e recebem um código identificador. Depois são colocados em um canal junto
com os dados de outras chamadas, possibilitando que várias chamadas compartilhem um
mesmo canal.
Compact Flash (CF) = Tecnologia de expansão de hardware (basicamente memória) usada
nos Palms da TRG. Os cartões Compact Flash são o mais forte padrão da indústria em cartões
de memória. São muito usados em outros dispositivos: câmeras digitais, players MP3 e
handhelds do tipo PocketPC e Psion. Veja Springboard, Secure Digital e Memory Stick.
Conduit = São como extensões (plug-ins) do HotSync Manager. Eles servem para enviar e
receber dados do Palm para diferentes aplicativos. Geralmente cada aplicativo tem o seu
próprio conduit.
Cradle (berço) = É a base em que o Palm é colocado para realizar o HotSync e/ou carregar a
bateria (quando o modelo possuir bateria recarregável). Fica ligado ao computador desktop
por um cabo serial ou USB.
Epoc = Sistema operacional para handhelds e smartphones desenvolvido pela Symbian, uma
joint-venture da Ericson, Nokia, Sony e Psion. Concorrente do Palm e totalmente
incompativel com ele.
FlashRom = Memória onde reside o sistema operacional que pode ser regravada/apagada
usando softwares especiais, permite o upgrade (atualização) do Sistema Operacional. Topo
GPS, módulo GPS = Um dispositivo portátil que permite determinar o local onde se está em
coordenadas geográficas. Ele funciona através de comunicação com satélites e já existem
alguns para Palm.
Graffiti = É a tecnologia de reconhecimento de escrita utilizado pelo Palm.
GSM (Global System for Mobile communication)= Sistema digital de telefonia celular
derivado do TDMA. É o sistema mais usado no mundo, principalmente por ser muito
difundido na Europa e opera na frequência de 900 ou 1800 MHz.
CURSO DE NSBASIC
54
Hack = Pequeno programa que interage com o sistema operacional do Palm mudando ou
acrescentando alguma funcionalidade. Precisa de um gerenciador de hacks para ser executado.
O mais conhecido é o Hackmaster.
Handheld = Computador de mão. O mesmo que PDA. Veja também PalmPC e Palmtop.
Handspring = Empresa fundada por Jeff Hawkins e Donna Dubinsky, criadores da Palm
Computing. Fabrica o Visor, Platinum e Prism, compatíveis com Palm.
Hard Reset =Se um reset simples não resolver, você pode precisar de um hard reset. Mas
atenção: o hard reset deixa o Palm como ele veio de fábrica, apenas com os programas padrão
e sem nenhum registro, por isso só execute um hard reset se souber realmente o que esta
fazendo. Pressione o reset (furo atrás do Palm) com o botão liga/desliga apertado. Quando o
logotipo da Palm Computing aparecer, solte o botão liga/desliga e uma mensagem de
confirmação aparecerá na tela do seu Palm. Apertando o botão de rolagem para cima você
confirma, qualquer outra tecla você cancela.
HotSync = É o processo de sincronismo com o Palm. Ele é utilizado para várias coisas além
de manter os dados sincronizados com o computador desktop, como instalar aplicativos e
executar backup dos arquivos armazenados em seu Palm.
HotSync Manager = É o programa responsável pelo sincronismo do Palm com seu
computador desktop. Ele gerencia os conduits e geralmente é executado quando seu
computador é ligado e fica na barra de tarefas, próximo ao relógio.
Infra-Vermelho (IR) = No topo do Palm ( III em diante ) há um emissor/receptor de luz
infra-vermelha. Através dele é possível enviar/receber dados para/de outros Palms e fazer
HotSync.
Launcher = O gerenciador de aplicações, que é acionado tocando no botão "Applications" à
esquerda superior da área de grafitti. Existem outros programas que podem ser colocados no
Palm substituindo o Launcher normal.
Memória Flash = É um tipo de memória que não precisa de bateria para manter suas
informações, mas pode ser alterada quando necessário. É onde fica armazenado o sistema
operacional do Palm. Alguns modelos não possuem esse tipo de memória e por isso não
permitem a atualização do sistema operacional, é o caso do Palm IIIe e do Visor da
Handspring.
Memory Stick (MS) = Tecnologia de expansão de hardware (basicamente memória) da
Sony, usada nos Palms do tipo Clié. Compact Flash, Secure Digital e Springboard.
PalmOS = O sistema operacional do Palm. Veja também sistema operacional.
PalmPC = Nome que a Microsoft usa para designar os handhelds sem teclado. Eles foram
proibidos pela Palm de usar a expressão "Palm", somente.
Palmtop = Nome comercial que a Hewlett-Packard deu ao seu primeiro handheld. Com o
tempo, o termo passou a ser usado para designar os produtos concorrentes, também.
CURSO DE NSBASIC
55
PDA (Personal Digital Assistant ) = Expressão cunhada por John Sculey, da Apple, para
descrever o Newton, primeiro handheld sem teclado a ser vendido em escala. Com o tempo o
termo passou a designar todos os aparelhos similares, como o Palm.
PDB = São os arquivos de dados do Palm. São manipulados pelos aplicativos Palm (arquivos
PRC).
Pocket PC = É o Windows CE adaptado para handhelds sem teclado. É concorrente do Palm
e totalmente incompatível com ele.
POSE - Palm OS Emulator = Emulador do Palm, serve para você ter um Palm no seu
computador desktop. Você pode utilizá-lo para testar programas antes de instalar no seu Palm.
PQA (Palm Query Application) = São aplicativos para PalmOS que utilizam o conceito de
webclipping, introduzido inicialmente com o Palm VII, para minimizar o tráfego de
informações nas consultas à Internet.
PRC = Programa para Palm (no PC os arquivos de programas para o Palm tem a extensão.
PRC).
Reset = Pressionar com algum objeto pontiagudo o furo atrás do Palm. As canetas dos
modelos Palm III e acima possuem a parte superior com rosca para que se possa utilizar para
resetar o Palm.
Secure Digital (SD) = Tecnologia de expansão de hardware que a Palm afirma pretender
adotar em 2001. Veja Compact Flash, Springboard e Memory Stick.
Shortcut = Um caractere especial do Grafitti, semelhante a um 'l' ou 'e' cursivos minúsculos.
Associado a outro caractere ele se expande em uma sequência predefinida ou um comando.
Por exemplo, a sequência "shorcut t s" escreve o horário. Você pode definir estas sequências
acessando o programa "Prefs" e depois "Shorcuts" na lista superior direita.
Sistema Operacional = É o programa que faz as operações mais básicas e fundamentais de
um computador. No Palm é responsável por: colocar figuras e textos na tela, interceptar os
toques e movimentos do stylus, traduzir movimentos para letras, interceptar teclas, gerenciar o
uso da memória, etc.
Smartphones = Telefones celulares com os mesmos recursos de um handheld ( agendas,
calculadora, carga de programas, etc).
SMS (Short Message Service) = Uma espécie de serviço de pager para celulares, com
mensagens de até 160 caracteres. A diferença é que se o celular estiver desligado ou fora da
área de serviço a mensagem é guardada até que seja possível enviá-la.
Springboard = Tecnologia de expansão de hardware da Handspring. Veja também Compact
Flash, Secure Digital e Memory Stick.
Stylus = É a caneta que acompanha o Palm, utilizada para escrever em sua tela.
CURSO DE NSBASIC
56
Symbol = O maior fabricante de leitores de códigos de barra do mundo. Também fabrica
vários handhelds, inclusive um compatível com Palm que tem um leitor de código de barra
embutido.
Tap = Clique, o tap nada mais é do que o ato de clicar com a stylus (caneta) na tela do Palm.
TDMA (Time Division Multiple Access) = Um dos três sistemas de telefonia celular mais
usados no mundo. No TDMA o uso do canal (ou linha) é dividido em três intervalos de
tempo, cada um compartilhando uma ligação.
TRG = Fabricante de circuitos e memórias. Também fabrica um handheld compatível com
Palm que aceita cartões de memória do tipo Compact Flash.
Visor = Handheld da Handspring compatível com o Palm.
WAP = Um subprotocolo da internet específico para dispositivos wireless ( smartphones,
handhelds etc ). Às vezes é erroneamente confundido com WML, a linguagem usada para
fazer as páginas (o equivalente WAP do HTML).
way Pager =Pagers que permitem enviar e receber e-mails. Por exemplo: Blueberry, da RIM.
Web Clipping = É a tecnologia utilizada pela Palm inicialmente nos Palm VII que consiste
em trazer para o Palm (via Internet) apenas as informações realmente solicitadas pelo usuário
minimizando ao máximo o tráfego de dados pela rede wireless.
Windows CE = Sistema operacional da Microsoft para equipar vários tipos de dispositivos
pequenos. Veja PocketPC.
Wireless = Comunicação entre aparelhos que usa ondas eletromagnéticas propagadas pelo ar,
ao invés de corrente elétrica via cabos.
3G = É o nome genérico dado aos dispositivos de comunicação móvel que se espera que
estejam começando a operar entre 2003 e 2005. Espera-se que os dispositivos 3G sejam
capazes de ter grande capacidade de comunicação (2Mbps), roaming global, transmissão de
multimidia, etc.
CURSO DE NSBASIC
57
CONCLUSÃO
O NSBasic não é só isto, mas espero ter propiciado o mínimo para se iniciar na
programação para palm com o NSBasic. Pois este livro foi fruto de muita leitura de livros e
artigos, alguns em outros idiomas e também de muitas madrugadas de garimpagem na
internet. Com este livro tivemos a oportunidade de conhecer o sistema do palmtop e conhecer
a linguagem BASIC e desenvolver alguns programas. Espero ter usado um vocabulário fácil e
de boa compreensão. E o que fica é que o NSBasic é sem sombra de dúvida o software mais
simples para se programar em sistema operacional “PalmOS”, porém muito poderoso
possibilitando desenvolver aplicativos simples ou complexos, com um custo relativamente
baixo, accessível a qualquer pessoa que deseja programa para palm. Agora é com você!
CURSO DE NSBASIC
BIBLIOGRAFIA
ALEXANDRONI, Marcio. NSBasic Tour. Disponível em: <www.clubpalm.com.br>
Acessado em: 25/ 04/ 2001
ALVES, William Pereira. Palm OS e Windows CE - Desenvolvimento de Aplicações.
Érica. 2002
AMORIN, Roberto; REBELO, Rui; MACHADO, Carlos. Dicionário do palm. Disponível
em: <http://www.palmbr.com.br/> Acessado em: 20/03/2004
CONCEIÇÃO, Arlindo Flávio da. Desenvolvimento de Aplicações para Palm OS.
Disponível em: <www http://www.ime.usp.br/~arlindo/articles/palm-os-develpment.doc>
Acessado em: 12/06/2002
Hacker Dude -san. Disponível em: <www http://salon.simple-palm.Com/nsb/nsb> Acessado
em: 03/03/2004
HandEra. Disponível em: <www http://www.handspring.com/developers> Acessado em:
03/03/2004
Nsbasic groups. Disponível em: <www:http://groups.yahoo.com/group/nsbasic-palmAPI.>
Acessado em: 05/05/2004
NSBasic/Palm. Online Help. Disponível em: <www.nsbasic.com> Acessado em: 14/07/2003
OLIVEIRA, Welligton Pinto de. Desenvolvendo Aplicações Palm com NSBasic. Disponível
em: <www.softpalm.com.br>. Acessado em: 10/02/2004
PalmBrasil. PalmBrasil. Disponível em: <www.palmbrasil.com.br> Acessado em:
30/03/2003
Palm Brasil. Palm Brasil. Disponível em: <www.palm.com/br> Acessado em: 30/03/2003
Palm OS. Disponível em: <www http://www.palmsource.com/>. Acessado em: 20/06/ 2003.
Wirelessdevnet. Disponível em:
<http://www.wirelessdevnet.com/channels/pda/training/palm_nsbasic5.html> Acessado em:
20/02/2004
58