Você está na página 1de 21

Universidade Federal de Viosa

Departamento de Engenharia Agrcola

Free Pascal Lazarus


Ambiente Windows

ENG 390
Prof. Evandro de Castro Melo, DS Eng Alan Goyat Neves

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.

Linguagem de programao FPL (Free Pascal LAZARUS)

Melo & Neves 2

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.

2.2 Baixando o Lazarus na Internet


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.

Linguagem de programao FPL (Free Pascal LAZARUS)

Melo & Neves 3

2.3 Modificando o idioma do Lazarus


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 Linguagem de programao FPL (Free Pascal LAZARUS) Melo & Neves 4

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.

2.4 O Editor
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 Linguagem de programao FPL (Free Pascal LAZARUS) Melo & Neves 5

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

Linguagem de programao FPL (Free Pascal LAZARUS)

Melo & Neves 6

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

2.5 O Menu Principal


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

Linguagem de programao FPL (Free Pascal LAZARUS)

Melo & Neves 7

2.6 A Barra de Botes


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

2.7 A Paleta de Componentes


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

Linguagem de programao FPL (Free Pascal LAZARUS)

Melo & Neves 8

Figura 11 Detalhamento das abas da paleta de componentes.

Linguagem de programao FPL (Free Pascal LAZARUS)

Melo & Neves 9

2.8 Como usar a Paleta


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.

2.9 Os arquivos do Lazarus


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 programa 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. ppas.bat: Arquivo que contm um script para criar o executvel. Se a compilao tiver sucesso, este arquivo removido pelo compilador.
Linguagem de programao FPL (Free Pascal LAZARUS) Melo & Neves 10

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

Linguagem de programao FPL (Free Pascal LAZARUS)

Melo & Neves 11

3. CONCEITOS SOBRE O FREE PASCAL LAZARUS (FPL)


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.

3.1 Tipos de dados, variveis e constantes


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.

Linguagem de programao FPL (Free Pascal LAZARUS)

Melo & Neves 12

3.2 Tipos de dados na linguagem FPL


A base ou tipos simples do FPL so os tipos da linguagem Delphi: Ordinais Define um conjunto de valores, onde cada valor desse conjunto, com exceo 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. Tipo Byte Shortint Smallint Word Integer Cardinal Longint Longword Int64 QWord Faixa 0 .. 255 -128 .. 127 -32768 .. 32767 0 .. 65535 smallint ou longint longword -2147483648 .. 2147483647 0 .. 4294967295 -9223372036854775808 .. 9223372036854775807 0 .. 18446744073709551615 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 nmero, uma letra ou smbolos especiais) Boolean Este tipo de dado o responsvel pela representao de valores lgicos e ocupa 1 byte de memria. Pode ser dois valores: True ou False. Enumerated Um tipo de dado enumerado define um conjunto ordenador de valores simplesmente listando identificadores que os denotem. Type Direction = ( North, East, South, West );

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 Faixa depende da plataforma 1.5E-45 .. 3.4E38 5.0E-324 .. 1.7E308 1.9E-4932 .. 1.1E4932 -2E64+1 .. 2E63-1 -922337203685477.5808 Dgitos significativos ??? 7-8 15-16 19-20 19-20 922337203685477.5807 Tamanho 4 ou 8 4 8 10 8 8

Linguagem de programao FPL (Free Pascal LAZARUS)

Melo & Neves 13

3.3 Estrutura Bsica de um Programa em FPL


Para se declarar variveis, constantes, procedures e functions de maneira correta em qualquer linguagem, necessrio 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
Melo & Neves 14

Linguagem de programao FPL (Free Pascal LAZARUS)

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.

3.4 Estrutura Bsica de um Arquivo de Projeto em FPL


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

Linguagem de programao FPL (Free Pascal LAZARUS)

Melo & Neves 15

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.

