Desenvolvimento - Mobile
Palm: Conhecendo a IDE do Handheld Basic
Um bom programador além de ser um profundo conhecedor da linguagem em que trabalha ele deve também conhecer cada detalhe da ferramenta adotada, para isso este artigo trata da IDE do HB++.
por Wellington Pinto de OliveiraVamos primeiro conhecer algumas partes básicas do IDE.
Menu
No menu encontramos todas as opções e funcionalidades da ferramenta. A barra de menu horizontal está dividida em vários assuntos, e na barra vertical encontramos as funcionalidades do determinado assunto.
Figura - Barra de Menu
Decidi comentar todos os menus na tabela abaixo:
Menu | Comando | Efeito |
FILE | New... | Cria um novo projeto. |
Open... | Abre um projeto existente. | |
Close Project | Fecha o projeto em edição. | |
Save All | Salva todos os elementos (arquivos) que constituem o projeto. | |
Save XXXXXX.XXX | Salva o arquivo em edição. | |
Page Setup | Modifica as margens do documento. | |
Envia o formulário em edição para a fila de impressão. | ||
Recent Files | Lista de 4 últimos projetos. | |
Quit | Fecha o Handheld Basic. | |
Edit | Undo | Cancela a ultima ação. |
Copy | Copia um texto ou objeto selecionado. | |
Cut | Recorta um texto ou objeto selecionado. | |
Paste | Cola o texto ou objeto existente no clipboard | |
Delete | Exclui um texto selecionado ou objeto. | |
Select All | Seleciona todo o código em um formulário. | |
Find | Procura uma nova ocorrência. | |
Indent | Indenta várias linhas selecionadas. | |
OutDent | Remove a indentação de umaou mais linhas selecionadas. | |
Block Comment | Adiciona comentário a linha selecionada ou linhas selecionadas. | |
Block Uncomment | Retira o comentário da linha selecionada. | |
Go to Line | Move o cursor para uma linha informada. | |
Go to Deffinition | Move o cursor para uma definição do métodos ou variáveis. | |
View | View | Abre o elemento selecionado no Project Explorer ou Windows |
Project Explore | Ativa a exibição da janela de Project Explore no IDE do Handheld Basic. | |
Property Window | Ativa a exibição do painel de propriedades. | |
ToolBox | Ativa a Janela de opções Toolbox. | |
Output Window | Ativa a visualização da janela de Debug do IDE do Handheld Basic. | |
Next Error | Move o cursor para o erro acusado durante a compilação. | |
Class Hierarchy Chart | Exibe a hierarquia avaliada para as classes e declarações de métodos, propriedades e eventos. | |
Project | Add Form | Adiciona um novo formulário ao projeto. |
Add Class | Adiciona uma nova classe ao projeto. | |
Add Module | Adiciona uma nova Module ao projeto. | |
Add User Control | Adiciona um novo User Control ao projeto. | |
Add Image... | Adiciona uma imagem ao projeto. | |
Add Table | Adiciona uma tabela ao projeto. | |
Add Files | Adiciona ao projeto um arquivo selecionado. | |
Remove | Remove do projeto o arquivo selecionado. | |
Build | Compila o projeto e gera o arquivo .PRC | |
Stop Build | Interrompe a compilação do projeto. | |
Configurations | Adiciona ou exclui uma configuração. | |
Settings | Abre as configurações do projeto | |
Verbose Mode | Ativa ou desativa as informações adiconais de compilação. | |
Layout | Align | Alinha os controles selecionados. |
Make Same Size | Iguala as dimenções de dois ou mais objetos selecionados | |
Center in Form | Centraliza no formulário os objetos selecionados. | |
Bring to Top | Sobrepõe o objeto selecionado sobre os demais objetos. | |
Zoom 100% | Modifica a escala do layout do formulário para 100% | |
Zoom 200% | Modifica a escala do layout do formulário para 200% | |
Zoom 300% | Modifica a escala do layout do formulário para 300% | |
Zoom 400% | Modifica a escala do layout do formulário para 400% | |
Table | Insert Field | Insere um field a uma tabela selecionada |
Delete Field | Exclui de uma tabela um field selecionado. | |
Insert Row | Insere um record a uma tabela selecionada. | |
Delete Row | Exclui de uma tabela um record selecionado. | |
Sort... | Classifica os registros de uma tabela. | |
Assign Unique ID"s | Classifica de várias formas os registros de ID"s. | |
Edit Categories | Cria e edita as categorias. | |
Gerate Table Digest | Cira uma string de descrição da estrutura da tabela para uso do HbDAO. | |
Debug | Execute | Inicia a execução do aplicativo. |
Break | Paralisa a execução do projeto. | |
Terminate | Finaliza a execução do projeto. | |
Step Into | Executa a próxima linha do código e caso encessario entra na função Body. | |
Step Over | Executa a proxima linha do código, porém não entra na função Body. | |
Step Out | Executa a próxima linha do código dentro da função corrente. | |
Run to Cursor | Executa o debug até a linha selecionada pelo cursor. | |
Toggle breakpoint | Adiciona e remove um breakpoint a linha corrente | |
Remove All | Remove todos os breakpoint"s. | |
Watch... | Monitora os valores de uma variável. | |
Tools | Menu Editor | Abre o editor de Menus. |
Conduit Generator | Abre a ferramenta de criação de conduits. | |
Conduit Installer... | Instala ou desistala um conduit, | |
StreamDB converter | Converte uma base de dados no PC para um arquivo .PDB no PC. | |
Package Builder... | Cria um pacode no Handheld Basic | |
Options... | Exibe as opções de configuração no Handheld Basic. | |
Window | Cascade... | Exibe as janelas em modo cascata. |
Title Horizontally... | Exibe as janelas em faixas horizontais. | |
Windows list... | Exibe os endereços dos objetos selecionados. | |
Help | Contents... | Exibe a documentação do Handheld Basic |
Search | Abre uma janela de busca por palavras na documentação. | |
Index | Abre a documentação indexada por índices. | |
Tip of the day... | Exibe uma janela com as dicas do dia. | |
Techinical Support... | Abre o navegador de internet e carreaga a pagina de suporte do Handheld Basic. | |
Register... | Formulário para o registro do Handheld Basic. | |
About Handheld Basic | Abre a janela de informações do Handheld Basic. |
Nesta ferramenta estão reunidas todas as informações de criação (Compilação) do projeto, uma das grandes vantagens de se trabalhar com o Handheld Basic é que ele possui uma poderosa ferramenta de Debug chamada Output Window.
Esta ferramenta é dividida em três partes (janelas): Build, Debug e Call Stack.
Build
Nesta janela é possível monitorar o processo de compilação do projeto, caso haja algum erro o HB++ exibirá um relatório de erro, para encontrar a linha do programa (código) que contem o erro basta clicar sobre o erro exibido na janela Build e clicar F4 conforme o exemplo abaixo.
Repare que um erro ocorreu e segundo o relatório gerado "y" não foi definido pelo programador, bom geralmente uma variável ou um objeto que não foi devidamente definido, com este erro selecionado basta clicar em F4 que o HB++ irá focalizar o trecho do código que contem este erro.
Figura - Trecho de código apontado pelo depurador de erros.
Figura - Relatório de Erros apontados durante a compilação.
Repare que no código acima o programador criou a variável "x" e não "y" e utilizou "y", provavelmente ele trocou o nome das variáveis. O HB++ além de focalizar o trecho do código errado ele marca com uma bola azul a linha que contem o erro.
Debug
Essa janela exibe a lista de mensagens de Debug enviadas pelo metodo DebugPrint. Caso o programador não utilize esse método nenhuma informação será exibida nessa janela.
Call Stack
Caso seu projeto tenha sido compilado corretamente e não foi encontrado erros de sintaxe, por exemplo, isso não quer dizer que ele esteja correto, ou seja, a prova de erros, a programação é uma caixinha de surpresas. Vamos ao nosso próximo exemplo, digamos que uma divisão por zero não é algo que o Debug pegue durante a compilação, logo é um erro que acontecerá durante a execução do aplicativo em campo.
Figura - Código aparentemente correto.
O código fonte acima está aparentemente correto, todas as variáveis foram criadas, atribuídas e exibidas.
O método MsgBox existe e sua sintaxe está correta e ao compilar, nenhum erro foi encontrado. Porém ao executar esta rotina o POSE será paralisado e exibirá a seguinte mensagem:
Figura - Erro de divisão por 0.
Clicando em Debug na janela acima o HB++ informará a linha de código que contem o erro conforme a imagem abaixo:
Figura - O Handheld Basic informa a linha que ocorreu o erro.
Abaixo temos um relatório mais apurado do erro.
Figura - Lista de execução (Call Stack).
Repare que a execução ocorreu normalmente até a execução da rotina frmMain.Button2_Click() conforme a imagem acima. Toolbars
A Toolbar reúne todas as principais opções da Barra de Menu, porém para acessar uma opção da Barra de Menu você precisa de pelo menos 2 cliques com o mouse ou conhecer as Teclas de Atalho. Todas as opções da Toolbar precisam apenas de um clique para serem acionadas, tornando a ferramenta muito mais produtiva.
Um exemplo é a opção de salvar, um projeto deve ser salvo inúmeras vezes ou seja utilizando a Toolbar estaremos clicando inúmeras vezes, se salvarmos o projeto utilizando o Menu estaremos clicando 2*inúmeras vezes.
Abaixo estamos definindo cada opção e sua breve descrição:
Atalho | Descrição |
Cria um novo projeto | |
Abre um projeto já existente | |
Salva o projeto corrente | |
Recorta algo selecionado e grava no Clipboard | |
Copia algo selecionado e grava no Clipboard | |
Cola algo que esteja no Clipboard | |
Cancela a ultima ação | |
Abre a janela de procura | |
Abre o editor de Menu | |
Compila o projeto | |
Interrompe a compilação e execução do projeto | |
Inicia o projeto no POSE ou no Handheld | |
Paralisa a execução do projeto | |
Finaliza a execução do projeto | |
Executa a próxima linha do código e caso necessário entra nas funções | |
Executa a próxima linha de código mas não entra em funções | |
Executa a próxima linha do código dentro da função corrente | |
Adiciona e remove Breakpoint | |
Monitora variáveis |
ToolBox
A Toolbox reúne todos os controles disponíveis no HB++ e mais os controles que você cria durante o desenvolvimento do projeto. Estes controles criados pelo programador são chamados de User Control. Abaixo temos todos os possíveis controles e sua breve descrição:
Controle | Nome/Descrição |
Seleciona, move e redimensiona controles | |
Picture, este objeto é utilizado para adicionar imagens aos formulários exercendo um papel de moldura para a imagem | |
Label, este objeto é utilizado para exibir textos fixos no formulário | |
Button, este objeto aciona uma rotina ao ser clicado, é a interação mais utilizada entre o usuário e o aplicativo | |
O Text Box é utilizado para exibir um texto dinâmico, ou seja informações que podem ser alteradas a todo o momento | |
O Checkbox permite ao usuário modificar o seu status, é muito utilizado quando o usuário pode selecionar várias opções | |
O PushButton é semelhante ao Checkbox porem ele é utilizado em casos que somente uma opção deve ser selecionada, exemplo é um formulário que pergunta ao usuário o Sexo dele, ou é Masculino ou Feminino nem mais nem menos.... | |
O Graffit indica se o usuário está com o CapsLock ou o Shift acionado | |
PopUp, este controle é utilizado para listar dados como por exemplo os Estados de um País | |
O Selector é utilizado para selecionar dados como Horas, Data, etc... | |
O List é um controle um pouco mais completo que o PopUp, utilizamos este controle para listar grandes quantidades de dados como por exemplo dados em uma tabela | |
Este controle sem dúvida é a grande vantagem de se trabalhar com o HB++. O famoso Grid permite criar um grid com vários controles distintos em colunas diferentes | |
O SpinButton é bem semelhante ao Scrollbar porém um pouco mais grosseiro | |
O Scrollbar é um controle muito utilizado em Text Box com múltiplas linhas ou um Grid por exemplo. Seu nível de sensibilidade é maior do que o nível de sensibilidade do SpinButton | |
O Slider é utilizado para graduar valores em uma escala definida | |
O User Control é um objeto criado pelo programador, este objeto pode ser utilizado várias vezes durante o projeto. |
A tabela acima é apenas uma breve descrição, entremos dedicando um capítulo inteiro para Controles e estaremos desenvolvendo vários exemplos com estes.
Form Editor
O Handheld Basic possui um poderoso construtor de formulários, com ele o programador pode montar todos os controles e preparar o Layout da futura janela.
Figura - Layout do Form Editor
Como podemos ver na imagem acima temos um formulário com vários objetos já posicionados, todo o trabalho é visual e muito rápido.
Agora que sabemos o que é o Form Editor devemos aprender a configurar conforme a necessidade de cada usuário, por exemplo, o tamanho do Layout o a existência ou não do grid, para isso vamos acessar a janela de configuração do Form Editor, para isso vamos até o Menu e selecionar a seguinte opção Tools | Options, será exibido um formulário conforme a imagem abaixo.
Figura - Opções de configuração do Form Editor
- Grid Setings: Modifica as opções de Grid;
- Colors: Você pode definir se o formulário deve ser colorido ou não;
- Initial zoom: Aqui podemos definir o zoom do Layout do formulário.
Após definir o Layout do projeto e das telas o programador deve começar então a dar vida ao aplicativo, para isso o Handheld Basic conta com uma importante ferramenta de edição de código, para quem não conhece a linguagem os recursos desta ferramenta ajuda a acelera o processo de aprendizado.
Para editar o código de um botão, por exemplo, basta selecionar o nome do botão em um popUp existente no topo da ferramenta e será listado todos os eventos possíveis deste botão.
Figura - Seleção de Objetos.
Após selecionar o objeto vamos selecionar o evento ao qual este objeto está relacionado.
Figura - Eventos do Botão
Embora eu tenha escolhido a opção "Click()" todas as outras opções listadas são validas para um botão.
Ao clicar na opção "Click()" o Handheld Basic automaticamente criará a rotina para este evento.
Figura - Rotina gerada para o evento Click() do botão.
Um objeto pode ter muitos eventos e você pode atribuir vários eventos a um único objeto, porém cada evento possui a sua função, o evento acima, por exemplo, executa um código quando o usuário clicar sobre o Botão.
Abaixo podemos ver um recurso importante da ferramenta.
Figura - Opções para o objeto tabela.
Quando criei um Objeto Tab o Handheld Basic me informou uma série de opções para este novo objeto, este recurso ajuda o programador inexperiente a aprender com maior agilidade a linguagem aumentando a velocidade de desenvolvimento de um aplicativo.
No código acima podemos ver que algumas palavras reservadas possuem uma cor diferenciada do resto do código, esta diferença de cor, é possível configurar algumas propriedades desta ferramenta através da janela de Options, para isso vá até o Menu e clique na opção Tools | Options.
As Strings por default possuem a cor Cinza o que torna a sua visibilidade um pouco desagradável em um NoteBook, vamos modificar a cor para um Violeta conforme a imagem abaixo:
Figura - Modificando as cores das Strings.
Agora meu código ficou mais visível em meu NoteBook.
Project Explorer
O Handheld Basic possui um gerenciador de objetos e arquivos utilizados pelo projeto, este gerenciador é chamado de Project Explorer.
Todo o objeto criado ou adicionado é exibido no Project Explorer facilitando assim o acesso do mesmo pelo programador.
Figura - Project Explorer
Properties
Todo o objeto criado possui propriedades que podem ser editadas, por exemplo, o caso de um botão, ele possui uma demissão, um texto, um formato, etc.. Podemos editar as propriedades de um objeto através da janela de Properties.
Figura - Janela de Propriedades
Na imagem acima podemos ver as propriedades de uma tabela, entre a qual se encontra o nome da Tabela, esta tabela será referenciada através do nome em toda a programação.
Discutiremos os detalhes de cada controle e alguns objetos nos próximos artigos.
- Como criar um player de audio para Windows PhoneDisp. móveis
- Windows Phone: Criando e lendo arquivos de textoDisp. móveis
- Inserindo, editando e lendo dados no Windows Phone com IsolatedStorageSettingsDisp. móveis
- Introdução ao jQuery MobileJavascript
- Entendendo a navegação entre páginas no Windows Phone 7Disp. móveis