Lazarus, progredindo e ficando mais estável!

Há alguns anos atrás, logo depois de ter adquirido meu primeiro dispositivo com Windows Mobile (eca!), tentei criar uma aplicação simples compatível com Windows CE, para ver o quão difícil seria.

Como nosso Delphi até hoje não tem essa capacidade, e não estava a fim de usar .Net nem qualquer outra linguagem da MS, o caminho mais obvio foi usar o Lazarus/FreePascal, mas sem muito sucesso: inúmeros erros na instalação, compilação, etc.

Ontem, resolvi tentar novamente. Baixei o instalador do Lazarus e do compilador add-on pra WinCE (ambos versões snapshot), e logo de cara me espantei: Ambos instalaram sem qualquer problema!

Em seguida, baixei um exemplo de código feito em Lazarus, para acessar o GPS do PDA. Após baixar algumas units que não estavam incluídas no download do código fonte da aplicação, compilei e rodei normalmente no Windows XP. Configurei então as opções do projeto para gerar código WinCE, compilei novamente, e vualá! Uma aplicação WinCE, sem precisar mudar uma linha de código sequer!

Copiei a aplicação (13MB!!!!) para o PDA, e funcionou logo de primeira! O tamanho do arquivo deixa claro que o FreePascal ainda precisa melhorar nessa área. Felizmente, desligando as opções de informações de debug, o tamanho do arquivo diminuiu para 1.8MB (que diferença! mas fica mais difícil debugar os problemas).

Existe uma biblioteca chamada KOL-CE, que permite criar aplicações GUI para Win32/WinCE que ficam bem menores do que as nativas do Lazarus. No entanto, a última versão do FreePascal tem algumas incompatibilidades com o código da KOL-CE, portanto, não consegui usa-la.

Resolvi escrever minha própria aplicação. Criei um componente para acessar o GPS via porta serial. Compilou de primeira!

Os primeiros problemas começaram com a interface da aplicação:

Fiz uma interface muito simples, com um PageControl, alguns labels, etc. Rodando no Win32, tudo perfeito! Ao gerar para WinCE e jogar no PDA, os labels simplesmente não apareciam! Uma Googlada rápida e descobri que é um bug da versão atual do LCL (equivalente ao VCL do Delphi). Solução gambiarra: inserir um TPanel dentro do TabSheet e colocar os componentes dentro do Panel, fazendo assim com que eles sejam “pintados” na tela. Feito isso, tudo blz!

O que me deixa mais feliz com tudo isso, é ver que o Lazarus/FreePascal tem progredido, apesar que lentamente. O fato de se poder utilizar uma mesma base de código para criar aplicações (inclusive GUI) multi-plataforma, é um sonho de qualquer programador.

A falecida Borland tentou algo nessa área, via Kylix. Infelizmente, não vingou. O FreePascal parece estar no caminho certo. Fico torcendo para que o ritmo de desenvolvimento aumente, e para que a ferramenta fique cada vez mais completa e estável.

Dica:

  1. A nova versão do Lazarus é compatível com arquivos DFM do Delphi.
  2. Apesar da maioria dos comandos, funcões, etc. serem equivalentes ao que estamos acostumados no Delphi, deve-se ficar atento à algumas diferenças, por exemplo: FloatToStr no FreePascal utiliza o DecimalSeparator para fazer a conversão. No Delphi, o “.” é sempre utilizado como separador decimal.
  3. As versões snapshot, apesar de não serem testadas, tem a vantagem de incluirem as correções mais recentes (mas podem incluir novos bugs também).
  4. O FreePascal/Lazarus produz código 64bits (coisa que o Delphi ainda não faz).

PS: Agora preciso descobrir como fazer para gravar audio do microfone do PDA para um arquivo .wav

Share and Enjoy !

Opinião: 30 anos da Besta

Confesso que esperava mais dessa biografia não autorizada do Iron Maiden, escrita por Paul Stenning.

O livro é uma coleção de depoimentos e entrevistas, de pessoas que já fizeram parte da banda, ou que já trabalharam com ela e, apesar de ter algumas informações interessantes, parece ter sido escrito por uma pessoa que não tem vocação para escrever, e que talvez tenha abusado muito do “copy e paste”.

Muitas vezes, estava lendo um parágrafo e tive que “voltar” atrás pra lembrar que pessoa (entrevistada) estava falando aquilo. O livro também não tem nem sequer uma fotografia, e em se tratando de uma biografia, espera-se ver algumas fotos “históricas” ou de momentos especiais.

Fica a dúvida se o problema é realmente a falta de habilidade do autor, ou se a culpa é do tradutor, visto que, mesmo sem ter acesso ao original em inglês, pude notar alguns erros grosseiros de tradução.

Enfim, para um fã da banda, pode valer a pena, mas não espere muito.

Share and Enjoy !