Lazarus - Uma Mao Para o Pascal
-
Upload
francis-js -
Category
Documents
-
view
223 -
download
1
Transcript of Lazarus - Uma Mao Para o Pascal
-
7/27/2019 Lazarus - Uma Mao Para o Pascal
1/4
54 www.linuxmagazine.com.br
PROGRAMAO | Criao de interfaces com Lazarus
IDE para Pascal e Object Pascal
Uma mo para o PascalO Lazarus um ambiente de desenvolvimento para o Free Pascal compatvel
com diversas plataormas, e que permite aos desenvolvedores criar interaces
grfcas com alguns cliques e um pouco de lgica de programao.
por Tim Schrmann
Adicionar uma interace de usu-rio simples aos seus programasem Object Pascal entediante
e leva muito tempo. Para simplicara tarea repetitiva de derivar os resul-tados de inmeras classes, a Borlanddesenvolveu o Delphi em meados dosanos 1990. No ambiente de desenvol-
vimento Delphi, os programadorespodem, com cliques, criar uma in-terace rapidamente. Inelizmente, oDelphi um programa caro e s estdisponvel para Windows.
No entanto, um ambiente total-mente gratuito que responde pelonome de Lazarus [1] uma alter-
nativa para seu anlogo comercial:sua base o compilador Free Pascal,includo na maioria das distribuiese cujo grande escopo de unes comparvel ao bom e velho Delphiem muitas reas. Alm disso, uncio-na em Windows e em Mac Os X.
IncioAo ser iniciado pela primeira vez, o La-zarus bombardeia o desenvolvedor comdiversas janelas, mas os programadoresde Delphi se sentiro imediatamenteem casa com elas (fgura 1). Para iniciar,selecione o elemento grfco necessriona paleta do topo da tela e coloque-ona caixa de dilogo Form (nome dadopelo Lazarus a todas as caixas de dilo-gos e janelas no programa resultante).
Aps soltar o elemento, voc pode usaras bordas para redimension-lo, comose osse uma erramenta de desenho,e arrast-lo para a posio correta. Osajustes mais nos e as modicaes depropriedades, como os rtulos de bo-tes, so o domnio do object inspector.
No plano de undo, o Lazarus geraautomaticamente o cdigo onte, aoqual necessrio adicionar lgica deprogramao em um editor de janelas.
O Object Inspectoro ajudar com isso:
ele no somente lista todos os possveiseventos que a interace grca enten-de, mas deixa que voc aponte e cliquepara atribuir-lhes mtodos existentesou criar um mtodo em branco.
FundamentosO Lazarus oerece o conjunto de re-
cursos tpico de qualquer ambientede desenvolvimento. O gerenciadorde projetos ajuda a manter o contro-le de projetos complexos, e a janelaProject Inspectorlhe permite controlaros arquivos e pacotes envolvidos. Paracompilar um aplicativo, tudo o quese precisa azer apertar o boto ver-de de play. Caso necessrio, pode-seatribuir confguraes individuais decompilao para cada projeto.
Os erros so listados em uma janelaseparada. Clicar em um alerta o levadiretamente at a parte correspondentedo cdigo (fgura 2). O debugger inte-grado o ajuda a investigar problemas einterrupes no programa nos pontosde quebra previamente denidos najanela do editor. Tambm possvel teruma viso passo-a-passo de seus progra-mas, visualizando valores e variveis.
O editor oerece o tipo de escopo
que se espera de um IDE profssional,
Quadro 1: Comrcio livre
O Lazarus liga estaticamente a LCL
ao aplicativo Object Pascal. Para su-portar o desenvolvimento de progra-
mas comerciais, apesar dessa carac-
terstica, a biblioteca de classes est
disponvel sob uma licena LGPL
modicada. Inelizmente isso no se
aplica a todas as unidades que ele
contm. Antes de usar o componen-
te em um aplicativo comercial, uma
boa ideia conerir a licena, que est
embarcada no cdigo onte para o
componente. O Lazarus, em si, no
licenciado sob GPL.
-
7/27/2019 Lazarus - Uma Mao Para o Pascal
2/4
55
| PROGRAMAOCriao de interfaces com Lazarus
Linux Magazine #86 | Janeiro de 2012
incluindo destaques de sintaxe e em-pacotamento do cdigo. O recurso deautocompletar sugere possveis mto-dos e nomes de classe, ajudando-o aopreencher os parmetros. Inclusive,adiciona automaticamente o begin e
o endobrigatrios ao cdigo (fgura 3).Um atalho de teclado lhe permite
adicionar componentes para as linhasselecionadas ou indent-las. Voc podearmazenar os blocos de cdigo emtemplates. Para usar o cdigo, pressio-ne um atalho seguido por [Ctlr]+[J],para dizer ao Lazarus que ele devesubstituir todo o template. O ambientede desenvolvimento inclui templatesde cdigos para construes comuns,
como loopsfor
e blocosbegin
/end
.Para declarar uma classe, poss-vel simplesmente defnir os mtodose propriedades e pressionar um atalhode teclado para criar, automaticamen-te, um mtodo bsico vazio com osmtodos get e set correspondentes.O recurso Quick Syntax Check desco-bre erros de digitao antes que vocinicie a construo do bloco, e outrosassistentes apontam blocos abertos decdigo onte ou IFDEF/ENDIFs.
OrientaoO Lazarus tem uma boa seleo deerramentas que ajudam os desenvolve-dores a navegar pelo cdigo onte. Vocpode, por exemplo, realizar buscas esubstituies de orma fexvel com ouso de expresses regulares. Alm debuscar em todo o texto, o navegadordo cdigo tambm permite buscar so-mente pacotes, nomes de unidade e
designadores para um termo especfco.A janela CodeExplorer ajuda a
manter o controle sobre programasde cdigos mais longos. Ela cria umdelineador de todos os tipos, variveis,interaces, implementaes e unidadesusadas para pular para a posio cor-respondente no cdigo com um nicoclique. O Code Observer, includo noCodeExplorer, aponta para estilos po-bres de programao, como indentao
incorreta ou procedimentos excessiva-
mente longos ou vazios. Outras jane-las mostram as dependncias entre asunidades e os ormulrios criados at omomento. Um editor FPDoc ajuda adocumentar o cdigo onte de acordocom o padro FPDoc.
O Lazarus tambm suporta refa-torao por meio da renomeao dedesignadores no projeto, extraindo ocdigo onte selecionado em um novo
procedimento ou invertendo atribuies
(convertendo A := B emB := A). Almdisso, o editor rastreia automaticamenteos mtodos abstratos ainda no imple-mentados e cria um mtodo vazio. Anica coisa que alta um link paraum sistema de atribuio de verses.
Clssico modernoSe voc arrastar um boto em um or-mulrio no Lazarus, o ambiente de de-
senvolvimento gera automaticamente
Figura 2 O debugger integrado permite que os desenvolvedores investiguemerros no cdigo, como problemas de digitao.
Figura 1O Lazarus d as boas vindas ao desenvolvedor com diversasjanelas, que parecem desordenadas. O ormulrio vazio no centro
o aplicativo resultante.
-
7/27/2019 Lazarus - Uma Mao Para o Pascal
3/4
56 www.linuxmagazine.com.br
PROGRAMAO | Criao de interfaces com Lazarus
um objeto de tipo Tbuttonno plano defundo. A classe correspondente vemcomo cortesia da Biblioteca de Compo-nentes Lazarus (LCL, na abreviao emingls). Esta consiste de uma bibliotecade classes normal que pode ser usada
independentemente do Lazarus, comunidades e classes que criam a interacepara seu programa em Object Pascal.
A LCL no desenha sozinha oselementos grcos individuais natela, mas depende de uma biblio-teca legada do sistemas para isso.Os desenvolvedores podem esco-lher essa biblioteca no momentode construir o cdigo. Os usuriosLinux podem escolher entre Qt,
Gtk+ ou Gtk2. O suporte para a oPascal Gui Toolkit [2] est atual-mente em desenvolvimento.
Alm disso, a LCL est disponvelpara outros sistemas operacionais,suportando unes de sistemas dire-tamente no Windows e no WindowsCE, e em Cocoa e Carbon no MacOS X. Afgura 4 mostra a estruturada LCL e como ela interage com oscomponentes individuais.
Transferncia deconhecimentoGraas LCL, voc pode escrever apli-cativos compatveis com vrias plata-ormas acilmente, tendo somente querecompil-las no sistema operacionalalvo em um momento posterior (es-creva uma vez, compile em todos oslugares). O Lazarus mostra como issounciona em termos prticos: o ambien-
te de desenvolvimento oi programa-do inteiramente em LCL e pode serreconstrudo rapidamente. Tambm possvel usar uma biblioteca de in-terace grca dierente ao selecionaro item do menu em tempo real.
Os desenvolvedores precisam to-mar cuidado com duas armadilhas:uma delas que algumas interaces(como o Qt) esto ocialmente embeta, embora sejam estveis e os
desenvolvedores j as utilizem para
produo. Outra diz respeito LCLtentar seguir as linhas guias do sistemaoperacional alvo. Isso pode levar oscomponentes a agir de maneira diversaem vrias plataormas. Por exemplo,com o Windows no ser possvelmudar a escala de caixas de dilogocom o mouse, embora se possa az-lono X11. Sem contar que os sistemasoperacionais lidam com atalhos devrias maneiras. O wiki do Lazarus
[3] inclui dicas sobre programaopara plataormas cruzadas.
A LCL az mais do que desenharjanelas coloridas na tela. Ela inclui, porexemplo, classes para acesso simplese rpido a banco de dados, incluindo
PostgreSQL, dBase e MySQL. No La-zarus, possvel colocar componentesde conexo em banco de dados den-tro de um ormulrio como se ossequalquer elemento de interace, ondeaparecero como cones. No aplica-tivo nalizado, eles cam no planode undo e executam suas tareas demodo transparente (fgura 5).
Dois orculosA biblioteca de componentes visuaisdo Delphi (VCL) oi o modelo paraa LCL. O Tbutton um lembreteintencional para os desenvolvedo-res que tinham amiliaridade como Delphi. Apesar disso, a LCL no
Figura 3 O editor az sugestes enquanto voc escreve.
Figura 4A LCL atua como uma interace entre o programa Object Pascal e asbibliotecas de interace para o sistema operacional suportado.
-
7/27/2019 Lazarus - Uma Mao Para o Pascal
4/4
57
| PROGRAMAOCriao de interfaces com Lazarus
Linux Magazine #86 | Janeiro de 2012
totalmente compatvel com VCL.Algumas vezes, isso ocorre por contada independncia de plataorma e intencional. Em outras, os compo-nentes simplesmente esto altando.
Isso particularmente verdadei-
ro no caso de classes de aplicativosmultimdia, como Tanimate; com-ponentes especcos do Windows,como TmediaPlayer; e acesso a rede,como o ADO. Assim, impossveltranserir programas Delphi e Kylixpara o Lazarus sem alguma modifca-o. Embora o Lazarus oerea umasrie de assistentes para ajudar nessaconverso, o processo fatalmenteenvolver algum trabalho manual.
A wiki do Lazarus[3]
oerece umalista das dierenas e vrias pginascom dicas e guias para converses.
ConclusoUma vez que voc se amiliariza coma aparncia do programa que inicial-mente parece um ambiente desorde-nado o Lazarus o ajudar a criar umprograma simples, independente deplataorma, em apenas alguns minu-
tos. Uma calculadora, por exemplo.Ao mesmo tempo, o desenvolvedorcom um ambiente legado de desen-volvimento teria tempo apenas detrabalhar com a derivao de classespara os botes. O wiki abrangente doprograma [3] ajuda os desenvolvedo-res na curva inicial de aprendizado.
As converses do Delphi cons-tituem um processo relativamenteindolor, embora algum trabalho ma-nual seja necessrio. A recompensa um aplicativo Object Pascal quepoder ser compilado em todos osgrandes sistemas operacionais.
Apesar de mais de dez anos dedesenvolvimento, o trabalho ainda
est em andamento no Lazarus ena LCL, sendo que o processo seencontra no ponto zero (a versoatual 0.9.30). No entanto, no dei-xe que isso o aaste do Lazarus: ele estvel e compete com o Delphiem igualdade de condies quandocombinado ao Free Pascal. n
Quadro 2: Uma jornada ao passadoBaseado no Algol 60, Niklaus Wirth desenvolveu a linguagem de programa-
o estruturada Pascal no incio dos anos 1970, principalmente com prop-
sitos educacionais. O programa se tornou extremamente popular nos anos
1980 graas ao Turbo Pascal, da Borland. Com o sucesso, a Borland esten-
deu o escopo de recursos do pacote e a linguagem em si. No nal dos anos
1980, a Borland adicionou o conceito de orientao a objetos e colocou os
resultados no Object Pascal.
Em meados dos anos 1990, a Borland introduziu um ambiente totalmente
novo com o nome de Delphi, que permitia aos programadores desenvolver
de maneira conveniente e rpida ao mesmo tempo em que criavam a inter-
ace grca. A biblioteca de interace era a Visual Component Library (VCL),
completamente desenhada para Windows. A Borland tentou entrar no mer-cado de Linux em 2001 com o Kylix. Tratava-se de uma interace Delphi emu-
lada via Wine, capaz de criar programas grcos para Linux com recursos
nativos do sistema operacional, usando a biblioteca de interace CLX, uma
variante do VLC. Hoje, o Delphi desenvolvido e comercializado pela Embar-
cadero Technologies. O Kylix oi tirado do mercado devido alta de sucesso.
Insatiseito com a abordagem da Borland, o estudante Paul Klmpf come-
ou a trabalhar em um compilador gratuito nos anos 1990. A compatibilidade
com o Turbo Pascal e Delphi, alm da portabilidade cil, rapidamente ze-
ram do Free Pascal um dos compiladores Pascal mais populares. O que lhe
altava era um ambiente de programao visual no estilo do Delphi. O projeto
Megido tentou remediar essa situao, mas racassou em 1999. O Lazarus
surgiu dessa raqueza da seu nome bblico.
Mais informaes[1] Lazarus: http://www.
lazarus.freepascal.org/[2] pGUI: http://fpgui.
sourceforge.net/
[3] Wiki do Lazarus: http://wiki.lazarus.freepascal.org/
Gostou do artigo?Queremos ouvir sua opinio.
Fale conosco em
Este artigo no nosso site:
http://lnm.com.br/article/6271
Figura 5 O Lazarus inclui diversos programas de amostra, como este geren-ciador de endereos, que exemplica a programao com banco de
dados. Os cones na rea branca da janela principal so os objetosconectores ao banco de dados.