SlideShare uma empresa Scribd logo
1 de 61
Baixar para ler offline
Universidade Federal de Viçosa
Departamento de Engenharia Agrícola
Free Pascal Lazarus
Ambiente Windows
ENG 390
Prof. Evandro de Castro Melo, DS
26 de novembro de 2012
http://wiki.lazarus.freepascal.org/Main_Page/pt
Free Pascal LAZARUS Melo (2012) 2
1. INTRODUÇÃO
O Projeto Lazarus surgiu em 1 de fevereiro de 1999 com três pessoas: Cliff Baeseman,
Shane Miller e Michael A. Hess. Em agosto de 1999 Marc Weustink se junta ao grupo
seguido por Mattias Gaertner, que aderiu em setembro de 2001. O Projeto Lazarus, desde
então, só vem crescendo cada vez mais, sempre incorporando novos componentes e recursos.
O Lazarus é uma alternativa de código 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á décadas são
utilizados no meio acadêmico.
O Free Pascal (FPC) é um compilador de código fonte aberto com duas notáveis
características: um grau elevado de compatibilidade com Delphi e com capacidade para ser
executado em Windows, Mac e Linux.
Free Pascal LAZARUS Melo (2012) 3
2. AMBIENTE LAZARUS
2.1 Prefácio
Lazarus é um ambiente (E) integrado (I) de desenvolvimento (D) - IDE Lazarus -
gratuito e de código aberto para o compilador Free Pascal. O IDE é uma parte importante
para se trabalhar com o Lazarus: é ele quem ajuda a editar os códigos, gerenciar os arquivos e
montar os projetos.
O ambiente Lazarus é estável e rico para criação de aplicações gráficas e de console
(antigo DOS dentro do Windows). Ele atualmente funciona nos sistemas operacionais: Linux,
FreeBSD, Win32 e Win64. Possui um editor de código e um ambiente visual para criação de
formulários, acompanhado de um gerenciador de pacotes, depurador de erros e uma completa
integração da GUI com o compilador Free Pascal.
2.2 Baixando o Lazarus da Internet
O Lazarus pode ser obtido desde o sitio http://www.lazarus.freepascal.org/ na opção
Downloads como mostrado na Figura 1.
Figura 1 – Imagem parcial do sítio oficial do Projeto Lazarus na Internet
Existem duas versões para o Windows: 32 e 64 bits. Se o PC, onde for instalado o
programa, possuir processador de dois núcleos (AMD ou Intel) e 4 Gb de memória RAM,
pode-se optar pela versão 64 bits.
Free Pascal LAZARUS Melo (2012) 4
A versão utilizada nesta apostila foi a Lazarus-1.0.2-fpc-2.6.0 para o sistema
operacional Windows 32 bits.
2.3 Modificando o idioma do Lazarus
Depois de instalar o Lazarus no computador, roda-se o programa. Então irão aparecer
na área de trabalho do computador uma série 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 português, deve-se acessar a aba Tools e
depois Options, como mostrado na Figura 3.
Figura 3 - Mudando de idioma
Então aparecerá a seguinte tela, onde se escolhe a opção Desktop, optando pelo
português do Brasil, como mostra a Figura 4, finalizando com o botão OK.
Free Pascal LAZARUS Melo (2012) 5
Figura 4 – Parte da Janela para modificar o idioma
Para que a modificação tenha efeito é preciso reiniciar o Lazarus. A interface do
programa ficará como mostrada na Figura 5:
Figura 5 – Parte da janela do ambiente Lazarus no idioma português.
2.4 O Editor
Quando se ativa o ambiente de programação Lazarus pela primeira vez, uma série de
janelas flutuantes, separadas entre si, irão aparecer no desktop do computador.
A primeira, localizada no alto do desktop, é chamada de Lazarus IDE v0.9.30 -
project1 (que será modificada para refletir a mudança no nome do projeto em que se está
trabalhando). Esta é a principal janela de controle de projetos e contém o Menu Principal, a
Barra de Botões 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,
Exibir, dentre outras. E abaixo desta, à esquerda, tem-se a Barra de Botões, que são 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 Código. Pode-se ter outra janela menor, indicada como
Free Pascal LAZARUS Melo (2012) 6
Form1, sobre a janela do editor de código. Se esta janela não é visível imediatamente,
aciona-se a tecla F12 e ela aparecerá. Essa tecla alterna entre o Editor de Código e o Editor
de Formulário. Nesta janela de formulário, será construída a interface gráfica da aplicação
desejada. Esta janela somente funciona se estiver editando um formulário.
Figura 7 – Editor de Códigos e Inspetor de Objetos no ambiente Lazarus
Quando se inicia um novo projeto (ou quando se ativa o Lazarus), por padrão, irá ser
construído um formulário 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 contém os usuais botões de janelas do Windows: Minimizar, Maximizar e Fechar. Se
clicar com o mouse dentro desta caixa, ver-se-ão as propriedades deste formulário no Inspetor
de Objeto, no lado esquerdo do desktop. Caso o Inspetor de Objetos não esteja visível, deve-
se pressionar a tecla F11.
Outras janelas que podem ser visíveis durante o trabalho: o Inspetor de Projeto, que
contém detalhadamente os arquivos incluídos no projeto em que se está trabalhando. A janela
Mensagens, que exibe as mensagens do compilador, erros ou relatórios de progresso no
projeto.
Free Pascal LAZARUS Melo (2012) 7
2.5 O Menu Principal
O Menu Principal contém 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
Free Pascal LAZARUS Melo (2012) 8
2.6 A Barra de Botões
Uma pequena barra de ferramentas à esquerda da janela principal do editor, logo
abaixo do Menu Principal e à esquerda da Paleta de Componentes, contém um conjunto de
botões que repetem as opções que são frequentemente mais usadas no menu principal. Ver
Figura 10.
Figura 10 – Barra de Botões do Ambiente Lazarus
2.7 A Paleta de Componentes
É uma barra de ferramentas organizada em abas com um grande número 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 título inicia-se com 'T', que significa Type, ou mais
precisamente Class do componente. Quando um componente é selecionado para inclusão em
um Form, a Class é adicionada à seção Type da interface da Unit (geralmente como parte de
TForm1).
Qualquer método projetado para ser usado pelo Form ou componentes (isto é,
Procedures ou Functions) serão colocados após o item Implementation da unidade.
A seguir estão relacionados os nove componentes da paleta.
1
2
Free Pascal LAZARUS Melo (2012) 9
3
4
5
6
7
8
9
Figura 11 – Detalhamento das abas da paleta de componentes.
Free Pascal LAZARUS Melo (2012) 10
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 posição 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 aparência 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 irão aparecer na Paleta de
Componentes. Esses componentes podem ser selecionados e usados nos Forms da mesma
forma que os componentes padrões.
2.9 Os arquivos do Lazarus
Quando se salva um projeto no ambiente Lazarus, como mínimo, dois arquivos
básicos serão gravados no disco, cujas extensões são *.pas (arquivo da Unit) e *.lpr (arquivo
do Project). Mais arquivos serão gravados, mas apenas estes dois requerem que sejam
nomeados pelo usuário. É importante ressaltar que esses dois arquivos devem ter nomes
diferentes: isto é uma exigência 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 são iguais. Depois
de modificado o nome da unidade para testeu.pas, os seguintes arquivos serão gerados:
teste.exe: O programa principal em formato binário executável.
teste.lpi: Arquivo principal do projeto Lazarus (Lazarus Project Information), que equivale
no Delphi à extensão *.dpr. É armazenado no formato XML.
teste.lpr: Arquivo fonte do programa principal no formato Pascal.
testeu.lfm: Desenho do formulário. O Lazarus utilizará este arquivo para gerar um arquivo
fonte, que está incluído na seção de inicio da Unit testeu.pas. Equivale no Delphi à extensão
*.dfm.
teste.lrs: Este é o arquivo fonte gerado. Note que não é um arquivo fonte de Windows.
testeu.pas: Arquivo da Unit que contém o código-fonte do formulário (unidade).
teste.ppu: Arquivo da Unit compilada.
ppas.bat: Arquivo que contém um script para criar o executável. Se a compilação tiver
sucesso, este arquivo é removido pelo compilador.
Free Pascal LAZARUS Melo (2012) 11
Programas escritos em Delphi (unidades, projetos e pacotes) podem ser convertidos
para o ambiente Lazarus, empregando-se a opção Ferramentas do Menu Principal, segundo
a Figura 12, onde o usuário irá optar pela conversão que lhe for a mais adequada.
Figura 12 – Opção Ferramentas do Menu Principal com as opções de conversão de arquivos tipo
Delphi para tipo Lazarus
Free Pascal LAZARUS Melo (2012) 12
3. CONCEITOS SOBRE O FREE PASCAL LAZARUS (FPL)
O Lazarus é um sistema de desenvolvimento de código aberto que adiciona um Ambiente
Integrado de Desenvolvimento (IDE) ao compilador Free Pascal, onde está incluído um
editor de códigos, um editor visual de formulários, uma biblioteca de componentes (LCL),
altamente compatível com a biblioteca de componentes visuais do Delphi (VCL).
O Free Pascal tem compatibilidade com o Delphi incluindo suporte para programação em
linguagem Object Pascal, além 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 também possui unidades como Windows, ShellAPI,
BaseUnix, Unix e DynLibs para acessar capacidades específicas do sistema operacional local.
Estas unidades são a parte inicial da biblioteca de tempo de execução ou run-time library
(RTL) do Free Pascal.
Semelhantemente ao Delphi, o Free Pascal e o Lazarus são ferramentas de programação
de uso geral, significando que se pode desenvolver com eles uma variedade de programas, ou
seja, aplicações de console, bibliotecas dinâmicas e aplicações com interface gráficas (GUI).
Dado estas explicações, o ambiente Lazarus de programação também pode ser chamado
de linguagem de programação FPL, isto é, Free Pascal Lazarus.
3.1 Tipos de dados, variáveis e constantes
O objetivo no desenvolvimento de um programa é que o mesmo processe uma série de
comandos e dados, que podem representar nomes de pessoas, datas, valores monetários ou
equações matemáticas.
Na linguagem FPL, as variáveis e as constantes precisam ser declaradas antes de
serem usadas. Quando se declara uma variável ou uma constante, há a necessidade de se
especificar seu tipo, ou seja, o conjunto de valores que ela pode armazenar na memória do
computador.
Free Pascal LAZARUS Melo (2012) 13
3.2 Tipos de dados na linguagem FPL
A base ou tipos simples do FPL são os tipos da linguagem Delphi:
 Ordinais – Define um conjunto de valores, onde cada valor desse conjunto, com exceção
do primeiro e do último, tem um valor anterior e posterior. Os tipos ordinais na
linguagem FPL são: Integer, Character, Boolean e Enumerated.
 Integer – Representa um subconjunto de números inteiros. Segue na tabela os limites e
formatos para armazenamento.
Tipo Faixa Tamanho em bytes
Byte 0 .. 255 1
Shortint -128 .. 127 1
Smallint -32768 .. 32767 2
Word 0 .. 65535 2
Integer smallint ou longint tamanho 2 ou 4
Cardinal longword 4
Longint -2147483648 .. 2147483647 4
Longword 0 .. 4294967295 4
Int64 -9223372036854775808 .. 9223372036854775807 8
QWord 0 .. 18446744073709551615 8
 Caractere – Um caractere pode ser qualquer símbolo que possa ser representado (um
número, uma letra ou símbolos especiais)
 Boolean – Este tipo de dado é o responsável pela representação de valores lógicos e
