quinta-feira, 14 de fevereiro de 2013

Instalando o Lazarus no Raspberry PI

O primeiro teste com o Lazarus no Raspberry PI foi um sucesso. Abaixo está a foto de um pequeno exemplo estilo "Hello World".


Os seguintes comandos foram usados para instalar o Free Pascal e o Lazarus:

sudo apt-get update
sudo apt-get upgrade

sudo apt-get install fpc
sudo apt-get install lazarus

Segui a dica do seguinte tópico:


Agora é meter a mão na massa e começar a desenvolver para ele.

[]'s,

Ericson Benjamim.


sábado, 13 de outubro de 2012

Tratando arquivos textos via TFileStream

Trabalhar com arquivos textos no Lazarus é bem fácil. Há várias maneiras de se tratar arquivos textos, desde o velho modo do Pascal (AssignFile/Reset/Rewrite/Append/CloseFile) aos métodos (LoadFromFile/SaveToFile) dos descendentes de TStrings. Mas para trabalhar com arquivos grandes é mais eficiente usar TFileStream.

Para demonstrar o uso do TFileStream montei um pequeno exemplo no Lazarus, como mostra a imagem abaixo.


O código do projeto acima encontra-se a seguir.


Bem, o projeto acima pode não demonstrar a eficiência do TFileStream, mas mostra a simplicidade de usá-lo. Basicamente a única coisa que precisamos nos preocupar é com o LineEnding que marca o fim de cada linha de um arquivo texto. Talvez um bom exemplo seja a gravação de dados em um arquivo de log de grande tamanho. Neste caso, o código para salvar as linhas ficaria bem parecido com o método ButtonSalvarClick, do exemplo acima. A única coisa que mudaria seria a linha abaixo:

FileStreamTxt := TFileStream.Create(SaveDialog1.FileName, fmCreate or fmShareDenyWrite);

A qual seria melhor substituída pelo seguinte trecho:

if FileExistsUTF8(SaveDialog1.FileName) then begin
  FileStreamTxt := TFileStream.Create(SaveDialog1.FileName, fmOpenWrite or fmShareDenyWrite);

  FileStreamTxt.Position := FileStreamTxt.Size;
end else begin
  FileStreamTxt := TFileStream.Create(SaveDialog1.FileName, fmCreate or fmShareDenyWrite);
end;

O trecho acima garante que o arquivo não tenha seu conteúdo anterior apagado caso o arquivo já exista no caminho indicado. Assim as linhas serão adicionadas ao arquivo, algo mais lógico para quem está gravando informações em um log que tem dias e mais dias de conteúdo previamente gravado.

Outra ressalva a fazer, no método ButtonAbrirClick, é que o comando TMemo.Lines.Add adiciona automaticamente o LineEnding, sendo necessário, neste caso, remover este da linha a ser inserida, usando o comando StringReplace. Se for tratar o arquivo diretamente no TFileStream talvez não seja necessário usar este recurso.

Esta dica deve funcionar no Windows, Linux e Mac. Mais informações em: http://wiki.freepascal.org/File_Handling_In_Pascal

[]'s,

Ericson Benjamim.

quarta-feira, 6 de junho de 2012

Form com área transparente no Lazarus/Windows

Recentemente precisei criar um form com área interna transparente no Lazarus. Pesquisando no Google, encontrei uma dica para Delphi que foi facilmente adaptado para meu caso.



Infelizmente esta dica funciona apenas no Windows (não esquecer de incluir a unidade Windows na cláusula Uses).

Adaptado a partir de Get transparent form - Forms - Tips & Tricks - Greatis Delphi Pages.

[]'s,

Ericson Benjamim.

sábado, 14 de abril de 2012

Introdução ao Pascal

Também resolvi fazer outro mirror de outro curso, muito bom, desenvolvido pelo REENGE, também da Unicamp.


Falta apenas colocar as respostas dos exercícios.

[]'s,

Ericson Benjamim.

Curso Aprendendo a programar em Pascal

Encontrei um curso de programação em Pascal no site da Unicamp e resolvi criar um mirror para ele:


É um curso muito interessante para iniciantes, que vai progressivamente aprofundando na linguagem. Pode ser usado o Lazarus como ambiente de teste do curso.

[]'s,

Ericson Benjamim.


terça-feira, 14 de junho de 2011

Livros sobre Lazarus

A comunidade Lazarus conta agora com excelentes opções de publicações sobre esta fantástica ferramenta. Confiram:

Lazarus - The Complete Guide - mais de 720 páginas
Autores: M. van Canneyt, M. Gärtner, S. Heinig, F. Monteiro de Cavalho, I. Ouedraogo.
Idioma: inglês e alemão
http://www.blaisepascal.eu/index.php?actie=./subscribers/lazarusbookinfoEnglish

Desenvolvendo Aplicativos com Lazarus - 346 páginas
Autor:
Jean Patrick
Idioma: português do Brasil
http://www.clubedeautores.com.br/book/33568--Desenvolvendo_Aplicativos_com_Lazarus
http://agbook.com.br/book/46758--Desenvolvendo_Aplicativos_com_Lazarus


Programando com o Lazarus - 64 páginas
Autor:
Vitor Amadeu Souza
Idioma: português do Brasil
http://www.clubedeautores.com.br/book/24590--Programando_com_o_Lazarus
http://agbook.com.br/book/44784--Programando_com_o_Lazarus


[]'s,

Ericson Benjamim.

quarta-feira, 8 de junho de 2011

Aplicação Lazarus Web para cálculo do MDC

Esta semana o meu sobrinho torrou minha paciência pedindo a todo instante que corrigisse seus cálculos do máximo divisor comum (MDC). Para não perder mais tempo acabei criando uma aplicação para fazer os cálculos necessários. A aplicação foi feita no Lazarus 0.9.31 com FPC 2.5.1 e componente fpWeb. E compila tanto em Windows quanto em Linux. Também foi testada com sucesso no Lazarus 0.9.28 com FPC 2.4.2.

O link para aplicação compilada, incluindo código-fonte, é:

http://fanzinepas.awardspace.com/mdc.html

Abaixo os screenshots da aplicação:



O MDC é exibido em vermelho:



Foi a minha primeira incursão no mundo Lazarus/Web com o componente fpWeb. Outro componente interessante para aplicações Web no Lazarus é o Free Spider. O Free Spider é mais simples de usar, mas o fpWeb é mais poderoso.

[]'s,

Ericson Benjamim.