Você está na página 1de 22

Universidade Federal de Viosa

Departamento de Engenharia Agrcola

Free Pascal Lazarus


Ambiente Windows

ENG 390

Prof. Evandro de Castro Melo, DS

28 de maro de 2011
http://wiki.lazarus.freepascal.org/Main_Page/pt

1. INTRODUO
O Projeto Lazarus surgiu em 1 de fevereiro de 1999 com trs pessoas: Cliff Baeseman, Shane Miller e Michael A. Hess. Em agosto de 1999 se junta ao grupo Marc Weustink seguido por Mattias Gaertner, que aderiu em setembro de 2001. O Projeto Lazarus desde ento s vem crescendo com cada vez mais componentes e recursos. O Lazarus uma alternativa de cdigo aberto (open source) ao Delphi, com a grande vantagem de ser multiplataforma. Trata-se de um Ambiente Integrado de Desenvolvimento (IDE) com base na linguagem Pascal e no compilador Free Pascal, que h dcadas so utilizados no meio acadmico. O Free Pascal (FPC) um compilador de cdigo fonte aberto com duas notveis caractersticas: um grau elevado de compatibilidade com Delphi e com capacidade para ser executado em Windows, Mac e Linux.

   

2. AMBIENTE LAZARUS
2.1 Prefcio
Lazarus um ambiente (E) integrado (I) de desenvolvimento (D) - IDE Lzarus gratuito e de cdigo aberto para o compilador Free Pascal. O ambiente Lazarus estvel e rico para criao de aplicaes grficas e de console (antigo DOS dentro do Windows). Ele atualmente funciona nos sistemas operacionais: Linux, FreeBSD, Win32 e Win64. Possui um editor de cdigo e um ambiente visual para criao de formulrios, acompanhado de um gerenciador de pacotes, depurador de erros e uma completa integrao da GUI com o compilador Free Pascal.


O Lazarus pode ser obtido desde o sitio http://www.lazarus.freepascal.org/ na opo Downloads como mostrado na Figura 1.

Figura 1 Stio oficial do Projeto Lazarus na Internet Existem duas verses para o Windows: 32 e 64 bits. Se o PC, onde for instalado o programa, possuir processador de dois ncleos (AMD ou Intel) e 4 Gb de memria RAM, pode-se optar pela verso 64 bits.

   

 

Depois de instalar o Lazarus no computador, roda-se o programa. Ento iro aparecer na rea de trabalho do computador uma srie de janelas flutuantes, como se v na Figura 2.

Figura 2 - Janelas do Lazarus na rea de trabalho do computador

Para mudar o idioma da interface para o portugus, deve-se acessar a aba Environment e depois Options, como mostrado na Figura 3.

   

Figura 3 - Mudando de idioma

Ento aparecer a seguinte tela, onde se escolhe a opo Desktop, optando pelo portugus, como mostra a Figura 4, finalizando com o boto OK.

Figura 4 Parte da Janela para modificar o idioma

Para que a modificao tenha efeito preciso reiniciar o Lazarus. A interface do programa ficar como mostrado na Figura 5:

Figura 5 Parte da janela do ambiente Lazarus no idioma portugus




Quando se ativa o ambiente de programao Lazarus pela primeira vez, uma srie de janelas flutuantes, separadas entre si, iro aparecer no desktop do computador. A primeira, localizada no alto do desktop, chamada de Lazarus IDE v0.9.28.2 beta - project1 (que ser modificada para refletir a mudana no nome do projeto em que se est trabalhando). Esta a principal janela de controle de projetos e contm o Menu Principal, a Barra de Botes e a Paleta de Componentes. Ver Figura 6.

Figura 6 - Janela principal do Lazarus IDE ou ambiente Lazarus


    

O Menu Principal composto das seguintes entradas: Arquivo, Editar, Localizar, Vizualizar, dentre outras. E abaixo desta, esquerda, tem-se a Barra de Botes, que so atalhos para diversos itens do Menu Principal. E direita, a Paleta de Componentes. Sob a janela do Editor do Lazarus ir aparecer, esquerda, a janela do Inspetor de Objetos e, direita, o Editor de Cdigo. Pode-se ter outra janela menor, indicada como Form1, sobre a janela do editor de cdigo. Se esta janela no visvel imediatamente,

aciona-se a tecla F12 e ela aparecer. Essa tecla alterna entre o Editor de Cdigo e o Editor de Formulrio. Nesta janela de formulrio, ser construda a interface grfica da aplicao desejada. Esta janela somente funciona se estiver editando um formulrio.