ocupa 1 byte de memória. 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 números que podem ser
representados com notação de ponto flutuante.
Tipo Faixa Dígitos significativos Tamanho
Real depende da plataforma ??? 4 ou 8
Single 1.5E-45 .. 3.4E38 7-8 4
Double 5.0E-324 .. 1.7E308 15-16 8
Extended 1.9E-4932 .. 1.1E4932 19-20 10
Comp -2E64+1 .. 2E63-1 19-20 8
Currency -922337203685477.5808 922337203685477.5807 8
Free Pascal LAZARUS Melo (2012) 14
3.3 Estruturas Básicas de um Programa em FPL
Para se declarar variáveis, constantes, procedures e functions de maneira correta em
qualquer linguagem, são necessários o conhecimento de sua estrutura e a identificação dos
pontos onde elas podem ser declaradas.
Estrutura básica de uma Unit
Uma Unit é, na maioria das vezes, associada a um formulário (Form) que contém seu
código, ou seja, as declarações de variáveis, os componentes utilizados e as rotinas definidas.
É possível verificar que, à medida que componentes são inseridos, são também adicionados
automaticamente linhas de código na Unit relacionada. A Unit tem áreas predefinidas e que
devem ser respeitadas para que a programação tenha êxito. São elas:
 unit xxxx – Representa o nome físico do arquivo onde está o código da referida unidade.
Por meio desse nome, units podem usar outras units.
 interface – A seção interface começa com a palavra reservada interface e termina no
inicio da seção implementation. Nessa seção, são declarados constantes (const), tipos
(types), variáveis (var), procedures e functions, que estão disponíveis para outras units ou
outros programas. Essas declarações são chamadas de públicas (public), indicando que as
mesmas podem ser usadas por quaisquer outras unidades dentro do mesmo programa. A
Free Pascal LAZARUS Melo (2012) 15
declaração de procedure e function, na seção interface, refere-se apenas ao cabeçalho das
mesmas. O seu conteúdo será descrito na seção implememntation.
 uses – É a lista de outras units que estão ligadas ao programa atual.
 type – Esta declaração especifica um identificador que denotará um novo tipo que,
normalmente, não é oferecido pelo FPL.
 var - Nessa área, são declaradas todas as variáveis que podem ser acessadas em qualquer
lugar do programa, portanto, consideradas públicas.
 implementation - Esta seção começa com a palavra reservada implementation e termina
em initialization. Neste local estão descritas todas as procedures e functions do programa.
 {$mode objfpc}{$H+} e {$R *.lfm} – estes códigos são diretivas de compilação, que
têm a função de passar informações ao compilador no instante de se criar o arquivo
executável do aplicativo.
3.4 Estrutura Básica de um Arquivo de Projeto em FPL
O arquivo de projeto também é conhecido como Lazarus Project (LPR). O
LPR tem os seguintes pontos em sua estrutura:
Estrutura básica de um arquivo de projeto
Free Pascal LAZARUS Melo (2012) 16
 begin/end. – estas duas palavras reservadas indicam inicio e fim do projeto.
 RequireDerivedFormResource := True; -
 Application.Initialize; – Inicitialize é o primeiro método chamado pelo arquivo-fonte do
projeto que, por padrão, simplesmente inicializa a aplicação.
 Application.CreateForm(TForm1, Form1); – cria um objeto formulário da classe
TForm1. Aqui são listados todos os formulários criados pela aplicação.
 Application.Run; - quando um projeto é criado, o IDE insere automaticamente a linha de
código com o método Application.Run, responsável pela execução da aplicação.
3.5 Funções (Functions) e Procedimentos (Procedures)
Funções são rotinas que recebem valores, passados como parâmetros, a partir da
unidade ou fora dela, e retornam apenas um valor como resultado. As funções são definidas
obedecendo à seguinte sintaxe:
Function NomeDaFunção (Parâmetro1: Tipo; ParâmetroN: Tipo): Tipo do valor de retorno;
var {declaração de variáveis locais à função quando necessárias}
begin
{bloco de instruções}
end;
Procedimentos são semelhantes às funções, porém não retornam um valor como parte
de sua definição. Os procedimentos obedecem à seguinte sintaxe:
Procedure NomeDoProcedimento (Parâmetro1: Tipo; ParâmetroN : Tipo);
var {declaração de variáveis locais á função quando necessárias}
begin
{bloco de instruções}
end;
Free Pascal LAZARUS Melo (2012) 17
3.6 Declarando Variáveis
Quando se atribui nomes às variáveis, faz-se necessário seguir algumas regras
genéricas às linguagens:
 O primeiro caractere deve ser uma letra;
 Não se pode usar espaço em branco e nem hífen para declaração de variável;
 O FPL não distingue letra maiúscula de minúscula no nome da variável;
 Não se podem usar palavras reservadas da linguagem como nome de variável.