3.5 Funes (Functions) e Procedimentos (Procedures)


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 a seguinte sintaxe: Function NomeDaFuno( Parmetro1: Tipo; ParmetroN: Tipo): Tipo do valor de retorno; var {declarao de variveis locais funo quando necessrias} begin {bloco de instrues} end; 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 {bloco de instrues} end;

3.6 Declarando Variveis


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 (auxiliar conta ou auxiliar-conta)
Linguagem de programao FPL (Free Pascal LAZARUS) Melo & Neves 16

O FPL no distingue letra maiscula de minscula no nome da varivel; No se podem usar palavras reservadas da linguagem como nome de varivel.

3.7 Entrada e Sada de Dados Numricos


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, devem, 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.

Linguagem de programao FPL (Free Pascal LAZARUS)

Melo & Neves 17

4. O PRIMEIRO PROGRAMA EM FPL


Como exemplo de aplicao, para ser o primeiro programa executado no ambiente Lazarus, ser um projeto que calcule a rea de um tringulo. Portanto, a interface com o usurio dever solicitar-lhe os dados numricos referentes altura e base desse tringulo. Os seguintes passos devem ser seguidos:

4.1 Criando o projeto


Quando se acessa o ambiente FPL, parte da seguinte tela dever aparecer:

Figura 13 Tela parcial de abertura do ambiente FPL

Nesta tela, j est disponvel para o programador um formulrio (Form1) do projeto (Project1), onde se montar a interface com o usurio. Ento, o passo seguinte, mesmo sem quaisquer modificaes no formulrio, deve-se gravar o projeto no computador. Todos os projetos, formulrios e unidades devero ser gravados no disco em pastas prprias, no se aceitando os lugares sugeridos pelo ambiente FPL. Caso o usurio compile o programa sem antes grav-lo, uma mensagem de erro ocorrer, de acordo com a figura abaixo:

Linguagem de programao FPL (Free Pascal LAZARUS)

Melo & Neves 18

Antes de gravar, deve-se criar o diretrio do projeto, para depois acessar Arquivo Salvar Tudo e nomear Unit1.pas e depois Projetc1.lpi. Estes arquivos no podem ter nomes iguais. Se por algum motivo de configurao do ambiente FPL, no aparecer a tela mostrada na Figura 13, o projeto ser criado acessando-se Arquivo Novo Projeto / Aplicao, de acordo com a Figura 14:

Figura 14 Janela para criao de um novo Projeto/Aplicao.

Realizada uma das alternativas descritas anteriormente, ter-se- criado o projeto desejado. A partir desse ponto, passa-se montagem da interface com o usurio, fazendo-se incluses de componentes ou objetos no formulrio disponibilizado no ambiente FPL.

4.2 Escrevendo no formulrio


Para atender ao que se solicita como Primeiro Programa, clculo de rea de tringulo, no ambiente FPL, prope-se a seguinte interface com o usurio:

Linguagem de programao FPL (Free Pascal LAZARUS)

Melo & Neves 19

Figura 15 Interface com o usurio do Primeiro Programa

Sero inseridos no Form1 os seguintes componentes presentes na Paleta de Componentes Standard:

Dois componentes Label - sendo um para Altura e outro para Base; Trs componentes Edit - sendo um para o valor da altura, um para o valor da Base e outro para exibir o resultado do clculo da rea; Dois componentes Button - sendo um para calcular a rea e outro para permitir sair do programa. Para colocar tais componentes no formulrio, deve-se clicar na Paleta de Componentes (Standard neste caso), no componente desejado e depois clicar no formulrio. As propriedades desses componentes so modificadas no Inspetor de Objetos, desde que o componente esteja selecionado no formulrio. O texto relativo a um componente, que aparece no formulrio, modificado no Inspetor de Objetos na propriedade Caption. As variveis vinculadas aos componentes podem ter seus nomes alterados no cdigo-fonte pela propriedade Name.

Linguagem de programao FPL (Free Pascal LAZARUS)

Melo & Neves 20

4.3 Escrevendo o cdigo-fonte

Linguagem de programao FPL (Free Pascal LAZARUS)

Melo & Neves 21

Você também pode gostar