Figura 7 Editor de Cdigos e Inspetor de Objetos no ambiente Lazarus Quando se inicia um novo projeto (ou quando se ativa o Lazarus), por padro, ir ser construdo um formulrio Form1, que consiste de uma caixa preenchida com pontos (grid), para ajudar no posicionamento dos componentes no mesmo e uma barra ao longo do topo, que contm os usuais botes de janelas do Windows: Minimizar, Maximizar e Fechar. Se clicar com o mouse dentro desta caixa, ver-se-o as propriedades deste formulrio no Inspetor de Objeto, no lado esquerdo do desktop. Caso o Inspetor de Objetos no esteja visvel, devese pressionar a tecla F11. Outras janelas que podem ser visveis durante o trabalho: o Inspetor de Projeto, que contm detalhadamente os arquivos includos no projeto em que se est trabalhando. A janela
    

Mensagens, que exibe as mensagens do compilador, erros ou relatrios de progresso no


projeto.

  

O Menu Principal contm as seguintes entradas, como indicado na Figura 8 com alguns sub-menus apresentados na Figura 9.

Figura 8 Entradas do Menu Principal do Ambiente Lazarus

Figura 9 Alguns Sub-menus do Menu Principal do Ambiente Lazarus

   

Uma pequena barra de ferramentas esquerda da janela principal do editor, logo abaixo do menu principal e esquerda da paleta de componentes, contm um conjunto de botes que repetem as opes que so frequentemente mais usadas no menu principal. Ver Figura 10.

Figura 10 Barra de Botes do Ambiente Lazarus




uma barra de ferramentas organizada em abas com um grande nmero de cones comumente usados para construir Forms. Cada aba tem um conjunto diferente de cones, representando um grupo funcional de componentes. O cone mais esquerda em cada aba uma seta inclinada para a esquerda chamada Selection Tool. Parando-se o mouse sobre qualquer um dos cones, sem clicar nele, o nome do componente ser mostrado em uma pequena janela. importante observar que cada ttulo inicia-se com 'T', que significa Type, ou mais precisamente Class do componente. Quando um componente selecionado para incluso em um Form, a Class adicionada seo Type da interface da Unit (geralmente como parte de TForm1). Qualquer mtodo projetado para ser usado pelo Form ou componentes (isto , Procedures ou Functions) sero colocados aps o item Implementation da unidade. A seguir esto relacionados os nove componentes da paleta. 1

   

Figura 11 Detalhamento das abas da paleta de componentes.

   

Para usar a Paleta deve haver um Form aberto no editor. Aciona-se um cone do componente na aba apropriada e, depois, outro clique no Form, na posio desejada onde o componente deve aparecer. Quando o componente desejado aparecer, pode-se selecion-lo clicando no mesmo com o mouse e arrastando-o para o local exato do Form. Podem ser feitos ajustes na aparncia do componente, alterando a figura do objeto no Form ou alterando as propriedades correspondentes do componente no Inspetor de Objetos. Se componentes adicionais forem instalados, criados pelo programador ou que veem em um pacote de outra fonte, abas extras, com cones relevantes iro aparecer na Paleta de Componentes. Esses componentes podem ser selecionados e usados nos Forms da mesma forma que os componentes padres.
 

Quando se salva um projeto no ambiente Lazarus, como mnimo, dois arquivos bsicos sero gravados no disco, cujas extenses so *.pas (arquivo da Unit) e *.lpr (arquivo do Project). Mais arquivos sero gravados, mas apenas estes dois requerem que sejam nomeados pelo usurio. importante ressaltar que esses dois arquivos devem ter nomes diferentes: isto uma exigncia do compilador. Assim que se salva um projeto chamado teste, se tentar salvar teste.pas e teste.lpr, haver uma mensagem de erro, porque os nomes da unidade e do projeto so iguais. Depois de modificado o nome da unidade para testeu.pas, os seguintes arquivos sero gerados:

teste.exe: O programa principal em formato binrio executvel. teste.lpi: Arquivo principal do projeto Lazarus (Lazarus Project Information), que equivale no Delphi extenso *.dpr. armazenado no formato XML. teste.lpr: Arquivo fonte do programa principal no formato Pascal. testeu.lfm: Desenho do formulrio. O Lazarus utilizar este arquivo para gerar um arquivo fonte, que est includo na seo de inicio da Unit testeu.pas. Equivale no Delphi extenso *.dfm. teste.lrs: Este o arquivo fonte gerado. Note que no um arquivo fonte de Windows. testeu.pas: Arquivo da Unit que contm o cdigo-fonte do formulrio (unidade). teste.ppu: Arquivo da Unit compilada.
sucesso, este arquivo removido pelo compilador.
   