3.7 Entrada e Saída de Dados Numéricos
A entrada de dados em ambientes visuais normalmente se dá através de componentes
(objetos visuais), porém as linguagens também possuem funções responsáveis pela entrada de
dados a partir de “janelas de diálogo com o usuário”.
É importante frisar que dados numéricos são apresentados sob o tipo caracteres
(string) em um formulário do ambiente Lazarus. Assim sendo, em aplicações de engenharia,
estes dados numéricos, antes de serem repassados ao programa, devem ser transformados de
caracteres para numérico. E o contrário, quando forem apresentados no formulário, deve-se,
antes, serem transformados de numéricos para caracteres. As funções do FPL que fazem
essas tarefas são:
StrToFloat e StrToInt – Transforma de caractere (string) para numérico (real e inteiro
respectivamente).
FloatToStr e IntToStr - Transforma de numérico (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.
Free Pascal LAZARUS Melo (2012) 18
4. O PRIMEIRO PROGRAMA EM FREE PASCAL LAZARUS
Como exemplo de aplicação, o primeiro programa, executado no ambiente FPL, será um
projeto que calcule a soma de dois números. Portanto, o programa deverá solicitar ao usuário
os dois números e apresentar na tela o resultado da soma. Neste exemplo, o programa será
executado em ambiente console ( ), ou seja, fora do ambiente gráfico do
Windows.
As instruções do algoritmo serão:
Algoritmo Soma
Inicio
Escrever (‘Digite o primeiro número’)
Ler (num1)
Escrever (‘Digite o segundo número’)
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 número’);
readln (num1);
writeln (‘Digite o segundo número’);
readln (num2);
soma := num1 + num2;
writeln (‘O resultado é ’, soma);
end.
Free Pascal LAZARUS Melo (2012) 19
4.1 Criando um projeto FPL em ambiente console
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:
Figura 13 – Janelas do FPL para criar um projeto
Irá aparecer a seguinte janela, à qual se deve responder com um Não.
Figura 14 –Janela do FPL que aparece após a solicitação de criação de um projeto
Em seguida aparecerá a janela com o Editor de Código, onde se escreverão os comandos
do primeiro programa como indicado nas Figuras 15 e 16. As variáveis (var) deverão ser
descritas acima da palavra begin e o restante do programa, após 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 não
foi gravado no disco.
Free Pascal LAZARUS Melo (2012) 20
Figura 15 – Editor de código do FPL
Transcrevendo o programa no Editor de Código, o mesmo ficará assim:
Figura 16 – Janela do Editor de Código do FPL com o programa proprosto já transcrito
Free Pascal LAZARUS Melo (2012) 21
Para rodar o programa aciona-se a tecla Executar, que se parece a um triângulo verde
como mostrado na Figura 17.
Figura 17 - Botão Executar em destaque
E o resultado será apresentado na seguinte janela, de acordo com a Figura 18:
Figura 18 – Janela com os resultados do programa proposto.
Deve-se ressaltar que, ao final do programa original, foram acrescentadas mais duas
linhas. A função das mesmas é permitir a visualização do resultado do programa na janela do
prompt. Sem as mesmas, o programa seria executado e a sua janela será fechada
imediatamente, sem que o usuário pudesse ver os resultados.
Free Pascal LAZARUS Melo (2012) 22
5. O PRIMEIRO PROGRAMA EM FPL EM AMBIENTE WINDOWS
5.1 Criando o formulário
Como o programa proposto anteriormente foi desenvolvido para ambiente console, o
mesmo não apresenta as tradicionais janelas do Windows, que tornam a interação com
usuário mais agradável e bonita. Para que isto aconteça é preciso montar o projeto de outra
maneira. Primeiramente deve-se estruturar o formato da janela, através da qual o programa
irá interagir com o usuário. O programa deverá ser escrito em uma janela do FPL chamada de
formulário ou Form.
Quando se acessa o ambiente FPL, deverá aparecer uma tela, em que parte dela, está
representada na Figura 19.
Figura 19 – Tela parcial de abertura do ambiente FPL
Nesta tela, já está disponível, para o programador, um formulário Form1 do projeto
Project1, onde se montará a interface com o usuário. Tem-se à frente, a janela Form1 e, por
detrás, a janela Editor de Código. À medida que componentes do FPL são adicionados ao
Fom1, instruções ou linhas de comando, referentes a esses componentes, serão acrescentadas
automaticamente no Editor de Código. A tecla F12 faz a alternância entre o Formulário e o
Editor de Código.
Free Pascal LAZARUS Melo (2012) 23
Como exemplo de aplicação, para ser o primeiro programa FPL executado no ambiente
gráfico do Windows, desenvolver-se-á um projeto que calcule a área de um triângulo.
Portanto, a interface com o usuário deverá solicitar-lhe os dados numéricos referentes à altura
e à base desse triângulo.
Recomenda-se, como boa norma de programação em FPL, antes de iniciar qualquer
programa ou projeto para ambiente Windows, criar um diretório específico. Então, o passo
seguinte é gravar o projeto no disco. Cada projeto, com seus formulários e unidades, deverá
ser gravado no disco em pasta própria, sendo recomendado ainda não se aceitar os diretórios
sugeridos pelo ambiente FPL. Os arquivos de unidade e de projeto não podem ter nomes
iguais. Sugerem-se os nomes u_triangulo.pas (unidade) e p_triangulo.lpr (projeto).
O projeto será criado acessando-se Arquivo – Novo / Projeto / Aplicação, de acordo
com a Figura 20:
Figura 20 – Janela para criação de um novo Projeto/Aplicação.
A partir desse ponto, passa-se à montagem da interface com o usuário, fazendo-se
inclusões de componentes ou objetos no formulário, disponibilizados no ambiente FPL.
5.2 Escrevendo no formulário
Para atender ao que se solicita como Primeiro Programa, cálculo de área de triângulo,
no ambiente FPL, propõe-se a seguinte interface com o usuário:
Free Pascal LAZARUS Melo (2012) 24
Figura 21 – Interface com o usuário do Primeiro Programa
Serão inseridos no Form1 os seguintes componentes presentes na Paleta de
Componentes Standard:
Dois componentes Label – funcionam como rótulos, sendo um para Altura e outro
para Base;
Três componentes Edit – funcionam como locais para entrada e saída de dados,
sendo um para o valor da Altura, um para o valor da Base e outro para exibir o
resultado do cálculo da Área;
Dois componentes Button – são botões que, quando pressionados, executam uma
ação, sendo um para calcular a área e outro para permitir sair do programa.
Para colocar tais componentes no formulário, deve-se clicar na Paleta de
Componentes (Standard neste caso), no componente desejado e depois clicar no formulário.
As propriedades desses componentes são modificadas no Inspetor de Objetos, desde que o
componente esteja selecionado no formulário.
O texto relativo a um componente, que aparece no formulário, é modificado no
Inspetor de Objetos na propriedade Caption. As variáveis vinculadas aos componentes
podem ter seus nomes alterados no código-fonte pela propriedade Name.
Free Pascal LAZARUS Melo (2012) 25
Figura 22 – Inspetor de Objetos mostrando a propriedade Caption de três componentes
5.3 Escrevendo o código-fonte
De acordo com o formulário Form1 proposto na Figura 21, o usuário deve fornecer
dois valores das dimensões do triângulo e depois acionar o botão ÁREA. Os componentes
Edit são como caixas que recebem os dados digitados na tela (Edit1, Edit2) ou que
apresentam resultados do programa (Edit3). Para terminar o programa, o usuário deverá
acionar o botão SAIR.
Os dois componentes Button1 e Button2 estão vinculados a procedimentos específicos
dentro do programa ou projeto, ou seja, quando se faz um duplo clique no botão, dentro do
formulário, aparecerá no Editor de Código um procedimento (Procedure) onde devem ser
escritas todas as ações ou comandos referentes ao componente Button. Observa-se na Figura
23 que cada Button tem um procedimento associado ao mesmo.
Figura 23 – Procedures vinculadas aos componentes Button
Free Pascal LAZARUS Melo (2012) 26
É importante verificar que o nome dos procedimentos, inseridos automaticamente
pelo Editor de Códigos (Figura 23), leva o nome do objeto a que ela pertence. O primeiro
nome (TForm1) é o objeto principal (formulário - form), separado pelo operador ponto,
seguido do nome do objeto inserido, acrescido de uma palavra referente à ação (Button1Click
ou Button2Click), que no caso, é click, referindo-se a ação de clicar no botão. Para saber a
ação referente ao procedimento, deve-se ler o seu o nome de trás para frente: clicar no
botão1 do formulário1 e executar as ações dentro do procedimento. Ou seja, pulsando cada
um desses botões, o programa dispara uma seqüência de comandos contidos no respectivo
procedimento.
No procedimento do botão ÁREA, deverá ser introduzida a palavra var, após a qual
serão definidas duas varáveis para receber os dados digitados na tela do programa,
previamente transformados de caracteres para numérico (StrToFloat, ver item 3.7) e uma
terceira variável para receber o valor calculado da área, que deverá ser transformado de
numérico para caracteres (FloatToStr, ver item 3.7), antes de ser apresentado na mesma tela.
Figura 24 – Procedimento que calcula a área de um triângulo
No procedimento vinculado ao botão SAIR deve-se digitar apenas o comando close
(encerrar o programa), entre o begin e o end (Figura 25).
Figura 25 – Procedimento SAIR
Para alterar o texto que aparece escrito na barra de título do programa, segundo a
Figura 26, deve-se selecionar o Form1 com um clique no seu título e alterar o texto na
propriedade Caption no Inspetor de Objetos (Figura 27).
Free Pascal LAZARUS Melo (2012) 27
Figura 26 – Barra de título do programa ou projeto
Figura 27 – Alterando a propriedade Caption do Form1 no Inspetor de Objetos
Analisando o Editor de Código, depois de pulsar a tecla F12, tem-se a Figura 28,
com parte do código referente ao projeto que se está desenvolvendo. Na referida unidade,
abaixo de { TForm1 } estão relacionados todos os objetos (Button, Edit, Label, procedure)
presentes no formulário Form1 do programa.
Free Pascal LAZARUS Melo (2012) 28
Figura 28 – Editor de código contendo parte da codificação do projeto
Free Pascal LAZARUS Melo (2012) 29
5.4 Escrevendo outro código-fonte para o mesmo projeto
O projeto anterior será alterado para o seguinte layout de interface com o usuário,
como mostrado na Figura 29a.
(a)
(b)
(c)
(d)
Figura 29 – Janelas para projeto que calcula área de triângulo
Free Pascal LAZARUS Melo (2012) 30
Neste novo layout será empregado o componente BitBtn, disponível na Paleta de
Componentes Additional, que está em destaque amarelo na Figura 30.
Figura 30 – Componente BitBtn da Paleta Additional
O código-fonte dos dois procedimentos, referentes aos botões, é apresentado a seguir,
na Figura 31.
Figura 31 – Código-fonte dos procedimentos
O comando InputBox ('Digite a altura', 'Valor:', ' ') abre uma janela para leitura de
dados, cujo título será o primeiro texto entres aspas e o segundo texto entre aspas será exibido
acima da caixa que recebe o dado (Figura 29b e 29c). O terceiro texto entre aspas está em
branco porque não se quer exibir um valor inicial na referida caixa.
Free Pascal LAZARUS Melo (2012) 31
Na tabela a seguir, estão descritas as propriedades dos componentes, presentes no
formulário Form1, que foram alteradas no Inspetor de Objetos:
Objeto
Propriedades no Inspetor de Objetos
BitBtn1
Acionando o mouse no destaque em
amarelo, aparecerá a janela abaixo. A opção Carregar irá buscar no PC
um ícone, não necessariamente a mesma imagem que se vê. Se não
existir no PC, deve-se buscar na Internet. O ícone será apresentado
dentro do botão, conforme a Figura 29a.
Button1
Free Pascal LAZARUS Melo (2012) 32
6. DESENVOLVENDO OUTROS PROGRAMAS EM FPL
6.1 Programa sobre cálculo de idade
O objetivo desse programa é calcular a idade de uma pessoa, informando o ano de
nascimento e o ano atual e assumindo, obrigatoriamente, que o primeiro valor será menor que
o segundo.
A solução do mesmo será o formulário com o seguinte layout, mostrado na Figura 32:
Figura 32 – Formulário do Programa
Os componentes usados no programa estão listados na tabela a seguir, que se
correspondem ao Inspetor de Objetos na Figura 33.
Objeto Name Caption
Form1 Form1 Calculando Idade
Label1 Label1 Ano de Nascimento
Label2 Label2 Ano Atual
Label3 Label3 Idade
Edit1 edNasc
Edit2 edAtual
Edit3 edIdade
BitBtn1 bbCalcular Calcular
Figura 33 – Inspetor de Objetos do Programa 6.1
Free Pascal LAZARUS Melo (2012) 33
O evento vinculado ao botão bbCalcular é o procedimento apresentado na Figura 34.
Figura 34 – Procedimento vinculado ao objeto bbCalcular
6.2 Programa sobre cálculo da idade completa
Este programa irá calcular a idade em anos, meses e dias da pessoa em função da data
de nascimento e da data atual. O layout proposto para o formulário desse programa se
apresenta na Figura 35. O campo Data Atual deverá ser inicializado com a data do sistema
operacional, para que o usuário não tenha que informá-la.
Figura 35 – Formulário proposto para o programa Idade Completa
Free Pascal LAZARUS Melo (2012) 34
Os componentes usados no programa estão listados na tabela abaixo e na Figura 36,
que se corresponde ao Inspetor de Objetos.
Objeto Name Caption
Form1 Form1 Idade Completa
Label1 Label1 Data Atual
Label2 Label2 Data de Nascimento
GroupBox1 GroupBox1 Idade
MaskEdit meNasc VER Figura 37
Label3 Label3 Anos
Label4 Label4 Meses
Label5 Label5 Dias
Edit1 edAnos
Edit2 edAtual
Edit3 edIdade
Button btCalcular Calcular a Idade
Figura 36 – Inspetor de Objetos do Programa 6.2
O componente meNasc receberá a Data de Nascimento do usuário na forma _/_/__,
que é uma máscara, que deve ser informada na Inspetor de Objetos, na Propriedade
MaskEdit, segundo a Figura 37, onde, para cada campo, deve-se digitar #, separado por /, no
campo Entrar Máscara.
Free Pascal LAZARUS Melo (2012) 35
Figura 37 – Informando a máscara para a Data Atual no componente MaskEdit
Os procedimentos vinculados ao formulário do projeto proposto estão na Figura 38, a
seguir:
Figura 38 – Procedimentos do projeto Idade Completa
Free Pascal LAZARUS Melo (2012) 36
A captura da data do sistema, que inicializa o campo edAtual (Data Atual), se realiza
no procedimento TForm1.FormCreate, cujo código é gerado quando se escolhe, no Inspetor
de Objetos, no Evento OnCreate do Form1, a opção FormCreate (Figura 39). Realizada esta
opção, aparecerá no Editor de Códigos, o referido procedimento. Entre o begin e o end
digita-se:
edAtual.text:= DateToStr (Date);
onde Date retorna a data do sistema operacional e DateToStr transforma esse valor em string
para ser apresentado na tela do programa. Já o comando StrToDate reverte a conversão de
string para formato de data. Este evento é usado para atribuir valores iniciais a componentes
de formulário (como este caso), verificar e habilitar (desabilitar) componentes.
Figura 39 – Procedimento de inicialização de componente com o evento OnCreate
Na Figura 38, a variável dias foi definida como variant, que é um tipo genérico, que pode
receber e atribuir qualquer outro tipo. Essa declaração foi utilizada porque o retorno da
subtração entre datas é do tipo Extended.
Free Pascal LAZARUS Melo (2012) 37
6.3 Programa que compara dois números entre si
O usuário deverá informar dois números e, como resultado, obterá uma resposta com
um dos símbolos gráficos <, > ou =. O formulário do projeto está na Figura 40.
Figura 40 – Formulário do projeto que compara dois números entre si.
Os componentes usados no programa estão listados na tabela abaixo, seguido da
Figura 41, que corresponde ao Inspetor de Objetos.
Objeto Name Caption
Form1 Form1 Comparar dois números
Label1 Label1 Data Atual
Label2 Label2 Data de Nascimento
Label3 lbResultado ?
Edit1 edNum1
Edit2 edNum2
Edit3 edIdade
Button btCalcular Comparar
Button btSair SAIR
Figura 41 – Inspetor de Objetos do Programa 6.3
Free Pascal LAZARUS Melo (2012) 38
Os procedimentos vinculados ao formulário do projeto proposto estão descritos a
seguir, bem como o resultado para os números 45 e 100, que aprece depois de acionar o botão
COMPARAR.
Free Pascal LAZARUS Melo (2012) 39
6.4 Programa para ordenar três números
Este projeto tem como objetivo ordenar três valores numéricos informados pelo
usuário, que deverá escolher a opção de ordenação dos mesmos de forma crescente ou
decrescente. O resultado deverá ser apresentado no componente Panel. Na Figura 42 está o
Inspetor de Objetos do projeto. E na Figura 43, o lay-out proposto.
Figura 42 – Inspetor de Objetos do programa 6.4
Figura 43 – Lay-out proposto para o programa 6.4
Free Pascal LAZARUS Melo (2012) 40
Os procedimentos referentes ao programa proposto estão descritos a seguir,
apresentando-se um resultado para os números 45, 300 e 2, que aparecerá depois de
selecionar a Ação desejada, acionando-se depois o botão Ordenar.
Free Pascal LAZARUS Melo (2012) 41
Exercícios Resolvidos
Sobre
FPL
Free Pascal LAZARUS Melo (2012) 42
Exercício 01
Faça um projeto em Lazarus para transformar escalas de temperaturas em °C
e em °F, de acordo com o formulário sugerido.
a. Sugestão para o formulário Form1:
b. Escrevendo o código vinculado aos dois botões:
c. Colocar um botão SAIR e outro botão LIMPAR no formulário do item a.
Free Pascal LAZARUS Melo (2012) 43
Exercício 02
Faça um projeto em Lazarus que leia os três lados de um triângulo e verifique
se realmente eles formam um triângulo. Caso afirmativo, classificar o tipo de
triângulo.
a. Aplicação dos componentes: Label, Edit, Button, Memo
b. Sugestão para o formulário Form1:
TMemo - este componente é semelhante ao Edit, com a diferença de permitir a
editoração de várias linhas. Ele pode ser usado, por exemplo, para mostrar os resultados.
Depois de inserir o componente Memo no formulário Lazarus, pode-se alterar a sua
propriedade Name para Mresultado. A propriedade que controla o que será escrito no
Memo é a Lines. Para iniciar este componente vazio, ou seja, sem nada escrito ao iniciar um
programa, deve-se clicar em (...) ao lado de Lines (TStrings) e apagar o texto contido no
Memo. Além disso, é importante que o usuário não consiga alterar o texto apresentado.
Então, deve-se alterar a propriedade ReadOnly do Memo para True. Finalmente, é
interessante adicionar barras de rolamento ao Memo, alterando a propriedade ScrollBars
para ssBoth.
Free Pascal LAZARUS Melo (2012) 44
c. Escrevendo o código vinculado aos botões do Form1 :
Free Pascal LAZARUS Melo (2012) 45
Exercício 03
Faça um projeto em Lazarus para reajuste salarial:
a. Aplicação dos componentes: Label, Edit, Button, Memo
b. Sugestão para o formulário Form1:
Free Pascal LAZARUS Melo (2012) 46
c. Escrevendo o código vinculado aos botões do Form1 :
Free Pascal LAZARUS Melo (2012) 47
Exercício 04
Aplicar o componente MainMenu ao projeto de transformação de
temperaturas (°C →°F)
a. Aplicação do componente MainMenu
TMainMenu - Este componente permite criar barras de menus contendo vários níveis (como
o menu principal dos aplicativos Windows). Para usá-lo, basta inserir a figura que o representa no
Formulário do seu Projeto, localizando-o, por exemplo, no canto superior direito. Para inserir as
opções necessárias ao seu projeto, clique duas vezes no símbolo do MainMenu. Aparecerá o Editor
de Menu. Para alterar seu nome, de acordo com o menu proposto, deve-se alterar a sua propriedade
Caption no Inspetor de Objetos.
Para criar outros tópicos, pressiona-se o botão direito do mouse em cima do item e
aparecerá a seguinte janela, com as opções para edição de itens no seu menu:
Free Pascal LAZARUS Melo (2012) 48
b. Sugestão para o formulário Form1:
Free Pascal LAZARUS Melo (2012) 49
c. Escrevendo o código vinculado às opções do MainMenu no Form1:
Free Pascal LAZARUS Melo (2012) 50
Exercício 05
Fazer um projeto no ambiente Lazarus para calcular o índice de massa
corporal (IMC) e classificar a pessoa segundo a tabela da O.M.S.:
a. Aplicação do componente RadioGroup:
TRadioGroup - Apresenta vários RadioButtons agrupados, sendo que apenas um deles
poderá ser selecionadp por vez. O RadioGroup conterá as opções do sexo da pessoa. No
Inspetor de Objetos, sua propriedade Name deverá ser alterada para RgSexo, sua
propriedade Caption para Sexo e a propriedade Items deverá conter as opções Feminino e
Masculino (uma em cada linha do editor de itens). Cada opção conterá um índice, iniciando-
se do zero. Quando o sexo for selecionado, o valor de seu índice será atribuído à
propriedade Itemindex do RgSexo. O programa deve ser iniciado com uma opção já
selecionada. Para tal, basta atribuir à propriedade Itemindex do Rgsexo o valor 0 (índice da
primeira opção). Quando o usuário alterar a seleção a propriedade ItemIndex será
modificada automaticamente.
b. Sugestão para o formulário Form1:
Free Pascal LAZARUS Melo (2012) 51
c. Escrevendo o código vinculado às opções no Form1:
Free Pascal LAZARUS Melo (2012) 52
Exercício 06
Fazer um projeto em Lazarus que calcula a Média das Provas de uma
disciplina em que não se conhece de antemão o número de notas.
a. Uso do componente InputBox (ver item 5.4)
b. Sugestão para o formulário Form1:
Free Pascal LAZARUS Melo (2012) 53
c. Escrevendo o código vinculado ao Form1:
Free Pascal LAZARUS Melo (2012) 54
Exercício 07
Queda de pressão em camada de grãos – Equação de Shedd – Usando
esta equação, fazer um projeto em Lazarus com opção para arroz, milho, soja
e trigo. Os dados de entrada são os parâmetros Q e hg.
a. Aplicação do comando CASE:
b. Sugestão para o formulário Form1
Free Pascal LAZARUS Melo (2012) 55
c. Escrevendo o código vinculado ao Form1:
Free Pascal LAZARUS Melo (2012) 56
Exercício 08
Faça um projeto em Lazarus para resolver o seguinte problema: têm-se
duas cidades A e B com populações iniciais diferentes e taxas de crescimento
também diferentes. A cidade A tem menor população inicial que B, porém
uma taxa de crescimento percentual ao ano maior que B. Então, calcule o
tempo para a população de A ultrapassar a população da cidade B.
a. Aplicação do comando WHILE ... DO.
b. Sugestão para o formulário Form1
c. Escrevendo o código em Portugol. Transcreva-o para Lazarus, de acordo com
Form1 acima.
Free Pascal LAZARUS Melo (2012) 57
Exercício 09
Acrescente ao projeto anterior, o gráfico que mostra a evolução do
crescimento de ambas as populações.
Free Pascal LAZARUS Melo (2012) 58
Free Pascal LAZARUS Melo (2012) 59
Free Pascal LAZARUS Melo (2012) 60
Exercício 10
Fazer um projeto em Lazarus para calcular a potência de um ventilador
em sistemas de secagem de grãos.
a. Aplicação do conceito de ARRANJO unidimensional, no caso VETOR: Utilizar o
mesmo Form do Exercício 8, modificando apenas o seu código. Os
parâmetros a e b, na equação de perda de carga serão agora vetores, cujos
índices se referem ao tipo de grão, de acordo com a seleção de entrada em
RgTipo.ItemIndex.
Entrada de Dados Cálculos
b. Sugestão para o formulário Form1
Free Pascal LAZARUS Melo (2012) 61
c. Escrevendo o código em Portugol e no ambiente Lazarus, de acordo com
Form1 sugerido

