Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
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