ppas.bat: Arquivo que contm um script para criar o executvel. Se a compilao tiver


Programas escritos em Delphi (unidades, projetos e pacotes) podem ser convertidos para o ambiente Lazarus, empregando-se a opo Ferramentas do Menu Principal, segundo a Figura 12, onde o usurio ir optar pela converso que lhe for a mais adequada.

Figura 12 Opo Ferramentas do Menu Principal com as opes de converso de arquivos tipo Delphi para tipo Lazarus

   



    

 

   



O Lazarus um sistema de desenvolvimento de cdigo aberto que adiciona um Ambiente Integrado de Desenvolvimento (IDE) ao compilador Free Pascal, onde est includo um editor de cdigos, um editor visual de formulrios, uma biblioteca de componentes (LCL), altamente compatvel com a biblioteca de componentes visuais do Delphi (VCL). Tanto o Free Pascal como o Lazarus escrito em Pascal. O cdigo fonte completo est disponvel no somente para o compilador Free Pascal e Lazarus IDE, mas tambm para todas as unidades feitas a partir do Free Pascal RTL e Lazarus LCL. O Free Pascal tem compatibilidade com o Delphi incluindo suporte para programao em linguagem Object Pascal, alm das mesmas bibliotecas de rotinas e classes conhecidas do Delphi. Isto inclui as unidades System, SysUtils, StrUtils, DateUtils, Classes, Variants, Math, IniFiles e Registry. O Free Pascal tambm possui unidades como Windows, ShellAPI, BaseUnix, Unix e DynLibs para acessar capacidades especficas do sistema operacional local. Estas unidades so a parte inicial da biblioteca de tempo de execuo ou run-time library (RTL) do Free Pascal. Semelhantemente ao Delphi, o Free Pascal e o Lazarus so ferramentas de programao de uso geral, significando que se pode desenvolver com eles uma variedade de programas, ou seja, aplicaes de console, bibliotecas dinmicas e aplicaes com interface grficas (GUI). Dado estas explicaes, o ambiente Lazarus de programao tambm pode ser chamado de linguagem de programao FPL, isto , Free Pascal Lazarus.


O objetivo no desenvolvimento de um programa o que o mesmo processe uma srie de dados, que podem representar nomes de pessoas, datas, valores monetrios ou quantidades. Na linguagem FPL, as variveis e as constantes precisam ser declaradas antes de serem usadas. Quando se declara uma varivel ou uma constante, h a necessidade de se especificar seu tipo, ou seja, o conjunto de valores que ela pode armazenar na memria do computador.

   

 

A base ou tipos simples do FPL so os tipos da linguagem Delphi:

do primeiro e do ltimo, tem um valor anterior e posterior. Os tipos ordinais na linguagem FPL so: Integer, Character, Boolean e Enumerated. Integer Representa um subconjunto de nmeros inteiros. Segue na tabela os limites e formatos para armazenamento. Byte Shortint Smallint Word Integer Cardinal Longint Longword Int64 QWord

Ordinais Define um conjunto de valores, onde cada valor desse conjunto, com exceo

Tipo

0 .. 255 -128 .. 127 -32768 .. 32767 0 .. 65535 smallint ou longint longword -2147483648 .. 2147483647 0 .. 4294967295 -9223372036854775808 .. 9223372036854775807 0 .. 18446744073709551615

Faixa

Tamanho em bytes
1 1 2 2 tamanho 2 ou 4 4 4 4 8 8

Caractere Um caractere pode ser qualquer smbolo que possa ser representado (um Boolean Este tipo de dado o responsvel pela representao de valores lgicos e Enumerated Um tipo de dado enumerado define um conjunto ordenador de valores
simplesmente listando identificadores que os denotem. Type Direction = ( North, East, South, West ); ocupa 1 byte de memria. Pode ser dois valores: True ou False. nmero, uma letra ou smbolos especiais)

Reais Um tipo de dado real ou flutuante define um conjunto de nmeros que podem ser
representados com notao de ponto flutuante.

Tipo

Real Single Double Extended Comp Currency