Mais conteúdo relacionado

Mais procurados

Funções R-statistic
Funções R-statisticFunções R-statistic
Funções R-statisticErnani Vilela
 
Remover virus que transforma pastas em atalhos
Remover virus que transforma pastas em atalhosRemover virus que transforma pastas em atalhos
Remover virus que transforma pastas em atalhosMichael Santos
 
6 sistema operativo em ambiente gráfico
6 sistema operativo em ambiente gráfico6 sistema operativo em ambiente gráfico
6 sistema operativo em ambiente gráficoSandra Minhós
 
5 sistema operativo em ambiente gráfico
5 sistema operativo em ambiente gráfico5 sistema operativo em ambiente gráfico
5 sistema operativo em ambiente gráficoSandra Minhós
 
Apostila Windows Xp
Apostila Windows XpApostila Windows Xp
Apostila Windows Xpeecejar
 
Conceitos básicos de sistema operacional
Conceitos básicos de sistema operacionalConceitos básicos de sistema operacional
Conceitos básicos de sistema operacionalArthur Farias
 
Sistemas Operacionais e Windows 7
Sistemas Operacionais e Windows 7Sistemas Operacionais e Windows 7
Sistemas Operacionais e Windows 7TntNitro
 
Construindo aplicações com netbeans
Construindo aplicações com netbeansConstruindo aplicações com netbeans
Construindo aplicações com netbeansSliedesharessbarbosa
 
1 ana duarte_2_ana_marques_sistemas operativos
1 ana duarte_2_ana_marques_sistemas operativos1 ana duarte_2_ana_marques_sistemas operativos
1 ana duarte_2_ana_marques_sistemas operativosywriteen
 

Mais procurados (15)

sistemas operacionais
sistemas operacionaissistemas operacionais
sistemas operacionais
 
Funções R-statistic
Funções R-statisticFunções R-statistic
Funções R-statistic
 
Remover virus que transforma pastas em atalhos
Remover virus que transforma pastas em atalhosRemover virus que transforma pastas em atalhos
Remover virus que transforma pastas em atalhos
 
6 sistema operativo em ambiente gráfico
6 sistema operativo em ambiente gráfico6 sistema operativo em ambiente gráfico
6 sistema operativo em ambiente gráfico
 
5 sistema operativo em ambiente gráfico
5 sistema operativo em ambiente gráfico5 sistema operativo em ambiente gráfico
5 sistema operativo em ambiente gráfico
 
Apostila Windows Xp
Apostila Windows XpApostila Windows Xp
Apostila Windows Xp
 
Conceitos básicos de sistema operacional
Conceitos básicos de sistema operacionalConceitos básicos de sistema operacional
Conceitos básicos de sistema operacional
 
Apresentação do 1º questionario
Apresentação do 1º questionarioApresentação do 1º questionario
Apresentação do 1º questionario
 
Apostila do windows 7 2011-1
Apostila do windows 7   2011-1Apostila do windows 7   2011-1
Apostila do windows 7 2011-1
 
Win aula2
Win aula2Win aula2
Win aula2
 
Sistemas Operacionais e Windows 7
Sistemas Operacionais e Windows 7Sistemas Operacionais e Windows 7
Sistemas Operacionais e Windows 7
 
Windows XP Professional
Windows XP ProfessionalWindows XP Professional
Windows XP Professional
 
Construindo aplicações com netbeans
Construindo aplicações com netbeansConstruindo aplicações com netbeans
Construindo aplicações com netbeans
 
Windows 7
Windows 7Windows 7
Windows 7
 
1 ana duarte_2_ana_marques_sistemas operativos
1 ana duarte_2_ana_marques_sistemas operativos1 ana duarte_2_ana_marques_sistemas operativos
1 ana duarte_2_ana_marques_sistemas operativos
 

Semelhante a Apostila Lázaro

Introdução a programação para plataforma iOS
Introdução a programação para plataforma iOSIntrodução a programação para plataforma iOS
Introdução a programação para plataforma iOSDevmedia
 
Aula 2 WEB
Aula 2 WEBAula 2 WEB
Aula 2 WEBgsbq
 
Sistema Operacional Windows (versão 11)
Sistema Operacional Windows (versão 11)Sistema Operacional Windows (versão 11)
Sistema Operacional Windows (versão 11)DaviMatos25
 
Sobre Visual studio
Sobre Visual studioSobre Visual studio
Sobre Visual studioleolupe
 
Sistema operativo windows
Sistema operativo windowsSistema operativo windows
Sistema operativo windowsJoseAlvaro2013
 
Apostila delphi rad studio 2007
Apostila delphi   rad studio 2007Apostila delphi   rad studio 2007
Apostila delphi rad studio 2007Guilherme Bruno
 
Resumo de informática para concursos públicos
Resumo de informática para concursos públicosResumo de informática para concursos públicos
Resumo de informática para concursos públicosRogério Cardin
 
Ficha de trabalho_so_4_m4_-_personalizacao_ambiente_grafico_linux
Ficha de trabalho_so_4_m4_-_personalizacao_ambiente_grafico_linuxFicha de trabalho_so_4_m4_-_personalizacao_ambiente_grafico_linux
Ficha de trabalho_so_4_m4_-_personalizacao_ambiente_grafico_linuxomaildoruifilipe
 
