Aug/091
Código fonte
Para aqueles que gostam de fuçar, aviso que o código fonte do VeículoZ versão Windows Mobile está disponível no endereço http://code.google.com/p/midasmobile/source/checkout.
Aviso novamente que uma parte do código não foi disponibilizada. É o código dos gráficos, pois contém uma licença paga e, por este motivo, não posso liberar o código. Todo o restante do código está disponibilizado. Relembrando que é em .NET Compact Framework 3.5.
Sep/070
Handheld Basic – Dicas
Uma dica simples. Aliás, com HB++ muitas vezes o PalmSimulator simplesmente dá crash e você não tem a mínima idéia do motivo que levou a isto. Aconteceu comigo, no desenvolvimento da nova versão do VeículoZ. O que houve? Eu criei uma função como handler para um botão, mas, por descuido, coloquei como onPenDown. Ao clicar no botão, sempre dava um erro e o formulário nunca carregava. E um erro brusco, pois simplesmente dava crash no PalmSim.
Olhando o código com mais cuidado, percebi que usava OnPendown, ao invés de OnClick, para um button! Não existe OnPenDown para botões? Não sei, eu pensava que sim. Ou talvez seja um bug. Ainda não parei para pesquisar sobre este problema.
Mar/070
Gráficos
Desenvolvendo a parte de gráficos do VeículoZ, dei de cara com um problema que não entendia o motivo de acontecer. Em um gráfico de barras, o tooltip aparecia na tela quando uma barra era clicada e mantinha-se lá. O contorno do clique na barra também mantinha-se! Aparentemente meu código estava idêntico ao exemplo do ucChart que acompanha o HB++.
Na sorte, descobri. No Form_Load o ucChart era inicializado com informações como Show3D = True, Etc Etc… Mas antes de definir estas informações, era necessário informar ucChart.Redraw = False. O problema estava aí, no final do Form_Load, eu não colocava de volta o ucChart.Redraw = True. Feito isto, tudo funcionou corretamente!
Feb/070
Debug
A importância do debug no HB++: quando configurado para gerar builds de Release o HB++ não detecta erros simplórios, gerando arquivos PRC que darão crash tanto no PalmSimulator como no próprio Palm. Experiência prática. Construindo o VeículoZ utilizando apenas a opção de gerar Releases, um erro simples não era detectado. No LoadItem de um Grid, o preenchimento do vValue era feito com um índice inexistente. Por exemplo, apesar do GridEx ter apenas 2 colunas, o vValue era preenchido com vValue(0) = “” e vValue(2) = “”… a aplicação simplesmente dá CRASH, e em tempo de compilação nenhum erro ou warning é apresentado.
Após muito tempo que percebi que estava gerando apenas Releases, quando modificado para DEBUG, este problema foi mostrado logo na compilação. Outro problema era o segmento main, que estava excedido devido a quantidade de forms nele. Outro erro não apresentado quando em modo Release.
Feb/070
Ícone Centralizado
O desenvolvimento do VeículoZ sempre trás novos aprendizados em HB++. A última foi descobrir que para o ícone da aplicação, aquele que aparece no Launcher, ficar centralizado, você deve incluir na família da imagem um ícone de 1bpp.
E o Alarme? Sua aplicação pode ter apenas um alarme por vez configurado. Logo, fica a seu encargo realizar o gerenciamento dos alarmes que sua aplicação deve disparar. No caso do VeículoZ, criei duas classes: clsAlarm e clsAlarmManager, que imagino poder utilizar em outros projetos.
Por falar em projetos, tenho em mente outros dois: CompraZ e AlarmeZ. Mais dois novos aplicativos para a família UtilidadeZ!