depende da plataforma 1.5E-45 .. 3.4E38 5.0E-324 .. 1.7E308 1.9E-4932 .. 1.1E4932 -2E64+1 .. 2E63-1 -922337203685477.5808

Faixa

??? 7-8 15-16 19-20 19-20 922337203685477.5807

Dgitos significativos

Tamanho
4 ou 8 4 8 10 8 8

   

 

Para se declarar variveis, constantes, procedures e functions de maneira correta em qualquer linguagem, so necessrios o conhecimento de sua estrutura e a identificao dos pontos onde elas podem ser declaradas.

Estrutura bsica de uma Unit

Uma Unit , na maioria das vezes, associada a um formulrio (form) que contm seu cdigo, ou seja, as declaraes de variveis, os componentes utilizados e as rotinas definidas. possvel verificar que, medida que componentes so inseridos, so tambm adicionados automaticamente linhas de cdigo na Unit relacionada. A Unit tem reas predefinidas e que devem ser respeitadas para que a programao tenha xito. So elas:

unit xxxx Representa o nome fsico do arquivo onde est o cdigo da referida unidade. Por meio desse nome, units podem usar outras units. interface A seo interface comea com a palavra reservada interface e termina no inicio da seo implementation. Nessa seo, so declarados constantes (const), tipos (types), variveis (var), procedures e functions, que esto disponveis para outras units ou outros programas. Essas declaraes so chamadas de pblicas (public), indicando que as mesmas podem ser usadas por quaisquer outras unidades dentro do mesmo programa. A
    

declarao de procedure e function, na seo interface, refere-se apenas ao cabealho das mesmas. O seu contedo ser descrito na seo implememntation.

uses a lista de outras units que esto ligadas ao programa atual. type Esta declarao especifica um identificador que denotar um novo tipo que, normalmente, no oferecido pelo FPL. Sua sintaxe :
?????????

var - Nessa rea, so declaradas todas as variveis que podem ser acessadas em qualquer lugar do programa, portanto, consideradas pblicas. implementation - Esta seo comea com a palavra reservada implementation e termina em initialization. Neste local esto descritas todas as procedures e functions do programa. {$mode objfpc}{$H+} e {$I unit1.lrs} estes cdigos so diretivas de compilao, que tm a funo de passar informaes ao compilador no instante de se criar o arquivo executvel do aplicativo.
 

O arquivo de projeto tambm conhecido como Lazarus Project (LPR). O LPR tem os seguintes pontos em sua estrutura:

Estrutura bsica de um arquivo de projeto

   

begin/end. estas duas palavras reservadas indicam inicio e fim do projeto. Application.Initialize; Inicitialize o primeiro mtodo chamado pelo arquivo-fonte do projeto que, por padro, simplesmente inicializa a aplicao. Application.CreateForm(TForm1, Form1); cria um objeto formulrio da classe TForm1. Aqui so listados todos os formulrios criados pela aplicao. Application.Run; - quando um projeto criado, o IDE insere automaticamente a linha de cdigo com o mtodo Application.Run, responsvel pela execuo da aplicao.

excluda do corpo do projeto, porque a presena da mesma causar erro na execuo do mesmo. Esta linha foi divulgada na Internet como um bug.
 

Ateno: a linha {$IFDEF WINDOWS}{$R project1.rc}{$ENDIF} deve ser sempre

Funes so rotinas que recebem valores, passados como parmetros, a partir da unidade ou fora dela, e retornam apenas um valor como resultado. As funes so definidas obedecendo seguinte sintaxe:

Function NomeDaFuno( Parmetro1: Tipo; ParmetroN: Tipo): Tipo do valor de retorno; var {declarao de variveis locais funo quando necessrias} begin end;
{bloco de instrues}

Procedimentos so semelhantes s funes, porm no retornam um valor como parte de sua definio. Os procedimentos obedecem seguinte sintaxe:

Procedure NomeDoProcedimento (Parmetro1: Tipo; ParmetroN : Tipo); var {declarao de variveis locais funo quando necessrias} begin end;
{bloco de instrues}

Quando se atribui nomes s variveis, faz-se necessrio seguir algumas regras genricas s linguagens:
    

O primeiro caractere deve ser uma letra; No se pode usar espao em branco e nem hfen para declarao de varivel; O FPL no distingue letra maiscula de minscula no nome da varivel; No se podem usar palavras reservadas da linguagem como nome de varivel.
 