Aula de revisão de windows
Aula de revisão de windowsAula de revisão de windows
Aula de revisão de windowsDaniel da Silva
 
Remover virus que transforma pastas em atalhos
Remover virus que  transforma pastas em atalhosRemover virus que  transforma pastas em atalhos
Remover virus que transforma pastas em atalhosCarlos Elson Cunha
 
Interfaces windows em c sharp
Interfaces windows em c sharpInterfaces windows em c sharp
Interfaces windows em c sharpTiago
 
Windows 7 para iniciantes
Windows 7 para iniciantesWindows 7 para iniciantes
Windows 7 para iniciantesMauricio Santos
 
Informática para Concursos Linux.ppt
Informática para Concursos  Linux.pptInformática para Concursos  Linux.ppt
Informática para Concursos Linux.pptFlvioSantos618119
 
Curso De Programação Em DelPhi
Curso De Programação Em DelPhiCurso De Programação Em DelPhi
Curso De Programação Em DelPhiMikeNandes
 

Semelhante a Apostila Lázaro (20)

Apostila Lazarus
Apostila LazarusApostila Lazarus
Apostila Lazarus
 
Introdução a programação para plataforma iOS
Introdução a programação para plataforma iOSIntrodução a programação para plataforma iOS
Introdução a programação para plataforma iOS
 
Aula 2 WEB
Aula 2 WEBAula 2 WEB
Aula 2 WEB
 
4391 sistemas operacionais
4391 sistemas operacionais4391 sistemas operacionais
4391 sistemas operacionais
 
Sistema Operacional Windows (versão 11)
Sistema Operacional Windows (versão 11)Sistema Operacional Windows (versão 11)
Sistema Operacional Windows (versão 11)
 
Sobre Visual studio
Sobre Visual studioSobre Visual studio
Sobre Visual studio
 
Sistema operativo windows
Sistema operativo windowsSistema operativo windows
Sistema operativo windows
 
Apostila delphi rad studio 2007
Apostila delphi   rad studio 2007Apostila delphi   rad studio 2007
Apostila delphi rad studio 2007
 
Resumo de informática para concursos públicos
Resumo de informática para concursos públicosResumo de informática para concursos públicos
Resumo de informática para concursos públicos
 
Ficha de trabalho_so_4_m4_-_personalizacao_ambiente_grafico_linux
Ficha de trabalho_so_4_m4_-_personalizacao_ambiente_grafico_linuxFicha de trabalho_so_4_m4_-_personalizacao_ambiente_grafico_linux
Ficha de trabalho_so_4_m4_-_personalizacao_ambiente_grafico_linux
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
Aula de revisão de windows
Aula de revisão de windowsAula de revisão de windows
Aula de revisão de windows
 
Apostila windows7
Apostila windows7Apostila windows7
Apostila windows7
 
Remover virus que transforma pastas em atalhos
Remover virus que  transforma pastas em atalhosRemover virus que  transforma pastas em atalhos
Remover virus que transforma pastas em atalhos
 
Interfaces windows em c sharp
Interfaces windows em c sharpInterfaces windows em c sharp
Interfaces windows em c sharp
 
Windows 7 para iniciantes
Windows 7 para iniciantesWindows 7 para iniciantes
Windows 7 para iniciantes
 
Informática para Concursos Linux.ppt
Informática para Concursos  Linux.pptInformática para Concursos  Linux.ppt
Informática para Concursos Linux.ppt
 
Curso De Programação Em DelPhi
Curso De Programação Em DelPhiCurso De Programação Em DelPhi
Curso De Programação Em DelPhi
 
Oo delphi
Oo delphiOo delphi
Oo delphi
 

Último

A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.silves15
 
Slide língua portuguesa português 8 ano.pptx
Slide língua portuguesa português 8 ano.pptxSlide língua portuguesa português 8 ano.pptx
Slide língua portuguesa português 8 ano.pptxssuserf54fa01
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumAugusto Costa
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 
RedacoesComentadasModeloAnalisarFazer.pdf
RedacoesComentadasModeloAnalisarFazer.pdfRedacoesComentadasModeloAnalisarFazer.pdf
RedacoesComentadasModeloAnalisarFazer.pdfAlissonMiranda22
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Nova BNCC Atualizada para novas pesquisas
Nova BNCC Atualizada para novas pesquisasNova BNCC Atualizada para novas pesquisas
Nova BNCC Atualizada para novas pesquisasraveccavp
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptxthaisamaral9365923
 
[Bloco 7] Recomposição das Aprendizagens.pptx
[Bloco 7] Recomposição das Aprendizagens.pptx[Bloco 7] Recomposição das Aprendizagens.pptx
[Bloco 7] Recomposição das Aprendizagens.pptxLinoReisLino
 

Último (20)

A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.
 
Slide língua portuguesa português 8 ano.pptx
Slide língua portuguesa português 8 ano.pptxSlide língua portuguesa português 8 ano.pptx
Slide língua portuguesa português 8 ano.pptx
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
 
RedacoesComentadasModeloAnalisarFazer.pdf
RedacoesComentadasModeloAnalisarFazer.pdfRedacoesComentadasModeloAnalisarFazer.pdf
RedacoesComentadasModeloAnalisarFazer.pdf
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Nova BNCC Atualizada para novas pesquisas
Nova BNCC Atualizada para novas pesquisasNova BNCC Atualizada para novas pesquisas
Nova BNCC Atualizada para novas pesquisas
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
 
[Bloco 7] Recomposição das Aprendizagens.pptx
[Bloco 7] Recomposição das Aprendizagens.pptx[Bloco 7] Recomposição das Aprendizagens.pptx
[Bloco 7] Recomposição das Aprendizagens.pptx
 

