Lazarus - Uma Mao Para o Pascal

download Lazarus - Uma Mao Para o Pascal

of 4

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

    [email protected]

    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.