A entrada de dados em ambientes visuais normalmente se d atravs de componentes (objetos visuais), porm as linguagens tambm possuem funes responsveis pela entrada de dados a partir de janelas de dilogo com o usurio. importante frisar que dados numricos so apresentados sob o tipo caracteres (string) em um formulrio do ambiente Lazarus. Assim sendo, em aplicaes de engenharia, estes dados numricos, antes de serem repassados ao programa, devem ser transformados de caracteres para numrico. E o contrrio, quando forem apresentados no formulrio, deve-se, antes, serem transformados de numricos para caracteres. As funes do FPL que fazem essas tarefas so:

StrToFloat e StrToInt Transforma de caractere (string) para numrico (real e inteiro respectivamente). FloatToStr e IntToStr - Transforma de numrico (real e inteiro respectivamente) para caractere (string) . StrToDate e StrToTime Transforma de caractere (string) para data e hora respectivamente. DateToStr e TimeToStr - Transforma de data e hora para caractere (string) respectivamente.

   

4.   

 
 

 

 

   

Como exemplo de aplicao, para ser o primeiro programa executado no ambiente FPL, ser um projeto que calcule a soma de dois nmeros. Portanto, o programa dever solicitar ao usurio os dois nmeros e apresentar na tela o resultado da soma. Neste exemplo, o programa ser executado em ambiente console ( ), ou seja, fora do ambiente grfico do Windows. As instrues do algoritmo sero:
Algoritmo Soma Inicio Escrever (Digite o primeiro nmero) Ler (num1) Escrever (Digite o segundo nmero) Ler (num2) soma num1 + num2 Escrever (O resultado ) Escrever (soma) Fim

E o programa em Free Pascal Lazarus (FPL), para ambiente console, ser:


Program Project1; var num1, num2, soma: double; begin writeln (Digite o primeiro nmero); readln (num1); writeln (Digite o segundo nmero); readln (num2); soma := num1 + num2; writeln (O resultado , soma); end.
    



Para criar um programa em FPL referente ao algoritmo anteriormente desenvolvido, o respectivo projeto ser criado acessando-se Arquivo Novo / Projeto / Programa, de acordo com a Figura 13:

&

&W>

Ir aparecer a seguinte janela, qual se deve responder com um No.

&

&W>

Em seguida aparecer a janela com o Editor de Cdigo, onde se escrevero os comandos do primeiro programa como indicado nas Figuras 15 e 16. As variveis (var) devero ser descritas acima da palavra begin e o restante do programa, aps a mesma, finalizando antes da palavra end seguida de um ponto em vermelho. Deve-se observar que na aba referente ao projeto existe um asterisco antes de project1.lpr: isto indica que o presente arquivo ainda no foi gravado no disco.
    

Ateno: a linha {$IFDEF WINDOWS}{$R project1.rc}{$ENDIF} deve ser excluda do corpo do projeto, porque a sua presena causar erro na execuo do programa.
Transcrevendo o programa no Editor de Cdigo, o mesmo ficar assim:

&

&W>

&    

&W> 

Para rodar o programa aciona-se a tecla Executar, que se parece a um tringulo verde como mostrado na Figura 17.

&

E o resultado ser apresentado na seguinte janela, de acordo com a Figura 18:

&

Deve-se ressaltar que, ao final do programa original, foram acrescentadas mais duas linhas. A funo das mesmas permitir a visualizao do resultado do programa na janela do prompt. Sem as mesmas, o programa seria executado e a sua janela fechada imediatamente, sem que o usurio pudesse ver os resultados.

   

    
 

       

Como o programa proposto anteriormente foi desenvolvido para ambiente console, o mesmo no apresenta as tradicionais janelas do Windows, que tornam a interao com usurio mais agradvel e bonita. Para que isto acontea preciso montar o projeto de outra maneira. Primeiramente deve-se estruturar o formato da janela, atravs da qual o programa ir interagir com o usurio. O programa dever ser escrito em uma janela do FPL chamada de formulrio ou Form. Quando se acessa o ambiente FPL, dever aparecer uma tela, em que parte dela, est representada na Figura 19.

&

&W>

Nesta tela, j est disponvel, para o programador, um formulrio Form1 do projeto Project1, onde se montar a interface com o usurio. Tem-se frente, a janela Form1 e, por detrs, a janela Editor de Cdigo. medida que componentes do FPL so adicionados ao Fom1, instrues ou linhas de comando, referentes a esses componentes, sero acrescentadas automaticamente no Editor de Cdigo. A tecla F12 faz a alternncia entre o Formulrio e o Editor de Cdigo.
    

Você também pode gostar