Apostila Lázaro

  • 1. Universidade Federal de Viçosa Departamento de Engenharia Agrícola Free Pascal Lazarus Ambiente Windows ENG 390 Prof. Evandro de Castro Melo, DS 26 de novembro de 2012 http://wiki.lazarus.freepascal.org/Main_Page/pt
  • 2. Free Pascal LAZARUS Melo (2012) 2 1. INTRODUÇÃO O Projeto Lazarus surgiu em 1 de fevereiro de 1999 com três pessoas: Cliff Baeseman, Shane Miller e Michael A. Hess. Em agosto de 1999 Marc Weustink se junta ao grupo seguido por Mattias Gaertner, que aderiu em setembro de 2001. O Projeto Lazarus, desde então, só vem crescendo cada vez mais, sempre incorporando novos componentes e recursos. O Lazarus é uma alternativa de código 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á décadas são utilizados no meio acadêmico. O Free Pascal (FPC) é um compilador de código fonte aberto com duas notáveis características: um grau elevado de compatibilidade com Delphi e com capacidade para ser executado em Windows, Mac e Linux.
  • 3. Free Pascal LAZARUS Melo (2012) 3 2. AMBIENTE LAZARUS 2.1 Prefácio Lazarus é um ambiente (E) integrado (I) de desenvolvimento (D) - IDE Lazarus - gratuito e de código aberto para o compilador Free Pascal. O IDE é uma parte importante para se trabalhar com o Lazarus: é ele quem ajuda a editar os códigos, gerenciar os arquivos e montar os projetos. O ambiente Lazarus é estável e rico para criação de aplicações gráficas e de console (antigo DOS dentro do Windows). Ele atualmente funciona nos sistemas operacionais: Linux, FreeBSD, Win32 e Win64. Possui um editor de código e um ambiente visual para criação de formulários, acompanhado de um gerenciador de pacotes, depurador de erros e uma completa integração da GUI com o compilador Free Pascal. 2.2 Baixando o Lazarus da Internet O Lazarus pode ser obtido desde o sitio http://www.lazarus.freepascal.org/ na opção Downloads como mostrado na Figura 1. Figura 1 – Imagem parcial do sítio oficial do Projeto Lazarus na Internet Existem duas versões para o Windows: 32 e 64 bits. Se o PC, onde for instalado o programa, possuir processador de dois núcleos (AMD ou Intel) e 4 Gb de memória RAM, pode-se optar pela versão 64 bits.
  • 4. Free Pascal LAZARUS Melo (2012) 4 A versão utilizada nesta apostila foi a Lazarus-1.0.2-fpc-2.6.0 para o sistema operacional Windows 32 bits. 2.3 Modificando o idioma do Lazarus Depois de instalar o Lazarus no computador, roda-se o programa. Então irão aparecer na área de trabalho do computador uma série 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 português, deve-se acessar a aba Tools e depois Options, como mostrado na Figura 3. Figura 3 - Mudando de idioma Então aparecerá a seguinte tela, onde se escolhe a opção Desktop, optando pelo português do Brasil, como mostra a Figura 4, finalizando com o botão OK.
  • 5. Free Pascal LAZARUS Melo (2012) 5 Figura 4 – Parte da Janela para modificar o idioma Para que a modificação tenha efeito é preciso reiniciar o Lazarus. A interface do programa ficará como mostrada na Figura 5: Figura 5 – Parte da janela do ambiente Lazarus no idioma português. 2.4 O Editor Quando se ativa o ambiente de programação Lazarus pela primeira vez, uma série de janelas flutuantes, separadas entre si, irão aparecer no desktop do computador. A primeira, localizada no alto do desktop, é chamada de Lazarus IDE v0.9.30 - project1 (que será modificada para refletir a mudança no nome do projeto em que se está trabalhando). Esta é a principal janela de controle de projetos e contém o Menu Principal, a Barra de Botões 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, Exibir, dentre outras. E abaixo desta, à esquerda, tem-se a Barra de Botões, que são 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 Código. Pode-se ter outra janela menor, indicada como
  • 6. Free Pascal LAZARUS Melo (2012) 6 Form1, sobre a janela do editor de código. Se esta janela não é visível imediatamente, aciona-se a tecla F12 e ela aparecerá. Essa tecla alterna entre o Editor de Código e o Editor de Formulário. Nesta janela de formulário, será construída a interface gráfica da aplicação desejada. Esta janela somente funciona se estiver editando um formulário. Figura 7 – Editor de Códigos e Inspetor de Objetos no ambiente Lazarus Quando se inicia um novo projeto (ou quando se ativa o Lazarus), por padrão, irá ser construído um formulário 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 contém os usuais botões de janelas do Windows: Minimizar, Maximizar e Fechar. Se clicar com o mouse dentro desta caixa, ver-se-ão as propriedades deste formulário no Inspetor de Objeto, no lado esquerdo do desktop. Caso o Inspetor de Objetos não esteja visível, deve- se pressionar a tecla F11. Outras janelas que podem ser visíveis durante o trabalho: o Inspetor de Projeto, que contém detalhadamente os arquivos incluídos no projeto em que se está trabalhando. A janela Mensagens, que exibe as mensagens do compilador, erros ou relatórios de progresso no projeto.
  • 7. Free Pascal LAZARUS Melo (2012) 7 2.5 O Menu Principal O Menu Principal contém 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
  • 8. Free Pascal LAZARUS Melo (2012) 8 2.6 A Barra de Botões Uma pequena barra de ferramentas à esquerda da janela principal do editor, logo abaixo do Menu Principal e à esquerda da Paleta de Componentes, contém um conjunto de botões que repetem as opções que são frequentemente mais usadas no menu principal. Ver Figura 10. Figura 10 – Barra de Botões do Ambiente Lazarus 2.7 A Paleta de Componentes É uma barra de ferramentas organizada em abas com um grande número 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 título inicia-se com 'T', que significa Type, ou mais precisamente Class do componente. Quando um componente é selecionado para inclusão em um Form, a Class é adicionada à seção Type da interface da Unit (geralmente como parte de TForm1). Qualquer método projetado para ser usado pelo Form ou componentes (isto é, Procedures ou Functions) serão colocados após o item Implementation da unidade. A seguir estão relacionados os nove componentes da paleta. 1 2
  • 9. Free Pascal LAZARUS Melo (2012) 9 3 4 5 6 7 8 9 Figura 11 – Detalhamento das abas da paleta de componentes.
  • 10. Free Pascal LAZARUS Melo (2012) 10 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 posição 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 aparência 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 irão aparecer na Paleta de Componentes. Esses componentes podem ser selecionados e usados nos Forms da mesma forma que os componentes padrões. 2.9 Os arquivos do Lazarus Quando se salva um projeto no ambiente Lazarus, como mínimo, dois arquivos básicos serão gravados no disco, cujas extensões são *.pas (arquivo da Unit) e *.lpr (arquivo do Project). Mais arquivos serão gravados, mas apenas estes dois requerem que sejam nomeados pelo usuário. É importante ressaltar que esses dois arquivos devem ter nomes diferentes: isto é uma exigência 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 são iguais. Depois de modificado o nome da unidade para testeu.pas, os seguintes arquivos serão gerados: teste.exe: O programa principal em formato binário executável. teste.lpi: Arquivo principal do projeto Lazarus (Lazarus Project Information), que equivale no Delphi à extensão *.dpr. É armazenado no formato XML. teste.lpr: Arquivo fonte do programa principal no formato Pascal. testeu.lfm: Desenho do formulário. O Lazarus utilizará este arquivo para gerar um arquivo fonte, que está incluído na seção de inicio da Unit testeu.pas. Equivale no Delphi à extensão *.dfm. teste.lrs: Este é o arquivo fonte gerado. Note que não é um arquivo fonte de Windows. testeu.pas: Arquivo da Unit que contém o código-fonte do formulário (unidade). teste.ppu: Arquivo da Unit compilada. ppas.bat: Arquivo que contém um script para criar o executável. Se a compilação tiver sucesso, este arquivo é removido pelo compilador.
  • 11. Free Pascal LAZARUS Melo (2012) 11 Programas escritos em Delphi (unidades, projetos e pacotes) podem ser convertidos para o ambiente Lazarus, empregando-se a opção Ferramentas do Menu Principal, segundo a Figura 12, onde o usuário irá optar pela conversão que lhe for a mais adequada. Figura 12 – Opção Ferramentas do Menu Principal com as opções de conversão de arquivos tipo Delphi para tipo Lazarus
  • 12. Free Pascal LAZARUS Melo (2012) 12 3. CONCEITOS SOBRE O FREE PASCAL LAZARUS (FPL) O Lazarus é um sistema de desenvolvimento de código aberto que adiciona um Ambiente Integrado de Desenvolvimento (IDE) ao compilador Free Pascal, onde está incluído um editor de códigos, um editor visual de formulários, uma biblioteca de componentes (LCL), altamente compatível com a biblioteca de componentes visuais do Delphi (VCL). O Free Pascal tem compatibilidade com o Delphi incluindo suporte para programação em linguagem Object Pascal, além 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 também possui unidades como Windows, ShellAPI, BaseUnix, Unix e DynLibs para acessar capacidades específicas do sistema operacional local. Estas unidades são a parte inicial da biblioteca de tempo de execução ou run-time library (RTL) do Free Pascal. Semelhantemente ao Delphi, o Free Pascal e o Lazarus são ferramentas de programação de uso geral, significando que se pode desenvolver com eles uma variedade de programas, ou seja, aplicações de console, bibliotecas dinâmicas e aplicações com interface gráficas (GUI). Dado estas explicações, o ambiente Lazarus de programação também pode ser chamado de linguagem de programação FPL, isto é, Free Pascal Lazarus. 3.1 Tipos de dados, variáveis e constantes O objetivo no desenvolvimento de um programa é que o mesmo processe uma série de comandos e dados, que podem representar nomes de pessoas, datas, valores monetários ou equações matemáticas. Na linguagem FPL, as variáveis e as constantes precisam ser declaradas antes de serem usadas. Quando se declara uma variável ou uma constante, há a necessidade de se especificar seu tipo, ou seja, o conjunto de valores que ela pode armazenar na memória do computador.
  • 13. Free Pascal LAZARUS Melo (2012) 13 3.2 Tipos de dados na linguagem FPL A base ou tipos simples do FPL são os tipos da linguagem Delphi:  Ordinais – Define um conjunto de valores, onde cada valor desse conjunto, com exceção do primeiro e do último, tem um valor anterior e posterior. Os tipos ordinais na linguagem FPL são: Integer, Character, Boolean e Enumerated.  Integer – Representa um subconjunto de números inteiros. Segue na tabela os limites e formatos para armazenamento. Tipo Faixa Tamanho em bytes Byte 0 .. 255 1 Shortint -128 .. 127 1 Smallint -32768 .. 32767 2 Word 0 .. 65535 2 Integer smallint ou longint tamanho 2 ou 4 Cardinal longword 4 Longint -2147483648 .. 2147483647 4 Longword 0 .. 4294967295 4 Int64 -9223372036854775808 .. 9223372036854775807 8 QWord 0 .. 18446744073709551615 8  Caractere – Um caractere pode ser qualquer símbolo que possa ser representado (um número, uma letra ou símbolos especiais)  Boolean – Este tipo de dado é o responsável pela representação de valores lógicos e ocupa 1 byte de memória. 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 números que podem ser representados com notação de ponto flutuante. Tipo Faixa Dígitos significativos Tamanho Real depende da plataforma ??? 4 ou 8 Single 1.5E-45 .. 3.4E38 7-8 4 Double 5.0E-324 .. 1.7E308 15-16 8 Extended 1.9E-4932 .. 1.1E4932 19-20 10 Comp -2E64+1 .. 2E63-1 19-20 8 Currency -922337203685477.5808 922337203685477.5807 8
  • 14. Free Pascal LAZARUS Melo (2012) 14 3.3 Estruturas Básicas de um Programa em FPL Para se declarar variáveis, constantes, procedures e functions de maneira correta em qualquer linguagem, são necessários o conhecimento de sua estrutura e a identificação dos pontos onde elas podem ser declaradas. Estrutura básica de uma Unit Uma Unit é, na maioria das vezes, associada a um formulário (Form) que contém seu código, ou seja, as declarações de variáveis, os componentes utilizados e as rotinas definidas. É possível verificar que, à medida que componentes são inseridos, são também adicionados automaticamente linhas de código na Unit relacionada. A Unit tem áreas predefinidas e que devem ser respeitadas para que a programação tenha êxito. São elas:  unit xxxx – Representa o nome físico do arquivo onde está o código da referida unidade. Por meio desse nome, units podem usar outras units.  interface – A seção interface começa com a palavra reservada interface e termina no inicio da seção implementation. Nessa seção, são declarados constantes (const), tipos (types), variáveis (var), procedures e functions, que estão disponíveis para outras units ou outros programas. Essas declarações são chamadas de públicas (public), indicando que as mesmas podem ser usadas por quaisquer outras unidades dentro do mesmo programa. A
  • 15. Free Pascal LAZARUS Melo (2012) 15 declaração de procedure e function, na seção interface, refere-se apenas ao cabeçalho das mesmas. O seu conteúdo será descrito na seção implememntation.  uses – É a lista de outras units que estão ligadas ao programa atual.  type – Esta declaração especifica um identificador que denotará um novo tipo que, normalmente, não é oferecido pelo FPL.  var - Nessa área, são declaradas todas as variáveis que podem ser acessadas em qualquer lugar do programa, portanto, consideradas públicas.  implementation - Esta seção começa com a palavra reservada implementation e termina em initialization. Neste local estão descritas todas as procedures e functions do programa.  {$mode objfpc}{$H+} e {$R *.lfm} – estes códigos são diretivas de compilação, que têm a função de passar informações ao compilador no instante de se criar o arquivo executável do aplicativo. 3.4 Estrutura Básica de um Arquivo de Projeto em FPL O arquivo de projeto também é conhecido como Lazarus Project (LPR). O LPR tem os seguintes pontos em sua estrutura: Estrutura básica de um arquivo de projeto
  • 16. Free Pascal LAZARUS Melo (2012) 16  begin/end. – estas duas palavras reservadas indicam inicio e fim do projeto.  RequireDerivedFormResource := True; -  Application.Initialize; – Inicitialize é o primeiro método chamado pelo arquivo-fonte do projeto que, por padrão, simplesmente inicializa a aplicação.  Application.CreateForm(TForm1, Form1); – cria um objeto formulário da classe TForm1. Aqui são listados todos os formulários criados pela aplicação.  Application.Run; - quando um projeto é criado, o IDE insere automaticamente a linha de código com o método Application.Run, responsável pela execução da aplicação. 3.5 Funções (Functions) e Procedimentos (Procedures) Funções são rotinas que recebem valores, passados como parâmetros, a partir da unidade ou fora dela, e retornam apenas um valor como resultado. As funções são definidas obedecendo à seguinte sintaxe: Function NomeDaFunção (Parâmetro1: Tipo; ParâmetroN: Tipo): Tipo do valor de retorno; var {declaração de variáveis locais à função quando necessárias} begin {bloco de instruções} end; Procedimentos são semelhantes às funções, porém não retornam um valor como parte de sua definição. Os procedimentos obedecem à seguinte sintaxe: Procedure NomeDoProcedimento (Parâmetro1: Tipo; ParâmetroN : Tipo); var {declaração de variáveis locais á função quando necessárias} begin {bloco de instruções} end;
  • 17. Free Pascal LAZARUS Melo (2012) 17 3.6 Declarando Variáveis Quando se atribui nomes às variáveis, faz-se necessário seguir algumas regras genéricas às linguagens:  O primeiro caractere deve ser uma letra;  Não se pode usar espaço em branco e nem hífen para declaração de variável;  O FPL não distingue letra maiúscula de minúscula no nome da variável;  Não se podem usar palavras reservadas da linguagem como nome de variável. 3.7 Entrada e Saída de Dados Numéricos A entrada de dados em ambientes visuais normalmente se dá através de componentes (objetos visuais), porém as linguagens também possuem funções responsáveis pela entrada de dados a partir de “janelas de diálogo com o usuário”. É importante frisar que dados numéricos são apresentados sob o tipo caracteres (string) em um formulário do ambiente Lazarus. Assim sendo, em aplicações de engenharia, estes dados numéricos, antes de serem repassados ao programa, devem ser transformados de caracteres para numérico. E o contrário, quando forem apresentados no formulário, deve-se, antes, serem transformados de numéricos para caracteres. As funções do FPL que fazem essas tarefas são: StrToFloat e StrToInt – Transforma de caractere (string) para numérico (real e inteiro respectivamente). FloatToStr e IntToStr - Transforma de numérico (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.
  • 18. Free Pascal LAZARUS Melo (2012) 18 4. O PRIMEIRO PROGRAMA EM FREE PASCAL LAZARUS Como exemplo de aplicação, o primeiro programa, executado no ambiente FPL, será um projeto que calcule a soma de dois números. Portanto, o programa deverá solicitar ao usuário os dois números e apresentar na tela o resultado da soma. Neste exemplo, o programa será executado em ambiente console ( ), ou seja, fora do ambiente gráfico do Windows. As instruções do algoritmo serão: Algoritmo Soma Inicio Escrever (‘Digite o primeiro número’) Ler (num1) Escrever (‘Digite o segundo número’) 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 número’); readln (num1); writeln (‘Digite o segundo número’); readln (num2); soma := num1 + num2; writeln (‘O resultado é ’, soma); end.
  • 19. Free Pascal LAZARUS Melo (2012) 19 4.1 Criando um projeto FPL em ambiente console 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: Figura 13 – Janelas do FPL para criar um projeto Irá aparecer a seguinte janela, à qual se deve responder com um Não. Figura 14 –Janela do FPL que aparece após a solicitação de criação de um projeto Em seguida aparecerá a janela com o Editor de Código, onde se escreverão os comandos do primeiro programa como indicado nas Figuras 15 e 16. As variáveis (var) deverão ser descritas acima da palavra begin e o restante do programa, após 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 não foi gravado no disco.
  • 20. Free Pascal LAZARUS Melo (2012) 20 Figura 15 – Editor de código do FPL Transcrevendo o programa no Editor de Código, o mesmo ficará assim: Figura 16 – Janela do Editor de Código do FPL com o programa proprosto já transcrito
  • 21. Free Pascal LAZARUS Melo (2012) 21 Para rodar o programa aciona-se a tecla Executar, que se parece a um triângulo verde como mostrado na Figura 17. Figura 17 - Botão Executar em destaque E o resultado será apresentado na seguinte janela, de acordo com a Figura 18: Figura 18 – Janela com os resultados do programa proposto. Deve-se ressaltar que, ao final do programa original, foram acrescentadas mais duas linhas. A função das mesmas é permitir a visualização do resultado do programa na janela do prompt. Sem as mesmas, o programa seria executado e a sua janela será fechada imediatamente, sem que o usuário pudesse ver os resultados.
  • 22. Free Pascal LAZARUS Melo (2012) 22 5. O PRIMEIRO PROGRAMA EM FPL EM AMBIENTE WINDOWS 5.1 Criando o formulário Como o programa proposto anteriormente foi desenvolvido para ambiente console, o mesmo não apresenta as tradicionais janelas do Windows, que tornam a interação com usuário mais agradável e bonita. Para que isto aconteça é preciso montar o projeto de outra maneira. Primeiramente deve-se estruturar o formato da janela, através da qual o programa irá interagir com o usuário. O programa deverá ser escrito em uma janela do FPL chamada de formulário ou Form. Quando se acessa o ambiente FPL, deverá aparecer uma tela, em que parte dela, está representada na Figura 19. Figura 19 – Tela parcial de abertura do ambiente FPL Nesta tela, já está disponível, para o programador, um formulário Form1 do projeto Project1, onde se montará a interface com o usuário. Tem-se à frente, a janela Form1 e, por detrás, a janela Editor de Código. À medida que componentes do FPL são adicionados ao Fom1, instruções ou linhas de comando, referentes a esses componentes, serão acrescentadas automaticamente no Editor de Código. A tecla F12 faz a alternância entre o Formulário e o Editor de Código.
  • 23. Free Pascal LAZARUS Melo (2012) 23 Como exemplo de aplicação, para ser o primeiro programa FPL executado no ambiente gráfico do Windows, desenvolver-se-á um projeto que calcule a área de um triângulo. Portanto, a interface com o usuário deverá solicitar-lhe os dados numéricos referentes à altura e à base desse triângulo. Recomenda-se, como boa norma de programação em FPL, antes de iniciar qualquer programa ou projeto para ambiente Windows, criar um diretório específico. Então, o passo seguinte é gravar o projeto no disco. Cada projeto, com seus formulários e unidades, deverá ser gravado no disco em pasta própria, sendo recomendado ainda não se aceitar os diretórios sugeridos pelo ambiente FPL. Os arquivos de unidade e de projeto não podem ter nomes iguais. Sugerem-se os nomes u_triangulo.pas (unidade) e p_triangulo.lpr (projeto). O projeto será criado acessando-se Arquivo – Novo / Projeto / Aplicação, de acordo com a Figura 20: Figura 20 – Janela para criação de um novo Projeto/Aplicação. A partir desse ponto, passa-se à montagem da interface com o usuário, fazendo-se inclusões de componentes ou objetos no formulário, disponibilizados no ambiente FPL. 5.2 Escrevendo no formulário Para atender ao que se solicita como Primeiro Programa, cálculo de área de triângulo, no ambiente FPL, propõe-se a seguinte interface com o usuário:
  • 24. Free Pascal LAZARUS Melo (2012) 24 Figura 21 – Interface com o usuário do Primeiro Programa Serão inseridos no Form1 os seguintes componentes presentes na Paleta de Componentes Standard: Dois componentes Label – funcionam como rótulos, sendo um para Altura e outro para Base; Três componentes Edit – funcionam como locais para entrada e saída de dados, sendo um para o valor da Altura, um para o valor da Base e outro para exibir o resultado do cálculo da Área; Dois componentes Button – são botões que, quando pressionados, executam uma ação, sendo um para calcular a área e outro para permitir sair do programa. Para colocar tais componentes no formulário, deve-se clicar na Paleta de Componentes (Standard neste caso), no componente desejado e depois clicar no formulário. As propriedades desses componentes são modificadas no Inspetor de Objetos, desde que o componente esteja selecionado no formulário. O texto relativo a um componente, que aparece no formulário, é modificado no Inspetor de Objetos na propriedade Caption. As variáveis vinculadas aos componentes podem ter seus nomes alterados no código-fonte pela propriedade Name.
  • 25. Free Pascal LAZARUS Melo (2012) 25 Figura 22 – Inspetor de Objetos mostrando a propriedade Caption de três componentes 5.3 Escrevendo o código-fonte De acordo com o formulário Form1 proposto na Figura 21, o usuário deve fornecer dois valores das dimensões do triângulo e depois acionar o botão ÁREA. Os componentes Edit são como caixas que recebem os dados digitados na tela (Edit1, Edit2) ou que apresentam resultados do programa (Edit3). Para terminar o programa, o usuário deverá acionar o botão SAIR. Os dois componentes Button1 e Button2 estão vinculados a procedimentos específicos dentro do programa ou projeto, ou seja, quando se faz um duplo clique no botão, dentro do formulário, aparecerá no Editor de Código um procedimento (Procedure) onde devem ser escritas todas as ações ou comandos referentes ao componente Button. Observa-se na Figura 23 que cada Button tem um procedimento associado ao mesmo. Figura 23 – Procedures vinculadas aos componentes Button
  • 26. Free Pascal LAZARUS Melo (2012) 26 É importante verificar que o nome dos procedimentos, inseridos automaticamente pelo Editor de Códigos (Figura 23), leva o nome do objeto a que ela pertence. O primeiro nome (TForm1) é o objeto principal (formulário - form), separado pelo operador ponto, seguido do nome do objeto inserido, acrescido de uma palavra referente à ação (Button1Click ou Button2Click), que no caso, é click, referindo-se a ação de clicar no botão. Para saber a ação referente ao procedimento, deve-se ler o seu o nome de trás para frente: clicar no botão1 do formulário1 e executar as ações dentro do procedimento. Ou seja, pulsando cada um desses botões, o programa dispara uma seqüência de comandos contidos no respectivo procedimento. No procedimento do botão ÁREA, deverá ser introduzida a palavra var, após a qual serão definidas duas varáveis para receber os dados digitados na tela do programa, previamente transformados de caracteres para numérico (StrToFloat, ver item 3.7) e uma terceira variável para receber o valor calculado da área, que deverá ser transformado de numérico para caracteres (FloatToStr, ver item 3.7), antes de ser apresentado na mesma tela. Figura 24 – Procedimento que calcula a área de um triângulo No procedimento vinculado ao botão SAIR deve-se digitar apenas o comando close (encerrar o programa), entre o begin e o end (Figura 25). Figura 25 – Procedimento SAIR Para alterar o texto que aparece escrito na barra de título do programa, segundo a Figura 26, deve-se selecionar o Form1 com um clique no seu título e alterar o texto na propriedade Caption no Inspetor de Objetos (Figura 27).
  • 27. Free Pascal LAZARUS Melo (2012) 27 Figura 26 – Barra de título do programa ou projeto Figura 27 – Alterando a propriedade Caption do Form1 no Inspetor de Objetos Analisando o Editor de Código, depois de pulsar a tecla F12, tem-se a Figura 28, com parte do código referente ao projeto que se está desenvolvendo. Na referida unidade, abaixo de { TForm1 } estão relacionados todos os objetos (Button, Edit, Label, procedure) presentes no formulário Form1 do programa.
  • 28. Free Pascal LAZARUS Melo (2012) 28 Figura 28 – Editor de código contendo parte da codificação do projeto
  • 29. Free Pascal LAZARUS Melo (2012) 29 5.4 Escrevendo outro código-fonte para o mesmo projeto O projeto anterior será alterado para o seguinte layout de interface com o usuário, como mostrado na Figura 29a. (a) (b) (c) (d) Figura 29 – Janelas para projeto que calcula área de triângulo
  • 30. Free Pascal LAZARUS Melo (2012) 30 Neste novo layout será empregado o componente BitBtn, disponível na Paleta de Componentes Additional, que está em destaque amarelo na Figura 30. Figura 30 – Componente BitBtn da Paleta Additional O código-fonte dos dois procedimentos, referentes aos botões, é apresentado a seguir, na Figura 31. Figura 31 – Código-fonte dos procedimentos O comando InputBox ('Digite a altura', 'Valor:', ' ') abre uma janela para leitura de dados, cujo título será o primeiro texto entres aspas e o segundo texto entre aspas será exibido acima da caixa que recebe o dado (Figura 29b e 29c). O terceiro texto entre aspas está em branco porque não se quer exibir um valor inicial na referida caixa.
  • 31. Free Pascal LAZARUS Melo (2012) 31 Na tabela a seguir, estão descritas as propriedades dos componentes, presentes no formulário Form1, que foram alteradas no Inspetor de Objetos: Objeto Propriedades no Inspetor de Objetos BitBtn1 Acionando o mouse no destaque em amarelo, aparecerá a janela abaixo. A opção Carregar irá buscar no PC um ícone, não necessariamente a mesma imagem que se vê. Se não existir no PC, deve-se buscar na Internet. O ícone será apresentado dentro do botão, conforme a Figura 29a. Button1
  • 32. Free Pascal LAZARUS Melo (2012) 32 6. DESENVOLVENDO OUTROS PROGRAMAS EM FPL 6.1 Programa sobre cálculo de idade O objetivo desse programa é calcular a idade de uma pessoa, informando o ano de nascimento e o ano atual e assumindo, obrigatoriamente, que o primeiro valor será menor que o segundo. A solução do mesmo será o formulário com o seguinte layout, mostrado na Figura 32: Figura 32 – Formulário do Programa Os componentes usados no programa estão listados na tabela a seguir, que se correspondem ao Inspetor de Objetos na Figura 33. Objeto Name Caption Form1 Form1 Calculando Idade Label1 Label1 Ano de Nascimento Label2 Label2 Ano Atual Label3 Label3 Idade Edit1 edNasc Edit2 edAtual Edit3 edIdade BitBtn1 bbCalcular Calcular Figura 33 – Inspetor de Objetos do Programa 6.1
  • 33. Free Pascal LAZARUS Melo (2012) 33 O evento vinculado ao botão bbCalcular é o procedimento apresentado na Figura 34. Figura 34 – Procedimento vinculado ao objeto bbCalcular 6.2 Programa sobre cálculo da idade completa Este programa irá calcular a idade em anos, meses e dias da pessoa em função da data de nascimento e da data atual. O layout proposto para o formulário desse programa se apresenta na Figura 35. O campo Data Atual deverá ser inicializado com a data do sistema operacional, para que o usuário não tenha que informá-la. Figura 35 – Formulário proposto para o programa Idade Completa
  • 34. Free Pascal LAZARUS Melo (2012) 34 Os componentes usados no programa estão listados na tabela abaixo e na Figura 36, que se corresponde ao Inspetor de Objetos. Objeto Name Caption Form1 Form1 Idade Completa Label1 Label1 Data Atual Label2 Label2 Data de Nascimento GroupBox1 GroupBox1 Idade MaskEdit meNasc VER Figura 37 Label3 Label3 Anos Label4 Label4 Meses Label5 Label5 Dias Edit1 edAnos Edit2 edAtual Edit3 edIdade Button btCalcular Calcular a Idade Figura 36 – Inspetor de Objetos do Programa 6.2 O componente meNasc receberá a Data de Nascimento do usuário na forma _/_/__, que é uma máscara, que deve ser informada na Inspetor de Objetos, na Propriedade MaskEdit, segundo a Figura 37, onde, para cada campo, deve-se digitar #, separado por /, no campo Entrar Máscara.
  • 35. Free Pascal LAZARUS Melo (2012) 35 Figura 37 – Informando a máscara para a Data Atual no componente MaskEdit Os procedimentos vinculados ao formulário do projeto proposto estão na Figura 38, a seguir: Figura 38 – Procedimentos do projeto Idade Completa
  • 36. Free Pascal LAZARUS Melo (2012) 36 A captura da data do sistema, que inicializa o campo edAtual (Data Atual), se realiza no procedimento TForm1.FormCreate, cujo código é gerado quando se escolhe, no Inspetor de Objetos, no Evento OnCreate do Form1, a opção FormCreate (Figura 39). Realizada esta opção, aparecerá no Editor de Códigos, o referido procedimento. Entre o begin e o end digita-se: edAtual.text:= DateToStr (Date); onde Date retorna a data do sistema operacional e DateToStr transforma esse valor em string para ser apresentado na tela do programa. Já o comando StrToDate reverte a conversão de string para formato de data. Este evento é usado para atribuir valores iniciais a componentes de formulário (como este caso), verificar e habilitar (desabilitar) componentes. Figura 39 – Procedimento de inicialização de componente com o evento OnCreate Na Figura 38, a variável dias foi definida como variant, que é um tipo genérico, que pode receber e atribuir qualquer outro tipo. Essa declaração foi utilizada porque o retorno da subtração entre datas é do tipo Extended.
  • 37. Free Pascal LAZARUS Melo (2012) 37 6.3 Programa que compara dois números entre si O usuário deverá informar dois números e, como resultado, obterá uma resposta com um dos símbolos gráficos <, > ou =. O formulário do projeto está na Figura 40. Figura 40 – Formulário do projeto que compara dois números entre si. Os componentes usados no programa estão listados na tabela abaixo, seguido da Figura 41, que corresponde ao Inspetor de Objetos. Objeto Name Caption Form1 Form1 Comparar dois números Label1 Label1 Data Atual Label2 Label2 Data de Nascimento Label3 lbResultado ? Edit1 edNum1 Edit2 edNum2 Edit3 edIdade Button btCalcular Comparar Button btSair SAIR Figura 41 – Inspetor de Objetos do Programa 6.3
  • 38. Free Pascal LAZARUS Melo (2012) 38 Os procedimentos vinculados ao formulário do projeto proposto estão descritos a seguir, bem como o resultado para os números 45 e 100, que aprece depois de acionar o botão COMPARAR.
  • 39. Free Pascal LAZARUS Melo (2012) 39 6.4 Programa para ordenar três números Este projeto tem como objetivo ordenar três valores numéricos informados pelo usuário, que deverá escolher a opção de ordenação dos mesmos de forma crescente ou decrescente. O resultado deverá ser apresentado no componente Panel. Na Figura 42 está o Inspetor de Objetos do projeto. E na Figura 43, o lay-out proposto. Figura 42 – Inspetor de Objetos do programa 6.4 Figura 43 – Lay-out proposto para o programa 6.4
  • 40. Free Pascal LAZARUS Melo (2012) 40 Os procedimentos referentes ao programa proposto estão descritos a seguir, apresentando-se um resultado para os números 45, 300 e 2, que aparecerá depois de selecionar a Ação desejada, acionando-se depois o botão Ordenar.
  • 41. Free Pascal LAZARUS Melo (2012) 41 Exercícios Resolvidos Sobre FPL
  • 42. Free Pascal LAZARUS Melo (2012) 42 Exercício 01 Faça um projeto em Lazarus para transformar escalas de temperaturas em °C e em °F, de acordo com o formulário sugerido. a. Sugestão para o formulário Form1: b. Escrevendo o código vinculado aos dois botões: c. Colocar um botão SAIR e outro botão LIMPAR no formulário do item a.
  • 43. Free Pascal LAZARUS Melo (2012) 43 Exercício 02 Faça um projeto em Lazarus que leia os três lados de um triângulo e verifique se realmente eles formam um triângulo. Caso afirmativo, classificar o tipo de triângulo. a. Aplicação dos componentes: Label, Edit, Button, Memo b. Sugestão para o formulário Form1: TMemo - este componente é semelhante ao Edit, com a diferença de permitir a editoração de várias linhas. Ele pode ser usado, por exemplo, para mostrar os resultados. Depois de inserir o componente Memo no formulário Lazarus, pode-se alterar a sua propriedade Name para Mresultado. A propriedade que controla o que será escrito no Memo é a Lines. Para iniciar este componente vazio, ou seja, sem nada escrito ao iniciar um programa, deve-se clicar em (...) ao lado de Lines (TStrings) e apagar o texto contido no Memo. Além disso, é importante que o usuário não consiga alterar o texto apresentado. Então, deve-se alterar a propriedade ReadOnly do Memo para True. Finalmente, é interessante adicionar barras de rolamento ao Memo, alterando a propriedade ScrollBars para ssBoth.
  • 44. Free Pascal LAZARUS Melo (2012) 44 c. Escrevendo o código vinculado aos botões do Form1 :
  • 45. Free Pascal LAZARUS Melo (2012) 45 Exercício 03 Faça um projeto em Lazarus para reajuste salarial: a. Aplicação dos componentes: Label, Edit, Button, Memo b. Sugestão para o formulário Form1:
  • 46. Free Pascal LAZARUS Melo (2012) 46 c. Escrevendo o código vinculado aos botões do Form1 :
  • 47. Free Pascal LAZARUS Melo (2012) 47 Exercício 04 Aplicar o componente MainMenu ao projeto de transformação de temperaturas (°C →°F) a. Aplicação do componente MainMenu TMainMenu - Este componente permite criar barras de menus contendo vários níveis (como o menu principal dos aplicativos Windows). Para usá-lo, basta inserir a figura que o representa no Formulário do seu Projeto, localizando-o, por exemplo, no canto superior direito. Para inserir as opções necessárias ao seu projeto, clique duas vezes no símbolo do MainMenu. Aparecerá o Editor de Menu. Para alterar seu nome, de acordo com o menu proposto, deve-se alterar a sua propriedade Caption no Inspetor de Objetos. Para criar outros tópicos, pressiona-se o botão direito do mouse em cima do item e aparecerá a seguinte janela, com as opções para edição de itens no seu menu:
  • 48. Free Pascal LAZARUS Melo (2012) 48 b. Sugestão para o formulário Form1:
  • 49. Free Pascal LAZARUS Melo (2012) 49 c. Escrevendo o código vinculado às opções do MainMenu no Form1:
  • 50. Free Pascal LAZARUS Melo (2012) 50 Exercício 05 Fazer um projeto no ambiente Lazarus para calcular o índice de massa corporal (IMC) e classificar a pessoa segundo a tabela da O.M.S.: a. Aplicação do componente RadioGroup: TRadioGroup - Apresenta vários RadioButtons agrupados, sendo que apenas um deles poderá ser selecionadp por vez. O RadioGroup conterá as opções do sexo da pessoa. No Inspetor de Objetos, sua propriedade Name deverá ser alterada para RgSexo, sua propriedade Caption para Sexo e a propriedade Items deverá conter as opções Feminino e Masculino (uma em cada linha do editor de itens). Cada opção conterá um índice, iniciando- se do zero. Quando o sexo for selecionado, o valor de seu índice será atribuído à propriedade Itemindex do RgSexo. O programa deve ser iniciado com uma opção já selecionada. Para tal, basta atribuir à propriedade Itemindex do Rgsexo o valor 0 (índice da primeira opção). Quando o usuário alterar a seleção a propriedade ItemIndex será modificada automaticamente. b. Sugestão para o formulário Form1:
  • 51. Free Pascal LAZARUS Melo (2012) 51 c. Escrevendo o código vinculado às opções no Form1:
  • 52. Free Pascal LAZARUS Melo (2012) 52 Exercício 06 Fazer um projeto em Lazarus que calcula a Média das Provas de uma disciplina em que não se conhece de antemão o número de notas. a. Uso do componente InputBox (ver item 5.4) b. Sugestão para o formulário Form1:
  • 53. Free Pascal LAZARUS Melo (2012) 53 c. Escrevendo o código vinculado ao Form1:
  • 54. Free Pascal LAZARUS Melo (2012) 54 Exercício 07 Queda de pressão em camada de grãos – Equação de Shedd – Usando esta equação, fazer um projeto em Lazarus com opção para arroz, milho, soja e trigo. Os dados de entrada são os parâmetros Q e hg. a. Aplicação do comando CASE: b. Sugestão para o formulário Form1
  • 55. Free Pascal LAZARUS Melo (2012) 55 c. Escrevendo o código vinculado ao Form1:
  • 56. Free Pascal LAZARUS Melo (2012) 56 Exercício 08 Faça um projeto em Lazarus para resolver o seguinte problema: têm-se duas cidades A e B com populações iniciais diferentes e taxas de crescimento também diferentes. A cidade A tem menor população inicial que B, porém uma taxa de crescimento percentual ao ano maior que B. Então, calcule o tempo para a população de A ultrapassar a população da cidade B. a. Aplicação do comando WHILE ... DO. b. Sugestão para o formulário Form1 c. Escrevendo o código em Portugol. Transcreva-o para Lazarus, de acordo com Form1 acima.
  • 57. Free Pascal LAZARUS Melo (2012) 57 Exercício 09 Acrescente ao projeto anterior, o gráfico que mostra a evolução do crescimento de ambas as populações.
  • 58. Free Pascal LAZARUS Melo (2012) 58
  • 59. Free Pascal LAZARUS Melo (2012) 59
  • 60. Free Pascal LAZARUS Melo (2012) 60 Exercício 10 Fazer um projeto em Lazarus para calcular a potência de um ventilador em sistemas de secagem de grãos. a. Aplicação do conceito de ARRANJO unidimensional, no caso VETOR: Utilizar o mesmo Form do Exercício 8, modificando apenas o seu código. Os parâmetros a e b, na equação de perda de carga serão agora vetores, cujos índices se referem ao tipo de grão, de acordo com a seleção de entrada em RgTipo.ItemIndex. Entrada de Dados Cálculos b. Sugestão para o formulário Form1
  • 61. Free Pascal LAZARUS Melo (2012) 61 c. Escrevendo o código em Portugol e no ambiente Lazarus, de acordo com Form1 sugerido