You are on page 1of 265
J ean Patrick Figueiredo dos Santos all Desenvolvendo Aplicativos com Lazarus Linux & Windows 18 Edi¢do 2011 Copyright ©2011 J ean Patrick Figueiredo dos Santos Este livro néo pode ser reproduzido, mesmo parcial, por qualquer proceso, sem autorizacdo prévia do autor, em conformidade com a lei brasileira de direitos autorais (Lei 9610 de 19 de fevereiro de 1998). Os nomes comerciais, marcas registradas de produtos e fotos dos mesmos, so usados nesta publicacdo apenas para fins editoriais, em beneficio exclusivo do dono da marca registrada, sem nenhuma intencdo de atingir seus direitos. Direitos reservados por: Jean Patrick Figueiredo dos Santos Produgao: J ean Patrick Figueiredo dos Santos E-mail do Autor: orion jean@hotrrail.com Site: www.jpsoft.com br indice Sobre o Autor... Introd UgO...n ‘A Quemiinteressa Este Livro, Commo Esta Organizado 0 Liv... Download do Cédigo Fonte dos Projetos. 1 - Breve histéria do Free Pascal e da IDE Lazarus...cocnuenedd Histéria do Free Pascal Historia da IDE Lazarus. Licenga do Lazarus e do Free Pascal... 2- Obtendo as Compilacées do Lazarus e do Free Pascal........18 3- Instalando 0 Lazarus no Windows... Instalacao Padrao (Recomendado). Instalando usando o SVN (Avancado). 4- Instalando o Lazarus no Linux. Instalando usando a Central de Programas do Ubuntu, Instalando usando os Pacotes (Recomendado)... Instalando usando o SVN (Avancado). 5- Breve Comparativo Lazarus e Delphi 7. 36 Extensées de arquivos.. a Comparativo de ferramentas. Componentes de Terceiros Gratuitos.. \Velocidade de Compilacao.... 6- Conhecendo e Configurando 8 IDE... Mudando o idioma da IDE para Portugués do Brasil. Organizando as janelas da IDE. Outras Configuracées... Conhecendo os Menus da IDE... Barra de F erramentas Répidas.... Conhecendo as Paletas de Compo Teclas de Atalho do Lazarus... 7 - Instalando Novos Componentes...... Preparativos para Instalar os Compone! Instalando os Componentes do PowerPDF... Instalando os Componentes do ZEOS.... Instalando os Componentes do Fortes Report. Instalando os Componentes do LazReport e WebLaz.. 8- Programaco Visual no Lazarus - Introdugéo.. Tipos de Projetos do Lazarus... Criando 0 Primeiro Programa. Diminuindo 0 Tamanho do Executavel. Conhecendo 0 Explorador de Cédigo. Conhecendo 0 Inspetor de Pr0jet0S....... Conhecendo 0 Inspetor de Objetos, Propried Configurando Propriedades e Eventos dos Objetos.. Criando 0 Segundo Prograrra.. ‘Alinhando Componentes. Bloco de Cédigo. S82e8 Baax Operadores Aritméticos, Operadores Légicos. Operadores Relacionais... Procedures e Functions. Configuracdes Regionais. Fungo StrTolnt. Funcao intToSt.. Funcao StrToFloat. Func FloatToSt. Funcao Date... Fungao Time ou Fungo StToDate Funcéo DateToStr. Funcéo StrToTirre.... Funcéo TimeToStr Recursos do Editor de Cédigo.. 9- Programacso Visual no Lazarus ~ Estruturas de Controle. 114 Estrutura TRY .. EXCEPT... END... Estrutura IF ... THEN ... ELSE mnnnness Programa Exermpio - IF ... THEN ... ELSE... Estrutura WHILE ... DO. Programa Exerrplo - WHILE Estrutura REPEAT ... UNTIL, Programa Exerrplo - REPEAT .. UNTIL Estrutura FOR .. TO (DOWNTO) .. DO. Programa Exerrplo - FOR .. TO (DOW! Estrutura CASE ... OF. 110 - Programacao Visual no Lazarus - Projetos de Exempla. Criando uma Calculadora Completa. Criando um Editor de Texto Simples. Criando um Visualizador de Imagens... 11 Conceitos Bésicas sobre Banco de Dads ¢ SQL. Tabelas. Chave Priméra. Chave Estrangeira. Transagées.... Aplicativos de Banco de Dado: Criar e Gerenciar Banco de Dados.. Linguagem SQL. Tipos de Campos.. Criacdo de Tabelas. Comando SELECT. Comando INSERT. Comando UPDATE Comando DELETE. 12 Acessando Banco de Dados com SQLdb. Modelo de Acesso a Banco de Dados. Visdo Geral dos Componentes... © Componente TSQLConnector.. Configurando Conexao a Bancos de Dados... Criando Bancos, Tabelas e Outros via Cédi © Componente TSQLQuery.. : Do. Personalizando o TSQLQuery. Executando Varias Instrucdes SQL com TSQLQuer Fittrando Registros comTSQLQuery Filter... Filtrando Registros comTSQLQuery.Serverilter. Fittrando Registros com TSQLQuery SQL. Localzando Registos cara TSQLQueryL aca Formulario DataModule. TDatasource.... ‘TDBNavigator.... TDBGHi TDBEdit. ‘TDBMemo. TAC onbebeTDAL sie {TDBAadisGroueTD6 GeeugBax TDBITAgE....0 Criando um Controle de Cheques com SQLite3 e SQLdb.....196 Relacionamento Mestre / Detalhe com SQLdb.. 13 - Acessando Banco de Dados com ZEOS. Visd0 Geral dos Componentes... Configurando Conexéo Usando 0 TZConnection. © componente TZQuery. Criando um Cadastro de Produtos com Firebird e ZEOS 14 - Criando Relatérios com LazReport. \Visd0 Geral dos Componentes. © Componente TR epott... Barra de Ferramentas Objetos... Paleta de Alinhamento.. Barra de Ferramentas Retangulo. Barra de Status do Editor de Relatéirios...... Usando 0 Tectado e 0 Mouse no Editor de Relatoros.. Trabalhando com Bandas (Secdes de Relatorio). © Objeto Caixa de Texto... AFerramenta Realcar Atributo Relatirio do Controle de Cheques com Criando Relatérios para 0 Cadastro de Produtos, ‘Apéndice A - Configurando um Projeto.. Configuracoes da Aplicacéo.... Configuracao dos Fomuiarios. Configuracées de Versio... : Configurando o Nome do Executavel. Apéndice B - Dicas de Programacao Multiplataforma.. Gerenciamento de Arquivos e Pastas. Usando a diretiva {SIF DEF } Unidades Muttiplataforma.. TProcess pore ExecutarPrograrras Extemes, Visual Multiplataforma..... Apéndice C - Arquivos de Texto como Banco de Dados. Componentes de Acesso a Arquivos de Texto. - 306 Desenvolvendo o Projeto de urra Agenda. Apéndice D - Acessando Banco de Dados DBF... 312 Tipos de Tabelas. Criando Tabelas Via Cédigo.. Tipos de campos aceitos. Trabalhando com indices. Manutencdo de Tabelas e Cadastro de Clientes com DBF. ‘Apéndice E - Instalando Servidores de Banco de Dados. Instalando 0 SQLite3 no Ubuntu e Derivados. Instalando 0 SQLite3 no Windows... Instalando o Firebird 2.1 ou 2.5 no Ubuntu e Derivados.. Instalando o Firebird 2.1 04 2.5 no Windows...» Instalando 0 MySQL 5.1 no Ubuntu e Derivados... Instalando 0 MySQL 5.1. no Windows... Instalando 0 PostgreSQL 8.4 no Ubuntu € Derivados....0. Instalando o PostgreSQL 8.4 no Windows... 2343 Links Uteis.. so so BIDIIOgrAFIA.. wn nnrrnnnnnnsennnn sesnnnnsennesnneeens 346, Sobre o Autor Jean Patrick aprendeu_a programar aos «doze anos em Basic e DBase I! Plus usando um computador MSX. Trés anos mais tarde, em 1990, fez um curso de Clipper Summer 87 patrocinado pelo Instituto de Desenvolvimento Econémico e Social do Para (antigo IDESP). Por muito tempo, programou por hobby e para pequena empresa de eletrénica da familia. Em 2000, passou a usar sua primeira distribuicdo Linux (Conectiva 5) em dual boot com o Windows. Em meados de 2006, comecou a estudar programac3o em Delphi e Kylix (descontinuada versdo do Delphi para Linux), com 0 intuito de desenvolver sistemas comerciais. Como nao tinha condicées de comprar uma licenca comercial do Delphi e ser totalmente contra 0 uso de cépias piratas, comegou como desenvolvedor autinomo usando a recém lancada versio gratuita do Delphi, 0 Turbo Delphi Explorer 2006, e o servidor de banco de dados Firebird, também, gratuito. Um ano depois, conheceu o Lazarus e 0 Free Pascal, e passou a acompanhar © desenvolvimento destes e a fazer testes. Atualmente, mantém o site www.jpsoft.com.br com dicas sobre Lazarus e alguns sistemas desenvolvidos nesta ferramenta. Também, trabalha na divisdo de informatica da prefeitura de sua cidade, desenvolvendo sistemas para Linux usando o Lazarus com um servidor de banco de dados PostgreSQL. Introdugao. © Lazarus € um Software Live maduro para o Desenvolvimento Rapido de Aplicacées (RAD) com base no modemo compilador Free Pascal. Com esta ferramenta é possivel o desenvolvimento de aplicacdes multiplataforma. Isto significa que podemos escrever um cédigo e a partir deste compilar aplicativos para executarem em Windows, Linux, Mac OS X ou outra plataforma compativel. Por isso, 0 lema do Lazarus é: "Escreva uma vez e compile em qualquer lugar’. Podemos, também, criar aplicativos para dispositivos mveis, bem como aplicacdes para Intemet usando a tecnologia CGI ou FastCGl. Este livro tem por objetivo ajudar o leitor, iniciante ou nao em programacdo, a conhecer o Ambiente Integrado de Desenvolvimento (IDE) do Lazarus e a programacao em Object Pascal usando 0 compilador Free Pascal. ‘Também, apresenta a IDE Lazarus como alternativa vidvel a0 Delphi, coma vantagem de ser multiplataforma e gratuita, Embora sejam mencionados alguns aspectos mais técnicos, 0 livro concentra-se no uso pratico do Lazarus. So abordados assuntos como: acesso a bancos de dados, geracdo de relatorios visualmente, compilacao para Windows e Linux, entre outros temas. A Quem Interessa Este Livro: Este livro é para aqueles que desejam aprender a desenvolver aplicacdes multiplataforma para desktop usando a IDE Lazarus para 0 compilador Free Pascal e, também, é indicado para desenvolvedores Delphi, Visual Basic ou de outra linguagem que desejam migrar para Lazarus. Para compreender os assuntos abordados no livro, é necessério o leitor ter nocdes de algoritimo e alguma linguagem de programacdo. Portanto, se vocé nao tem nenhum conhecimento nesta drea, recomendo a leitura prévia de alguma apostila, livro ou site sobre estes assuntos. © contetido deste livro é util tanto para programadores iniciantes como para programadores experientes. ‘A didética é um dos pontos fortes deste livro. Os assuntos so considerados com clareza e objetividade, os cédigos dos exemplos so, em sua maioria, comentados e os projetos desenvolvidos ‘so explicados passo a passo para faciltar 0 aprendizado. Todos os exemplos do livo sdo multiplataforma. Foram testados no Windows e no Linux. Como Esta Organizado 0 Livro: © livro € composto de catorze capitulos e cinco apéndices. Principaimente se vocé for iniciante, deve ler os capitulos na sequéncia (recorrendo aos apéndices quando necessério), pois © conhecimento apresentado em um capitulo requer 0 conhecimento adquirido em capitulos anteriores. Segue um resumo dos assuntos abordados no livro. + Capitulo 1 - Breve hist6ria do Free Pascal e da IDE Lazarus - apresenta a historia da criacdo do compilador Free Pascal, bem como a historia do surgimento da IDE Lazarus. £ abordado, também, 0 tipo de licenciamento usado pelo Free Pascal e pelo Lazans. + Capitulo 2 - Obtendo as Compilacées do Lazarus e do Free Pascal - explica onde podemos baixar o Free Pascal e 0 Lazarus. Aborda os diversos pacotes disponiveis para os principais sistemas operacionais. Capitulo 3 - Instalando o Lazarus no Windows - explica 0 processo de instalacao e pés-instalacéo do Free Pascal/Lazarus no Windows usando o instalador padrao, bem como baixar e compilar para Windows 0 Free PascaV/Lazarus a partir do repositorio SVN. Capitulo 4 - Instalando o Lazarus no Linux - explica © processo de instalaco e pés-instalacéo do Free PascalLazarus no Linux (distribuicfo. Ubuntu e derivados) usando os pacotes disponiveis, bem como baixar e compilar para Linux 0 Free PascaV/Lazarus a partir do repositorio SVN. Capitulo 5 - Breve Comparativo Lazarus e Delphi 7 - aborda as principais similaridades e diferencas entre a IDE do Delphi 7 e a IDE do Lazarus. Pontos como velocidade de compilacdo e componentes de terceiros disponiveis para as’ duas IDE's, também, sdo considerados. Capitulo 6 - Conhecendo e Configurando a IDE - aqui so _explicados os principais recursos da IDE Lazarus. Considera, também, varias configuragées que podem ser feitas para deixar a IDE mais intuitiva e inclui explicagao sobre cada item dos onze menus disponiveis. Capitulo 7 - Instalando Novos Componentes - aborda todos os passos envolvidos na instalacdo de novas bibliotecas de componentes na IDE Lazarus. ‘presenta passo a passo 0 processo de instalagdo de bibliotecas de terceiros e bibliotecas que acompanham © Lazarus, mas nao sao instaladas por padrao. Capitulo 8 - Programacao Visual no Lazarus - Introdu¢ao - ensina como criar os primeiros. projetos no Lazarus, diminuir 0 tamanho dos executaveis gerados, os recursos do editor visual de formularios, os Tecursos de edicdo de editor de cédigos, bem como apresenta uma introdugdo a linguagem Object Pascal do Free Pascal. Capitulo 9 - Programaco Visual no Lazarus - Estruturas de Controle - apresenta as principais estruturas de controle da linguagem Object Pascal. Cada estrutura explicada acompanha um exemplo de programa desenvolvido passo a asso. Capitulo 10 - Programagao Visual no Lazarus - Projetos de Exemplo - aqui so desenvolvidos passo a passo trés projetos maiores usando diversos componentes disponiveis no Lazarus. Projetos: Calculadora Completa, Editor de Texto Simples e Visualizador de Imagens. Capitulo 11 - Conceitos Bésicos sobre Banco de Dados SQL - apresenta as principais estruturas da linguagem SQL para criago de tabelas, consultas e manutenco de dados. ‘Aborda 05 tipos de dados e a construcao de tabelas para os principais SGDB livres disponiveis. Capitulo 12 - Acessando Banco de Dados com SQLdb - ensina como usar os componentes da paleta SQLdb para conexao nativa ha diversos bancos de dados. Apresenta os componentes da paleta Data Controls, 0 componente TDataSource, formatacéo_de dados, controle de errs € 0 formuldrio Data Module. E, também, desenvolvido passo a asso um Controle de Cheques com um banco de dados SQLite3 e € explicado como realizar consulta e edicéo mestre/detalhe usando SQLdb. Capitulo 13 - Acessando Banco de Dados com ZEOS - apresenta a biblioteca de componentes ZeosLib corre uma altemativa com mais recursos para conexéo nativa com, bancos de dados. Usando os componentes ZeosLib, é desenvolvido passo a passo um Cadastro de Produtos com foto (incluindo botées personalizados de navegacao e edicéo) acessando um servidor de banco de dados Firebird 2.1. Em adicao, ensina como usar 0 aplicativo mutiplataforma FlameRobin para criar bancos, tabelas, indices e auto- numérico para o Firebird. Capitulo 14 - Criando Relatérios com LazReport - apresenta 0 principais recursos do gerador de relatéirios LazReport Mostra como trabalhar com 0 componente TFrPrintGrid para criar rapidamente relatbrios a partir dos dados exibidos em um TDBGrid. Ensina passo a passo como construir relatérios usando o Editor de Relatorios do LazReport, tendo como base 0s projetos Controle de Cheques "e Cadastro de Produtos desenvolvidos nos capitulos anteriores. + Apéndice A - Configurando um Projeto - ensina como configurar um projeto. Incluindo a escolha do icone da aplicacao, ordem de criacao dos formularios, versionamento etc + Apéndice B - Dicas de Programacdo Multiplataforma ~ apresenta diversos recursos disponiveis._ no Free Pascal/Lazarus para criago de codigo muttiplataforma, bem como executar programas externos. + Apéndice C - Arquivos de Texto como Banco de Dados - explica como pode-se usar os componentes do Lazarus para acessar um arquivo de texto como se fosse um banco de dados. E desenvolvido passo a passo 0 projeto de uma ‘Agenda de Contatos usando arquivo texto com ordenagao & pesquisa por nome. + Apéndice D - Acessando Banco de Dados DBF - explica em detalhes como criar, acessar e dar manutencdo a banco de dados DBF usando 0 componente TDbf do Lazarus e sem. © uso da camada BDE (Borland DataBase Engine) . Usando o componente TDbf, é desenvolvido passo a passo um: Cadastro de Clientes com foto. + Apéndice E - Instalando Servidores de Banco de Dados - explica como instalar 0s servidores de bancos de dados PostgreSQL, MySQL, Firebird e 0 SQLite3 tanto no sistema operacional Ubuntu Linux com no Windows. Download do Cédigo Fonte dos Projetos © cédigo fonte dos projetos desenvolvidos no livro pode ser baixado no seguinte link: http: www. jpsoft. com br/livro_dal.zip Capitulo 1 Breve historia do Free Pascal e da IDE Lazarus Historia do Free Pascal: © Free Pascal (também conhecido pela sigla FPC e anteriormente chamado FPK-Pascal) comecou por volta da década de 90, depois que a Borland descontinuou os compiladores Turbo Pascal e Borland Pascal, prejudicando uma grande comunidade de programadores. © cédigo do FPC comecou a ser escrito pelo estudante Florian Paul Klémpfl e dat vem a sigla FPK-Pascal, que em 1997 se tornou Free Pascal. Nos primeiros estdgios, 0 FPC era escrito em Pascal com 0 compilador Turbo Pascal, que é de 16bits, mas ja produzia cédigo 32bits. Dois anos depois, o compilador ja era capaz de compilar a si proprio, no proceso conhecido como bootstraping, e que é utilizado até hoje para compilar 0 FPC. Com 0 tempo, o Free Pascal mostrou-se exatamente 0 que a comunidade queria: um compilador Pascal de 32bits moderno, robusto, estavel e confidvel. Com isso, o Free Pascal comecou a ganhar mais e mais adeptos e os grandes da programacao em Pascal comecaram a escrever seus programas com ele. Hoje, o Free Pascal (FPC) é um compilador profissional de 32 € 64 bits (ndo se trata de um compilador académico) e de cédigo fonte aberto. Isto significa que qualquer programador do mundo pode contribuir para melhoré-lo e ndo é necessério pagar por uma licenga para poder usé-lo. Ele executa em diversas plataformas, incluindo Windows, Linux e MacOSX. E Desenvolvendo Aplicativos com Lazarus compativel com 0 Turbo Pascal 7.0 e o Delphi 7, pois usa a linguagem Object Pascal, rotinas, classes e unidades com 0 mesmo nome e fungGes, mas possui outras rotinas e funcdes adicionais. Até mesmo € possivel converter projetos Delphi para Free Pascal usando o Lazarus. A partir da versdo 2.4.2 do compilador, foi methorada a compatibilidade com versées mais recentes do Delphi. Historia da IDE Lazarus: Lazarus comecou em Fevereiro de 1999. Ele foi inicialmente fundado por trés pessoas: Cliff Baeseman, Shane Miller © Michael A. Hess. Os trés participavam do projeto Megido (projeto iniciado em 1998 para ser um clone de cédigo aberto do Delphi), que foi dissolvido. Frustrados, eles comecaram o projeto Lazarus. Este teve um grato crescimento de apoiadores e desenvolvedores durante os anos seguintes. Dos trés fundadores, somente Michael A. Hess ainda esté no projeto. O segundo mais antigo membro do grupo é Marc Weustink. Ele juntou-se ao projeto em Agosto de 1999. Seguindo-o veio Mattias Gaertner, em Setembro de 2000. Ambos tém sido os maiores contribuidores para 0 nticleo que faz 0 Lazarus existir. Assim, 0 Lazarus é um Ambiente Integrado de Desenvolvimento (IDE) de cédigo fonte aberto para o compilador Free Pascal. Inclui um editor com destaque de sintaxe, recurso para desenhar visualmente formularios e uma biblioteca de componentes altamente compativeis com a biblioteca de components visuais do Delphi (VCL). A biblioteca de componentes do Lazarus (LCL) inclui equivalentes para os 5 Desenvolvendo Aplicativos com Lazarus principais controles da VCL tais como formulérios, didlogos, caixas de texto, conexo com bancos de dados e outros, para criagao da interface visual com o usuario (GUI). © Lazarus tem por objetivo ser completamente independente de AP| (Interface de Programacao de Aplicacées).. Por exemplo, digamos que vocé esta criando um produto no Windows usando os widgets (componentes visuais) padréo. E vocé quer criar uma verso para Linux. Primeiro vocé decide que widget set ird usar. Digamos, Gtk+. Entdo vocé copia 0 cédigo para a sua maquina Linux, compila e vincula & unidade de interface Gtk+ Pronto, vocé vai agora criar uma verso Linux para 0 produto Windows sem qualquer cédigo adicional. CURIOSIDADE: Conforme registrado na Biblia, Lazaro foi uma pessoa ressuscitada por Jesus Cristo. Portanto, 0 projeto é chamado Lazarus, pois ele foi iniciado ou ressuscitado da morte do projeto Megido. Baseado nas seguintes fontes: wiki lazarus.freepascal.org/Overview_of_ Free_Pascal_and_Lazarus/pt ‘ptwikipedia.org/wiki/Free_pascal lazarusbrasil.orghistoria. php Licenca do Lazarus e do Free Pascal: Tanto 0 Lazarus como o Free Pascal, so desenvolvidos sob a licenca GPL GNU (General Public Licence). Isto significa que ambos acompanham o cédigo fonte e respeitam as quatro liberdades definidas pela Free Software Foundation: 1. A liberdade de executar 0 software, para qualquer uso; 2. A liberdade de estudar o funcionamento de um programa e de adapté-lo as proprias necessidades; 16 Desenvolvendo Aplicativos com Lazarus 3. Aliberdade de redistribuir cépias do software; 4.A liberdade de melhorar o programa e de tornar as modificaces publicas de modo que a comunidade inteira beneficie'se da melhoria. IMPORTANTE: Os aplicativos criados com o Lazarus e o Free Pascal nao precisam obrigatoriamente serem software livre (usando a licenca GPL GNU). Podemos criar aplicacées comerciais com cédigo fonte fechado e cobrar por elas. 7 Capitulo 2 Obtendo as Compilacées do Lazarus e do Free Pascal Este livo foi totalmente baseado na versdo 0.9.31 em desenvolvimento do Lazarus e no Free Pascal versao 2.4.2 , 2.4.3 0u 2.4.4, Neste capitulo, abordaremos onde realizar na Internet o download do Lazarus e do Free Pascal. Vocé pode baixar a IDE Lazarus neste link: http://www. hu. freepascal.org/lazarus/ . ‘A estrutura dos nomes dos arquivos de instalacao do Lazarus, disponiveis no link citado acima, segue basicamente os seguintes padroes: IDE Lazarus: lazarus-{versdo} fnimero da compilacdo}{versao do Free Pascal (56 Windows) data da compilacdo Yplataforma operacional} fextensdo} Free Pascal: fpc-{versao}data da compilacdo}plataforma operacional} fextensdo} Free Pascal Cédigo Fonte: fpc-src-fversao}data da compilacao}plataforma operacional}-extensao} No link http:/www.hu freepascal.org/lazarus/ , vocé vai encontrar a IDE Lazarus e 0 compilador do Free Pascal para Win32, Win64, WinCE, Mac OS X PowerPC, Mac OS X i386, Linux i386, Linux x86_64 e Linux AMD64, como vocé pode ver na figura seguinte: Desenvolvendo Aplicativos com Lazarus Figura 2.1 - Lista de Downloads Os arquivos necessarios para instalacao do Lazarus e do Free Pascal, de acordo com o Sistema Operacional, so os seguintes (observe que no lugar do nimero e da data da compilaco foi colocado a letra X, pois estes mudam diariamente): Para o sistema operacional Windows 32bits (Ex.: XP): Lazamus-0.9.31-XXXXX-fpc-2.4.4-XXXXXXXX-Win32.exe Para o sistema operacional Windows 64bits (Ex: Seven): Lazamus-0.9.31-XXXXX-fpc-2.4.4-XXXXXXXX-win64.exe Para o sistema operacional Windows 32bits + suporte a ‘Windows Mobile (também funciona no Seven): 19 Desenvolvendo Aplicativos com Lazarus Lazanus-0.9.31-XXXXX-fpc-2.4.4-XXXXXXXX-win32.exe Lazarus-0.9.31-XXXXX-fpc-2.4.4-XXXXXXXX-cross-armwince- win32.exe Para o sistema operacional Linux 32bits (i386): fpc-2.4.4-XXXXXXXX.i386.7pM §PC-SrC-2.4.4-XXXXXXXX.i386.1pM lazarus-0.9.31.XXXXX-XXXXXXXX.i386.1pM Para o sistema operacional Linux 64bits (x86_64): fpc-2.4.4-XXXXXXXX.x86_64.1pm ffpc-Sre-2.4.4-XXXXXXXX,X86_64.rpM_ lazarus-0.9.31.XXXXX-XXXXXXXX.x86_64.1pM_ OBS.: Vocé pode instalar a IDE Lazarus em quaisquer um dos outros sistemas operacionais e testar os exemplos do livro. Lembre-se, o lema do Lazarus é: ‘Escreva uma vez e compile em qualquer lugar’. NOTA: Como altemativa, vocé pode, também, usar o seguinte link para baixar as compilacdes do Lazarus e do Free Pascal: ‘fp:/itp.freepascal.org/pub/lazarus/snapshots/ 20 —______ Capitulo Instalando o Lazarus no Windows © Lazarus pode ser instalado no Windows 98SE, XP, Vista, Seven ou superior. Segue duas formas de realizar esta instalagdo: Instalacdo Padrdo (Recomendado): ‘A maneira mais facil de instalar 0 Lazarus no Windows, é usando 0 instalador para esta plataforma, disponivel no link citado no capitulo anterior. Ex: Lazarus-0.9.31-XXXXX-fp¢-2.4.4-XXXXXXXX-win32.exe Depois de executar 0 arquivo, selecione o idioma Portugués (Brasil) e surgiré a tela seguinte: Laz Instolngao de tazarus Projet Figura 3.1 - Tela de Boas Vindas Desenvolvendo Aplicativos com Lazarus Clique em avancar e na tela seguinte escolha a pasta de instalacao do Lazarus. Dé preferéncia a pasta padrao e clique em avancar: £) oraeeet tegen ee pte Gee) oe) Figura 3.2- Escolha a Pasta de Destino Na tela seguinte escolha 0 tipo de instalacéo. Instalacdo completa e todas as opcdes marcadas avancar. 2 Gate Ga] Dee em clique em Figura 3.3 - Selecionar Componentes Desenvolvendo Aplicativos com Lazarus Nas préximas duas telas, escolha se vocé quer criar uma entrada no menu Iniciar e/ou um icone no Desktop respectivamente, e na terceira seguinte clique em Instalar. Depois da instalagdo completada, ao clicar no icone do Lazarus, a IDE vai inicializar j4 com um novo projeto contendo um formulario vazi IDE Lazarus no Windows XP Instalando usando o SVN (Avancado): Para compilar e instalar o Lazarus e o Free Pascal a partir dos fontes disponiveis no repositrio SVN, basta executar os procedimentos explicados a seguir: 23 Desenvolvendo Aplicativos com Lazarus OBS.: Se vocé pretende usar o Lazarus para programar para Windows Mobile, use os instaladores. Pols os passos mostrados aqui sé incluem suporte a arquitetura Win32. Primeiro, & preciso instalar 0 programa TortoiseSVN. Pode baixd-lo no link: http:/tortoisesvn.net/downloads.html Abra 0 Windows Explorer, e clique no menu Arquivo > SVN Checkout... Figura 3.5 - Menu ‘SVN Checkuot..." no Windows Explorer do XP O didlogo que surge usaremos para baixar do SVN os arquivos necessarios. Figura 3.6 - Dislogo Checkust.. 2 Desenvolvendo Aplicativos com Lazarus Em URL of repository: digite o caminho do SVN, em Checkout diretory: a pasta onde os arquivos sero salvos e clique em OK. Repita este processo para os seguintes carrinhos: Para baixar os arquivos necessérios para compilacao: URL of repository: hitp:/svn freepascal.org/svmvfpebuild/branc hes/fixes_2_4/install/binw32 Checkout Diretory: c:\freepascal\binutils\i386-win32\ Para baixar 0 cédigo fonte da versio em desenvolvimento do Free Pascal (neste caso 2.5.1): URL of repository: http://svn.freepascal.org/svivfpcitrunk Checkout Diretory: c:\freepascalpe\2.5.1\ Para baixar 0 cédigo fonte da versio em desenvolvimento do Lazarus: URL of repository: hitp://svn freepascal.org/svnvlazarus/trunk Checkout Diretory: c:Vreepascal\iaz Precisamos, agora, do compilador. Baixe-o usando o link: ‘p:/ftp freepascal.org/pub/fpc/dist/2.4. 2/bootstrap/i386-win32- pc386. zip Descompacte-o na pasta c\freepascalbinutils . Para iniciar a compilacdo do Free Pascal, é necessério criar um arquivo BAT com o nome makefpc.bat e salvé-lo em c:Mreepascal . O arquivo deve ter 0 seguinte contetido (pode usar 0 Bloco de Notas do Windows para editar o arquivo): 25 Desenvolvendo Aplicativos com Lazarus @echo on set myversion=2.5.1 set mypath=c: \freepascal\ fpc\%myversion’s set mybinutils=c:\freepascal\binutils set PATH=%mybinutils%\i386-win32 ;%mypath%\bin\ i 386 -win32;%SPATH®: cd %mypath’s make clean all install INSTALL PREFIX=%mypath% PP=%mybinutils%\ppc386 . exe Salve e execute 0 arquivo. A compilacdo demora um pouco. Agora, é necessario gerar um arquivo de configuragao para o novo compilador criado. Este arquivo é 0 fpc.cfg, que estara direcionando para as pastas criadas. Assim, abra um Prompt de Comando do Windows e execute os dois comandos abaixo: cd c:\freepascal\fpc\2.5.1\bin\i386-win32 fpcmkcfg -d basepath=c:\freepascal\fpc\2.5.1\bi n\i386-win32 -o fpc.cfg Certifique-se de que 0 arquivo fpc.cfg foi gerado na pasta c:\re epascalfpc\2.5. 1\bin\386-win32 . Agora, para compilarmos o Lazarus, é necessario criar outro arquivo BAT com o nome makelaz.bat e salvé-lo em c:Mreepascal . O arquivo deve ter 0 seguinte contetido: @echo on set myversion=2.5.1 set mypath=c: \freepascal\fpc\*myversion® set mybinutils=c:\freepascal\binutils set PATH=%mybinutils%\i386-win32;%mypath’\bin\i 386 -win32;%PATH% cd _c:\freepascal\laz 26 Desenvolvendo Aplicativos com Lazarus make clean all OPT="-glw2" Salve e execute 0 arquivo. A compilacao demora um pouco. Este arquivo sé precisa ser usado uma vez. Para recompilar 0 Lazarus, use 0 menu “Tools >Build Lazarus” na propria IDE Para executar 0 Lazarus, siga para o caminho c:\freepascallaz e execute 0 arquivo lazarus.exe . 7 Capitulo 4 Instalando o Lazarus no Linux Para instalages no Linux, recomendo usar 0 Ubuntu ou seus derivados. Foram feitos testes usando 0 Ubuntu 10.04, 10.10, 11.04 e Linux Mint 10. Instalando usando a Central de Programas do Ubuntu: ‘Seu computador deve estar conectado a intemet Na érea de trabalho do Ubuntu, clique no menu “Aplicativos > Central de Programas do Ubuntu’. Na parte superior & direita, no campo de pesquisa, digite lazarus e automaticamente seré selecionado 0 pacote a ser instalado. Clique no botdo Instalar. Figura 4.1 Central de Programas do Ubuntu Terminada a instalacéo, a IDE estaré disponivel através do menu do Ubuntu: “Aplicativos > Desenvolvimento >Lazarus”. Desenvolvendo Aplicativos com Lazarus OBS.: Esta é a verséo 0.9282 do Lazarus. Nao é recomendado usar ela para acompanhar 0 livro, por ser muito antiga e nao ser compativel com os novos temas do Ubuntu a partir da versdo 10.04 (Ambiance e Radiance). A versao release 0.9.30 do Lazarus estar disponivel no Ubuntu 11.10. Instalando usando os Pacotes (Recomendado): Na sua “Pasta pessoal” no Ubuntu, crie uma pasta como nome pacotes_lazarus. Baixe e copie para esta pasta os trés arquivos RPM necessérios, de acordo com a arquitetura do Linux que esta sendo usado, conforme ja consideramos. Exemplo de arquivos para Linux 32bits: fpc-2.4.4-XXXXXXXX.i386.rpm fpc-StC-2.4.4-XXXXXXXX.i386.rpM Fazarus-0.9.31 XXXXX-XXXXXXXX.1386.rPM Abra um terminal clicando no menu do Ubuntu: “Aplicativos > Acess6rios > Terminal”. Em seguida, digite os seguintes comandos no terminal, lembrando de teclar ENTER no final de cada linha (informe sua senha de usuério se solicitado e aguarde 0 processamento de cada comando): sudo apt-get update sudo apt-get install alien © comando a seguir instala pacotes adicionais necessérios (s6 pressione a tecla ENTER depois de digitar libvorbis-dev): sudo apt-get install libgtk2.0-dev liba52-0.7.4 liba52-0.7.4-dev libdca-dev libdca® Libdts-dev Desenvolvendo Aplicativos com Lazarus Libmadd Libmad®-dev Libmodplug-dev Libogg-dev Libvorbis-dev ‘Agora é preciso converter os pacotes RPM, que foram copiados para a pasta pacotes_lazarus. Esta conversdo é necessaria porque 0 Ubuntu trabalha com acotes de instalacdo no formato DEB. Entéo, primeiro va para pasta pacotes_lazarus, digitando no terminal (0 til ( ~) é um atalho do Linux para ‘Pasta pessoal” do usuario): cd ~/pacotes_lazarus ‘Agora, 0 comando a seguir pode demorar um bom tempo para terminar de executar (seja paciente). Se surgir a mensagem “error: incorrect format: unknown tag”, verifique se vocé baixou 0s pacotes de acordo com seu sistema Linux (32bits =i386 ou G4bits = x86_64). Caso esteja certo, ignore o erro, que a conversao vai prosseguir normalmente. Segue o comando: sudo alien -c *.rpm Terminada a converséo dos tés pacotes RPM, digite o comand abaixo para instalar os trés pacotes DEB gerados: sudo dpkg -i *.deb Se correu tudo bem lf, o Lazarus estaré disponivel através do menu do Ubuntu: “Aplicativos > Desenvolvimento > Lazarus”. Ao iniciar 0 Lazarus pela primeira vez no Linux, pode aparecer © seguinte didlogo com os caminhos do Lazarus, Free Pascal e cédigo fonte, basta clicar no botao Start IDE : Desenvolvendo Aplicativos com Lazarus ry & Configure Lazarus IDE Comper (azn [pomele ppcecerass PC sources ‘The Lazans rectory contains the sources ofthe IDE and the package fs of LCL and many standrd packages. For example it cortains the fe “iefazans ip. The translation fes are seonazaras B = ox ae Figura 4.3 - Clique em Start IDE para Configurar o Lazarus Assim, 0 Lazarus estaré pronto para uso. Instalando usando 0 SVN (Avangado): Para compilar e instalar o Lazarus e 0 Free Pascal no Linux, a partir dos fortes disponiveis no repositério SVN, siga os pasos Primeiro, instalar o aplicativo necessario para baixar o cédigo fonte e um compilador Free Pascal. Abra um Terminal e digite: sudo apt-get install subversion fpc fpc-source Agora execute o comando a seguir, para baixar 0 cédigo fonte do Free Pascal do SVN (é s6 uma linha): svn_co_http://svn, freepascal.org/svn/fpc/trunk ~/fpc_fontes 31 Desenvolvendo Aplicativos com Lazarus Mude para pasta do cédigo fonte com o comando abaixo: cd ~/fpc_fontes Se vocé estiver usando 0 Linux de 32bits, execute 0 comando de compilacao abaixo: make build OS_TARGET=Linux CPU_TARGET=i386 Se vocé estiver usando 0 Linux de 64bits, execute 0 comando compilacao abaixo: make build 0S_TARGET=Linux CPU_TARGET=x86_64 Para gerar os bindrios para Linux de 32bits, execute o comando abaixo (é s6 uma linha): make install 0S TARGET=linux CPU_TARGET=i386 PR EFIX=~/fpc_svn Para gerar os bindrios para Linux de 64bits, execute o comando abaixo (6 s6 uma linha): make install OS_TARGET=linux CPU_TARGET=x86_64 PREFIX=~/fpc_svn Execute 0s comandos abaixo para remover o Free Pascal antigo e copiar os arquivos novos: cd ~/fpc_svn/bin sudo cp -v * /usr/bin sudo rm -Rv /usr/lib/fpc/* 32 Desenvolvendo Aplicativos com Lazarus sudo cp -Rv ~/fpc_svn/Lib/fpc/* /usr/Lib/fpc sudo Un -sf /usr/Lib/fpc/2.5.1/ppc386 /usr/bi n/ppc386 sudo rm -Rv /usr/share/fpcsrc/* sudo mkdir /usr/share/fpcsrc/2.5.1 sudo cp -Rv ~/fpc_fontes/* /usr/share/fpcsrc/ 2.5.1 ‘Agora & necessario ctiar 0 arquivo de configuracao fpc.ctg . Assim, execute 0 comando abaixo: sudo /usr/lib/fpc/2.5.1/samplecfg /etc Precisamos editar 0 arquivo de configuragio. Para isso, execute 0 comando: sudo gedit /etc/fpc.cfg No editor que surge, pressione CTRL + H e no didlogo seguinte, em ‘Procurar por.” digite -Fu//e em ‘Substituir por:” digite -F u/usr/lib/fpc/ , clique no boto “Substituir todas” , salve efeche o editor. \Voltando para 0 Terminal, execute 0 comando seguinte para baixar 0 cédigo fonte do Lazarus (é sé uma linha): svn co http://svn. freepascal.org/svn/lazarus/tr unk ~/lazarus_fontes Mude para pasta do cédigo fonte com o comando abaixo: 3 Desenvolvendo Aplicativos com Lazarus cd ~/lazarus_fontes Para compilar e gerar 0 Lazarus, execute 0 commando abaixo: make clean all Os comandos seguintes criam links para o Lazarus: sudo ln -s ~/lazarus fontes/startlazarus /us r/bin/startlazarus sudo In -s ~/lazarus_fontes/lazarus /usr/bin/la zarus Para criar um menu no Ubuntu para o Lazarus, clique no menu Sistema > Preferéncias >Menu principal . No didlogo que aby, Clique em Desenvolvimento (a esquerda) e clique no botao Novo item. Vai surgir 0 didlogo mostrado abaixo: Figura 4.4 - Didlogo para Criar Item de Menu Em Nome: digite Lazarus, em Comando: digite startazarus e em Comentario: digite IDE Lazarus . Clique no botéo com 0 icone de lancador e localize o icone do Lazarus no seguinte caminho: [SUA_PASTA_PESSOAL/Iazarus.fontes/images/ide _icon48x48.png e clique em Abrir. De volta a0 dialogo, clique em OK. Desenvolvendo Aplicativos com Lazarus ‘Agora, 0 Lazarus estaré disponivel através do menu do Ubuntu: “Aplicativos > Desenvolvimento > Lazarus”. 35 Capitulo 5 Breve Comparativo Lazarus e Delphi 7 © Lazarus objetiva ser compativel, principalmente, com 0 Delphi 7. Entdo, vejamos algumas das diferencas e simiaridades entre estas duas ferramentas. Primeiramente, embora ambos usem praticamente a mesrra sintaxe Object Pascal, nao é possivel abrir um projeto Delphi diretamente no Lazarus ou vice versa. Mas 0 Lazarus possui um recurso para converter (com limitagGes) projetos Delphi. Extensdes de arquivos: ‘Arquivo Lazarus Delphi Projetos “pie Ipr dpe Pacotes pk. -dok Formularios ifm ou .dim fm: Unidades -PaS OU pp “pas Desenvolvendo Aplicativos com Lazarus ee Prooetes [Evens | Fevers | Restricted MS Sane Sei 3 0 Cone top 12 Lael Figura 5.3- Object TreeView Figura 5.4 -Object TreeView e Object Inspector e Object Inspector do Lazarus do Delphi 7 Desenvolvendo Aplicativos com Lazarus Form eid et [far _ ae Figura 5.5 - Exemplo de Figura 56 - Exemplo de Formulério no Lazarus. Formulario no Delphi Figura 5.7 - Code Explorer e Source Editor do Lazarus Desenvolvendo Aplicativos com Lazarus a ete) Figura 5.8 - Code Explorer e Source Editor do Delphi Para criar relatérios visualmente, 0 Delphi usa 0 QuickReport ou o Rave. J o Lazarus, usa por padrao o LazReport (existe uma verséo para Delphi chamada FreeReport) ou o FortesReport (também existe uma verso para Delphi). Componentes de Terceiros Gratuitos: Segue alguras importantes bibliotecas de componentes de terceiros, com versées para Lazarus e Delphi: ZEOS: A bilbioteca ZeosLib contém componentes para conexao nativa aos principais bancos de dados existentes (Firebird, SQLite, MySQL, Oracle, PostgreSQL, MSSQL, etc). Agiliza a programacao, deixa a instalacao do seu sistema facil 0 mais importante, deixa seu sistema mais rapido. E OpenSource. ACBR: Conjunto de componentes que perrrite acesso direto a Impressoras Fiscais, Gavetas de Dinheiro, Impressoras de Cheque, Transferéncia Eletrénica de Fundos (TEF), Monitor de Bombas de Combustivel, Display de Mensagens, etc, sem 39 Desenvolvendo Aplicativos com Lazarus DLL's, interagindo direto na porta serial (ou outra porta que estejaligado 0 equipamento). € OpenSource. Mais informacées, acesse o site: acbr.sourceforge.net/drupal/. ONGUARD: Conjunto de componentes para proteger executaveis, criar versées demo e ou limitar a execugdo de um programa em rede ou por periodo. E OpenSource. Veja um exemplo de uso no link: http/www.activedelphi.com.brimodule s.php?op=modioad&name=Newséfile=articleSsid=413 . POWER PDF: Biblioteca de componentes para desenvolver visualmente relatérios diretamente em PDF. E OpenSource. OBS.: Todos os pacotes de componentes citados, quando instalados no Lazarus, funcionarao tanto no Windows como no Linux. Velocidade de Compilacao: No passado, a compilagao dos executaveis no Lazarus para Windows demorava muito mais do que no Delphi. Hoje a velocidade é quase igual. Basta seguir a seguinte técnica para compilar: pressione Ctl + F9 e depois de compilado, pode executar com F9. Também no Lazarus, no menu Run (Executar), temos a opco "Quick compile" (Compilacao répida). ATENCAO: Veja no Capitulo 8 como resolver a questéo de executaveis grandes no Lazarus. Como vimos nesta breve comparacdo, os programadores Delphi, praticamente, se sentiréo em casa trabalhando com 0 Lazarus. Evidentemente, o Lazarus tem suas manhas e macetes de uso, que sao aprendidos com o tempo. Capitulo 6 Conhecendo e Configurando a IDE © Lazarus depois de instalado corretamente, possui por padrao uma boa configuraco. Mas podemos melhorar a IDE. E a medida que formmos fazendo isso, vamos conhecer as principais caracteristicas dela. Mudando 0 idioma da IDE para Portugués do Brasil: Clique no menu “Tools > Options ...”, e no didlogo que se abrird (@juste 0 tamanho para ver todas as opcées), clique em Desktop na lista da esquerda, e, na direita, em Language, escolha Portuguese [pbl, clique no botdo OK e reinicie a IDE. Desktop es omy Serna seine _ _ sce ent orgs tom ne veya emcee "Ktonactenees | Memes @ Dela ever Atay 1 Hs or mised bts aes, asc ontens ne fommenapeta seve Ine an ane ci eterna) fens meses ronan + Ouch her nd we ng os Figura 6.1 - Mudando 0 idioma para Portugués do Brasil Desenvolvendo Aplicativos com Lazarus A partir deste ponto do livro, serdo usadas referéncias a IDE em Portugués do Brasil, e as figuras e os exemplos terdo como base o Lazarus para Linux. Mas, pode-se usar o Windows, pois sero citados quaisquer detalhes em relacao a este sistema. Organizando as janelas da IDE: Ao iniciar o Lazarus pela primeira vez, as janelas aparecem desorganizadas. A organizacao mostrada abaixo foi feita coma definicao de video 1280x800. ‘Também, foram adicionados dois novos didlogos, 0 Explorador de Cédigo e 0 Inspetor de Projetos, que podem ser selecionados no menu Exibir e no menu Projetos, respectivamente. Figura 6.2- J anelas Organizadas Para que a janela do Editor de Cédigo néo mude de posico quando vocé fechar e reabrir a IDE, clique no menu Ferramentas >Opsées ... ; Desenvolvendo Aplicativos com Lazarus No didlogo que se abrird, clique em J anelas, na lista da esquerda, e, na direita, em Posicées das J anelas, escolha Editor de Cédigo, marque Posicéo personalizada, clique no botdo Obter Posicdo, clique no botao Aplicar e, aproveitando esta mesma tela, marque, bem acima, a opcao “Exibir um nico botao na Barra de Tarefas” (esta opcdo é muito util se for usar 0 Lazarus no Linux) e clique em OK. Outras Configuragées: ‘Abra novamente 0 didlogo “Opcées IDE” (menu Ferramentas > Opcées .. Na lista de categorias, a esquerda, vocé pode querer alterar as seguintes configuracdes: 43 Desenvolvendo Aplicativos com Lazarus Ambiente => Arquivos: Se vocé no quiser que na inicializagéo do Lazarus seja aberto 0 Ultimo projeto visualizado, desmarque “Abrir 0 titimo projeto ao iniciar’. Se apareca um didlogo de informacées durante a dos programas, marque “Exibir didlogo de pode, também, marcar “Auto fechar o didlogo de 6 \) s a a a a wom Demet o Figura 6.4~ Tela Ambiente => Arquivos Editor => Geral: Tem a opgao “Tabulagdes endentam blocos”, que, quando marcada, aumenta 0 recuo de um bloco de texto selecionado teclando TAB ou diminui teclando SHIFT + TAB. ‘Também, recomendo deixar o valor 2 em“Largura tabulacées”. Editor => Exibir: Aqui vocé pode alterar o tamanho das fontes do editor de cédigo em “Altura da fonte do Editor’. Se desejar ver © niimero das linha do editor, marque “Exibir numero de linhas”. Desenvolvendo Aplicativos com Lazarus Editor => Exibir => Cores: Aqui vocé pode definir o estilo de cores de destaque de sintaxe. Inclusive vocé pode mudar do estilo Default para o estilo Delphi Figura 6.5 - Estilo de Cores Editor => Complementos e Dicas: Aqui é importante marcar “Auto remover métodos vazios”. Também, vocé pode diminuir 0 tempo para aparecer o auto completar cédigo em “Atraso para dicas e caixa de conclusao” (sugiro deixar no minimo). Ferramentas de cédigo => Espaco: Para o cédigo autogerado ficar mais legivel, marque simbolo em ‘Inserir espaco na frente de” e em “Inserir espaco apés”. Depurador =>Geral: Quando vocé interrompe a depuragao de um projeto, aparece uma mensagem de parada um pouco incémoda. No proprio diélogo da mensagem jé tem um boto para ela ndo aparecer novamente. Porém, se quiser desativa-la logo, desmarque “E xibir mensagem na parada”. © didlogo “Opcées IDE” possui varias outras possiveis configuracdes para o Lazarus. Fica a seu critério estudé-las. 45 Desenvolvendo Aplicativos com Lazarus Conhecendo os Menus da IDE: MENU ARQUIVO: {@) Nova Unidade Novo Formulirio D Novo, abrir ctko Bi Reverter Abrir Recente . Bi salvar cts [Bj salvar como W@salvartudo — ctleshittes X Fechar cuir & Fechar tudo % Limpar diretério.. B imprimir. cthep & Reiniciar Bi sair Figura 6.6 - Menu Arquivo Nova Unidade: Cria um arquivo para nova unidade (Pascal Source). Novo Formulario: Cria um novo formulério: uma janela visual e seu arquivo fonte Pascal associado. Novo ...: Abre uma caixa de didlogo com uma variedade de novos tipos de arquivos e projetos para criar. Abrir ..: Abre uma caixa de didlogo que habilita vocé a navegar pelos arquivos e escolher um arquivo existente para abrir. Desenvolvendo Aplicativos com Lazarus Reverter: Remove as mudancas durante a edicdo e restaura o arquivo para seu estado original. Abrir Recente: Fornece uma lista dos tltimos arquivos abertos, possibilitando reabri-los facilmente. Salvar: Salva 0 arquivo corrente (visivel no editor), utilizando seu nome original de arquivo. Se este nao tver um nome, o sistema ira perguntar pelo nome que vocé deseja salvar (como. no Salvar Como...). Salvar Como ...: Permite que vocé escolha um diretério e um. nome de arquivo para salvar 0 arquivo atual. Salvar Tudo: Salva todas as alteracées feitas em todos os arquivos abertos no Editor de Cédigo, utiizando os nomes originais dos arquivos. Se algum arquivo nao tiver um nome, 0 sistema ird perguntar pelo nome que vocé deseja salvar (como. no Salvar Como ...). Fechar: Fecha o arquivo atual, perguntando se salva todas as mudangas do editor. Fechar tudo: Fecha todos os arquivos abertos no Editor de Cédigo, peguntando se salva as alteracées para cada arquivo. Limpar diretério ...: Disponibiliza um didlogo com uma série de filtros editéveis para remocao de arquivos do corrente diretério. Muito utilizado para remogdo de arquivos -bak e outros temporarios. Imprimir Cédigos. .: Pemnite imprimir 0 arquivo em uso no Editor de a7 Desenvolvendo Aplicativos com Lazarus Reiniciar: Reinicia a IDE. Muito util quando vocé instala novos componentes. Sair: Sai do ambiente Lazarus, depois de perguntar se salva todos os arquivos editados. MENU EDITAR: ® Destazer ct @ Refazer celashitesz, & Recortar cutex & copiar ctv @ colar ctw (i Selecionar tudo eta Selecionar para fixar Selecionar bloco de cédigo Selecionar palavea tlk, Selecionar linha ct Selecionar pardgrato B Recuar selesso tls 1 Retirar recuo da selecao cw “5 Selegdo em maidsculas tek. 4q Selecio em minisculas ask 0 4% Trocar maidiscua/minésculanaselegso tek, P 4F ordenar selegso. Tabulacbes para espacos na selecao Interromper Linhas na selesao Inserir do Mapa de Caracteres cctleshittem Figura 6.7 - Menu Editar Desfazer: Desfaz a Ultima acao de edicao. Desenvolvendo Aplicativos com Lazarus Refazer: Refaz a tiltima ago de edicdo que foi revertida pelo Desfazer. Recortar: Remove 0 texto ou item selecionado e 0 coloca na rea de transferéncia. Copiar: Faz uma cépia do texto selecionado, deixando o original no lugar, e coloca uma cépia na drea de transferéncia. Colar: Coloca o contetido da rea de transferéncia na posicao do cursor. Se texto tem sido selecionado na posicao do cursor, © contetido da area de transferéncia iré substituir o texto selecionado. Selecionar tudo: Seleciona todo texto. Selecionar para fixar: o mesmo. Selecionar bloco de cédigo: 0 mesmo. Selecionar palavra: 0 mesmo. Selecionar linha: 0 mesmo. Selecionar paragrafo: 0 mesmo. Recuar selecao: Adiciona um numero especifico de espacos antes do texto selecionado. Retirar recuo da selecdo: Remove um nlimero especifico de espacos antes do texto selecionado. Selecdo em maitisculas: Passa todo o texto selecionado para caixa alta, letras maidsculas. 49 Desenvolvendo Aplicativos com Lazarus Selecdo em minuisculas: Passa todo 0 texto selecionado para caixa baixa, letras mindisculas. Trocar maidsculas/minusculas na selecéo: Altema entre maitisculas e minisculas 0 texto selecionado. Ordenar selecdo...: Ordena linhas (ou palavras ou arégrafos) alfabeticamente; podendo ser: ascendente ou descendente; e sensitivo a caixa ou nao. No meio do cédigo fonte do programa, claro, nao faz sentido, mas se vocé tem uma lista em que vocé precisa ordend-la, vocé utlizard esta ferramenta. Tabulagdes_para espacos na selecdo: Converte as tabulacées (TAB) no texto selecionado em’espagos. O numero de espacos ndo tem quantidade fixa, mas é 0 numero necessario para preencher a largura equivalente da tabulacdo. Interromper Linhas na selecdo: Se algurma linha no texto selecionado for maior que 80 caracteres ou 0 numero especificado no didlogo ‘Opcées IDE”, entéo a linha é& quebrada no limite de palavras e continua na préxima linha. Inserir do Mapa de Caracteres: Insere simbolos nao existentes no teclado, como caracteres acentuados. Mostra um didlogo com o mapa de caracteres. Desenvolvendo Aplicativos com Lazarus MENU LOCALIZAR: Localizar a Loatzar aur © Localize Proxima RB (© Localizar Anterior sires 2 Localizr nos arquivo. aistinese © subst aur Pesquisa incremental ae repo ia auc salar tes cu 1 sattaradiante austen ‘Adicionar ponto de salto ao istxeo Sata para. préxime erro rs Salta para ero anterior cestreora Definicum marcador ice 1 sattar para o préxime marcador Sattar para omarcador anterior Localizar ore final dobloco decédigo HQ, Localize iii do boco de edigo civa.B LocaizarDecaragiosobecusor —_Alteacima 19 abrir arquivo sb ocrsor esnetoene leparaa diretia deincurso Localize referéncasdoidentiicador. Uta de Procedientor. aes Figura 6.8 - Menu Localizar Similar a facilidade encontrada na maioria dos editores de texto. Uma caixa de didlogo aparece disponibilizando a entrada de um texto para procurar. Localizar Préxima, Localizar Anterior: Procurar novamente elo anterior texto encontrado, na especificada direcdo. Localizar nos arquivos Mostra um didlogo com opcdes de procura. : Procura pelo texto nos arquivos. 51 Desenvolvendo Aplicativos com Lazarus Substituir ...: parecido com ‘Localizar’. Exibe um didlogo com lugares para entrar com o texto para procurar e substituir, e opcées de procura Pesquisa Incremental: Procura pelo texto enquanto vocé esta colocando os caracteres de procura. Exemplo: depois de vocé escolher ‘Pesquisa Incremental”, se vocé pressionar “p" 0 primeiro “p’ ira ser marcado. Se, em seguida, vocé apertar ‘t”, 0 editor iré procurar 0 préximo “pr” e marcé-lo. E assim por diante. Ir para linha ...: Move 0 cursor de edic8o para uma linha especifica no arquivo. Saltar atrés: Move de volta 0 arquivo para a proxima marcacao (precisa ter usado “Adicionar ponto de salto ao histérico”). Ira mover para marcagées em outros arquivos no editor. Saltar adiante: Move para proxima marcacao. Adicionar ponto de salto ao histérico: Adiciona marcacées u pontos de pulo para 0 arquivo. Saltar para o préximo erro, Saltar para o erro anterior: Move o cursor para linha do préximo ero reportado ou do anterior. Definir um marcador livre: Define um marcador de texto, com © ntimero de marcacao seguinte ao tiltimo marcador. Dica: por meio do menu pop-up do editor (clique com 0 botao direito do mouse no texto) vocé tem mais opcdes de criacdo e navegacao de marcadores de texto. 52 Desenvolvendo Aplicativos com Lazarus Saltar para o préximo marcador, Saltar para o marcador anterior: Salta para o marcador de texto seguinte ou anterior, respectivamente. Localizar outro final do bloco de cédigo: Se posicionado em Um inicio de bloco, encontra 0 correspondent: fim e vice-versa. Localizar inicio do bloco de cédigo: Move para 0 inicio do procedimento ou funcao em que o cursor encontra-se. Localizar Declaraco sob 0 cursor: Encontra o lugar em que © identificador selecionado é declarado. Pode ser 0 mesmo arquivo ou outro aberto no editor, se o arquivo nao esta aberto, ele seré aberto (entéo se um procedimento ou funcdo esta declarado, por exemplo, no arquivo classesh.inc , este iré ser aberto no editor). Abrir arquivo sob 0 cursor: Abre 0 arquivo, cujo o nome é selecionado no cursor. Util para olhar arquivos incluidos ou que contém outras unidades usadas no projeto. Ir para diretiva de incluso: Se o cursor for posicionado em um arquivo que esteja incluido em um outro arquivo, vai ao lugar no outro arquivo que chamou o arquivo incluido. Localizar referéncias do identificador ..: Produz uma lista de todas as linhas no arquivo atual, ou o projeto atual ou em todos 05 arquivos anexados, em que um identificador é mencionado. Lista de procedimentos...: Produz uma lista de todos os procedimentos e funcGes no arquivo atual, com os nuimeros de linha onde estao definidos.. 53 Desenvolvendo Aplicativos com Lazarus MENU EXIBIR: $9 inspetor de Objetos mn & editor de codigo Mensagens Bi Explorador de codigo Editor FPDOc B navegador codigo ® navegador Restricbes Componentes Histérico de Saltos 2) Lista "ToDo" (fazer) Dependéncias da Unidade [85 alternar exibic8o formulériofunidade FIZ I Editor de Ancora B Ordem Tabulagao Resultados da busca ctlealeer Paleta de Componentes ¥ Botoes IDE. ‘# Janelas de Depuracao . Interno IDE 0 Figura 6.9- Menu Exibir Seria redundante comentar cada item deste menu. Pois, basicamente cada item exibe um didlogo correspondente ao nome do item (Por exemplo, o item Mensagens exibe o didlogo de mensagens de erro e de compilacdo). Estes didlogos so bem intuitivos e proveem recursos que facilitam a criagdo do cédigo ou sua andlise e, também, do design dos formulrios. Mais a frente, comentaremos sobre alguns deles. Desenvolvendo Aplicativos com Lazarus MENU FONTE: 1 Comentarselecdo celeste 1 Descomentar selecao cctleshires {0 lternar comentario cctleshiresw Circundarselecao.. tleshirten Circundar SIFOEF . ctleshirteo Completar cédigo ccleshire+c Adicionar unidades a secio"uses"...AlteF11 Refatorar . |S Veriicagae répida de sintaxe Tentar identifica bloco nao fechado Tentar identificar IFDEF/ENDIF fora de ugar Palavra-chave CVS 6 Geral r © inserie"ToD0" cctleshirtet ) Informacoes da Unidade Formatador de Cédigo ED" , Figura 6.10 - Menu Fonte Comentar selecdo: Toma 0 texto selecionado um comentario inserindo antes de cada linha os caracteres: // . Remove as marcas de comentarios. Descomentar selec Alternar comentério: Comenta ou descomenta um bloco selecionado. Circundar selecdo ...: Disponibiliza um menu flutuante com opcées para incluir 0 texto selecionado dentro de uma das opcées(begin ... end; ty... except try... finally; repeat... until; { ~- Jete). 55 Desenvolvendo Aplicativos com Lazarus Circundar $IFDEF...: Circunda um bloco selecionado com diretivas $IF DEF. Importante em programacdo multiplataforma. Completar Cédigo: Muito utiizado pelo desenvolvedor, permite completar 0 cédigo de um método, procedimento ou funcdo, declarado na interface. Ao chamar esta rotina, o “esqueleto” do procedimento ou funcao é criado na secio implementaco (implementation) e o cursor posicionado neste. Adicionar unidades & seco “uses” ...: Adiciona unidades do projeto 8 clausula uses da unidade de cédigo atualmente exibida no editor de cédigo. Refatorar: Possui um submenu com ferramentas para refinar 0 cédigo. Verificacao répida de sintaxe: Verifica erros de sintaxe no cédigo. Tentar identificar bloco ndo fechado: Verifica blocos de cédigo sem fechamento (begin sem 0 end). Tenta identificar IFDEF /ENDIF fora de lugar: 0 mesmo. Palavra-Chave CVS: Insere no cédigo palavras chaves para serem usadas com CVS. Geral: Insere no cédigo avisos GPL, LGPL e entre outros. Inserir “ToDo”: Prové um didlogo para inserir comentario sobre pendencias de cédigo. Informacées da Unidade ...: Exibe um didlogo com informacées sobre o arquivo da unidade de cédigo atualmente exibida no editor de cédigo. 56 Desenvolvendo Aplicativos com Lazarus Formatador de Cédigo "JEDI": Prové ferramentas para formatar 0 texto do cédigo tomando-o mais legivel. MENU PROJ ETO: € Novo Projeto {8 Novo Projeto do Arquivo... 49 AbrirProjeto.. cuter Abr Projeto Recente ‘ #8 Fechar Projeto £2 salvar Projeto BB Salva Projeto Como Publicar Projeto.. # inspetor de Projetos # Opcbes deProjeto cculeshireera ¢ # Remover do Projeto @ Unidades.. cule S Formusrios shirsei2 B exibirronte Figura 6.11 - Menu Projeto Novo Projeto ...: Cria um novo projeto. Exibe um didlogo que possibilita escolher entre diversos tipos de projetos. Novo projeto do arquivo ...: Permrite que vocé selecione um arquivo a partir do qual serd criado um novo projeto. Abrir projeto ...: Abra um projeto salvo. Abrir Projeto Recente: Exibe uma lista com os projetos recentemente trabalhados. Fechar Projeto: Fecha 0 projeto atual. 7 Desenvolvendo Aplicativos com Lazarus Salvar Projeto: Salva todos os arquivos do projet. Salvar Projeto Como nome. Permite salvar 0 projeto com outro Publicar Projeto ...: Cria uma cépia de todo o projeto para envio. Inspetor de Projetos: Exibe um didlogo com a estrutura do projeto. Opcées de Projetos ...: Exibe um didlogo com diversas ‘opcdes de configuracées do projeto. Adicionar arquivo editor ao Projeto: Adiciona ao projeto o arquivo atualmente exibido no editor de cédigo.. Remover do Projeto ...: Exibe um didlogo com arquivos que podem ser removidos do projeto. Unidades ....: Exibe um didlogo com as unidades de cédigo do projeto. Formulérios ...: Exibe um didlogo com os formulérios do projeto. Exibir Fonte: Exibe 0 cédigo fonte do projeto. Desenvolvendo Aplicativos com Lazarus MENU EXECUTAR: © compiar aur contre shiners complaaoripia (© Abortar constrzo > execs ® 1 ‘errassardeno fn Pi exectaratéocarsor 6 a De parametros decreed ‘@ Parr Oepurado ts Conigrar argue Constrursbxecuar 2 2 ‘Adicionar obserador esr ‘Adicionar pono de paras . Figura 6.12 - Menu Executar Compilar: Compila as alteragées no projeto e gera o executivel. Construir: Recorrpila todo 0 projeto e gera 0 executavel. Compilagao rapida: Efetua uma compilacao répida. Abortar Construcao: Interrompe a compilacao do projeto. Executar: Compila 0 projeto e inicia a execucdo do mesmo vinculado a IDE Lazarus. Pausar: Suspende a execucio do programa. Desenvolvendo Aplicativos com Lazarus Exibir ponto de execucéo: Coloca 0 cursor no ponto de execucao corrente. Passar dentro: Executa 0 programa um passo de cada vez, até um ponto marcado no cédigo fonte. Passar sobre: Executa 0 programa até a instrucdo marcada no cédigo, ignora esta instrucdo e prossegue com a execucéo do programa. Passar fora: Executa 0 programa um passo de cada vez, até um ponto marcado no cédigo fonte incluindo unidades de cédigo dependentes. Executa até o Cursor: Executa 0 programa até a posicao do curso no cédigo e continua a execucéo clicando no botao Executar. Parar: Interrompe a execucdo do programa. Parametros de Execucdo ...: Exibe um didlogo que permite configurar parametros e varidveis de ambiente para 0 programa em execuca Parar Depurador: Interrompe a verificacdo de erros em tempo de execucdo. Construir Arquivo: Compila apenas a unidade de cédigo atualmente exibida no editor de cédigo. Executar Arquivo: Executa apenas a unidade de cédigo atualmente exibida no editor de cédigo. Desenvolvendo Aplicativos com Lazarus Configurar arquivo Construir+Executar ...: Exibe um didlogo que permite configurar a construcao e/ou execucao de um nico arquivo. Inspecionar ...: Exibe didlogo “Iinspetor do Depurador” de erros. Avaliar/Modificar ...: Exibe didlogo “Avaliar/Modificar” do depurador de erros. Adicionar observador ...: _ Exibe didlogo ‘Propriedades observador” do depurador de erros. MENU PACOTE: Novo pacote. Abrir pacote carregado .. 2 Abrirarquive de pacote (pk) ‘Abrirpacoterecente 5 % ratio dePacotes istalar/Desintalr pacotes Figura 6.13 - Menu Pacote Novo pacote ...: Cria um novo pacote de components. Abrir pacote carregado ...: Exibe uma lista de pacotes instalados, possibilitando abrir um ou mais deles. Abrir arquivo de pacote (.|pk): Permite abrir um arquivo de pacote. ol Desenvolvendo Aplicativos com Lazarus Abrir pacote da unidade atual: Abre o pacote de Componentes ao qual pertence a unidade de cédigo exibida no editor de cédigo. Abrir recente Pacote: Exibe uma lista com os pacotes abertos. recentemente. Adicionar unidade ativa a um pacote ...: Adiciona 0 arquivo da unidade de cédigo exibida no editor de cédigo. Grafico de Pacotes: Exibe uma arvore hierérquica dos pacotes atualmente instalados e suas dependéncias. Instalar/Desinstalar pacotes ...: Exibe um didlogo que permite instalar novos pacotes (geralmente pacotes adicionais presentes na distribuicao do Lazarus, mas nao instalados por padrao) ou desinstalar pacotes. MENU FERRAMENTAS: opstes. istiso examina diretéro Fonte do FPC Modelos de codigo 2 editor detinigbes das feramentas decid. pcbes modelos de projeto. Configurar fecramentas externas © comparar(oim, ST veicar arquivo LFM no Edtor 2 Converter undade Delphi para Lazarus. 1 converter proto Delphi para Lararus. 7 Converter pacote Delphi para Lazarus. 7 Converter DFM bindro para LFMtento + verificar sntaxe Converter codificast0 dos projetos/pacotes. (© construrLazarus com perfit DepurariOE © contigurar"Construga Lazarus” Figura 6.14 - Menu Ferramentas Desenvolvendo Aplicativos com Lazarus Opcées ...: Exibe um didlogo que permite realizarmos diversa configuracées da IDE Lazarus. Reexaminar diretério fonte do FPC: Reexamina o diretério. que possui os arquivos de cédigo fonte do Free Pascal para efetivar alguna atualizacao. Modelos de Cédigo: Exibe um didlogo para criarfeditar modelos de cédigo. Editor definicdes das ferramentas de cédigo ...: Exibe um didlogo com todas as definigées do Free Pascal, diretério fonte Lazaro, outros diretorios e diretérios de pacotes. Opces modelos de projeto: Exibe um didlogo para definicao do carrinho dos modelos de projeto. Configurar ferramentas externas ...: Exibe um didlogo que permite adicionar diversas ferramentas externas (geralmente macros) a0 conjunto de ferramentas do Lazarus. Comparar (Diff).... Exibe um didlogo que permite a comparaco entre os dois arquivos em busca de diferencas. Converter unidade Delphi para Lazarus ...: Exibe um didlogo que permite converter unidades de cédigo escritas no Object Pascal do Delphi em unidades de cédigo Free Pascal/Lazarus. Converter projeto Delphi para Lazarus ...: Exibe um didlogo que permite converter um projeto desenvolvido no Delphi em um projeto Lazarus. Converter pacote Delphi para Lazarus ...: Exibe um didlogo que permite converter um pacote de componentes i) Desenvolvendo Aplicativos com Lazarus desenvolvido para 0 Delphi em um pacote de componentes compativel como Lazarus. Converter DFM binario para LFM texto + verificar sintaxe 1 Exibe um dialogo que permite converter arquivos DFM do Delphi em arquivos LFM do Lazarus. Converter codificacdo dos projetos/pacotes ...: Converte a codificacao da tabela de caracteres dos arquivos de projetos ou pacotes. Construir Lazarus com perfil: Depurar IDE: Constréi a IDE Lazarus coma configuracao atual. Configurar “Construcao Lazarus" ...: Exibe um dialogo com opces de configuracao da construcao da IDE Lazarus. MENU J ANELAS: Editor de cédigo Inspetor de Objetos Inspetor de Projetos project Explorador de Cédigo. Mensagens Formt Figura 6.15 - Menu J anelas Exibe lista das janelas abertas. MENU AJ UDA: @ Ajuda Online & Reportar uma falha ("bug") © sobre o Lazarus Figura 6.16 - Menu Ajuda Desenvolvendo Aplicativos com Lazarus Ajuda Online: Abre a ajuda online no navegador padrio. Reportar uma falha (“bug”) ...: Exibe a pagina Wiki do Lazarus sobre como relatar um bug. Sobre o Lazarus: Exibe um dialogo com algumas informacées sobre Lazaro. Barra de Ferramentas Rapidas: @ovBeoas GSd ila Figura 6.17 - Barra de Ferramentas @)| Nova Unidade de Codigo | 5) Abrir Arquivos & Satvar Arquivo Atual G | Salar Todos os Arquivos 5 Novo Formulario | Alterar Formulério/Unidade @ | Exibir Unidades do Projeto ||| Exibir Formulérios do Projeto > Executar Projeto i) Pausar Depuracao (@ Parar Depuracéo ©) | Passar Para Proxima Linha © Passar sobre préxima Linha |) Executar até retomo da fungo Conhecendo as Paletas de Componentes: ‘S82 Adon Common Cons Dios Msc Data Cantls Osa Aces Sytem Syst @ Teoemeoaone oS6 Figura 6.18 - Paleta Standart Componentes basicos: TMainMenu, Tpop-upMenu, TButton, ‘TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, 6 Desenvolvendo Aplicativos com Lazarus TListBox, TComboBox, TScroliBar, TGroupBox, TRadioGroup, TCheckGroup, TPanel, TFrame e TActionList . “secs! ammen Coals eps Mc DataCore Ox ces Sytem Seat @ SOAMGOAN + oT AP EL See Figura 6.19 - Paleta Additional Componentes Adicionais: TBitBtn, TSpeedButton, TStaticText, Timage, TShape, TBevel, TPaintBox, Notebook, TLabeledEdit, TSpiitter, TTrayicon, TMaskE dit, TCheckListBox, TScrollBox, TApplicationProperties, TStringGrid, TDrawGrid, ‘TPairSplitter, TColorBox e TColorListBox. stot Aton Caron Ct loge Mea cn Ca css, tem sy @ ohh ooee Figura 6.20 - Paleta Common Controls ‘Componentes de Controles Comuns: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, ToolBar, TUpDown, ‘TPageControl, TTabControl, THeaderControl, TimageList e ‘Tpop-upNotifier. Sandor Astonal Carimen Corrie 7 Mic Osta Corals Oat Aecese System Syst @ DHSS eDaeoeewS Figura 6.21 - Paleta Dialogs Componentes de Didlogos: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog e TFontDialog, TFindDialog, TReplaceDialog, TOpenP ictureDialog, ‘TsaveP ictureDialog, TCalendarDialog, TCalculatorDialog, ‘TPrinterS etupDialog, TPrintDialog e TPageSetupDialog. Desenvolvendo Aplicativos com Lazarus tant Aston commen ores Diag Hs Daa Cntls Da Aces. System Sat @ SnAS emda wwe eS Swe Figura 6.22 - Paleta Misc Outros Componentes: TColorButton, TSpinE dit, TFloatSpinEdit, Tarrow, TCalendar, TEditButton. TF ileName€ dit, TDirectoryEdit, TDateE dit, Talc dit, TFileListBox, TFilterComboBox, TXMLPropStorage, TIniPropStorage, ‘TBarChart, TButtonPanel, TShellTreeView, TShellListView e TIDE DialogLayoutStorage. ‘Sandard Adations CommanCotols Digs Misc O34 Cowo Data Access System Syne See GeV Leyes Figura 6.23 - Paleta Data Controls Componentes de Controle para Dados: TDBNavigator, ‘TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox, TDBComboBox, TDBCheckBox, TDBRadioGroup, ‘TDBCalendar, TDBG roupBox e TOBGrid. ‘Santard Adio! commen Conls Digs Mic Data Contes Oa cess Sytem Synga & ceeee Figura 6.24 - Paleta Data Access Componentes de Acesso a Dados: TDataSource, TMenDataSet, TS dfDataSet, TFixedF omatDataSet e TDbf. Stands Aston Conmon onl laos Msc OxaConzos Oma Aces 5yem Symes @ OCRBRBGRCEELS Figura 6.25 - Paleta System Componentes de Sistema: TTimer, TidleTimer, TLazComponentQueue, THTMLHelpDatabase, THTMLBrowserHelpViewer, TAsyncProcess, TProcessUTF8, 7 Desenvolvendo Aplicativos com Lazarus Process, TSimplelP CClient, TSimplelPCServer, TXMLConfig e TEventLog. ‘Standard Adstionl, Common Controls Dialogs Mic Data Contols Data Access. System S/TEA @ BRE & el @ Figura 6.26 - Paleta SynEdit Componentes para Editores de Cédigo: TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynFreePascalS yn, TSynCppSyn, TSyn} avaSyn, TSynPertSyn, TSynHTMLS yn, TSynXMLSyn, TSynLFMSyn, TSynDiffSyn, TS ynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSyriTexSyn, TSynSQLSyn, TSynPythonSyn, TSynVBSyn, TSynAnySyn, TSynMultiSyn, EE ~~ See a~o Figura 6.27 - Paleta LazControls ‘Componentes de Controle do Lazarus: TDividerBevel e TExtendedNotebook. Data Controls Dota Access System SynEst Lazcontls, CP" IFO RTT! SOLd @ Gee@egsoaews Figura 6.28 - Paleta Chart ‘Componentes para Graficos: TDbChartSource, TChart, TListCartSource, TRandomChartSource, TDateTimeintervalChartSource, TUserDefinedChartSource, TCalculatedChartSource, TChartToolset, TChartAxisTransformations, TChartStyles e TChartLegendPanel. Desenvolvendo Aplicativos com Lazarus “+ pata controls Data Access System Syne Lazconsols chart oR. SOU a 2 Figura 6.29 - Paleta IPro ‘Componentes IP ro: TIpF ileDataP rovider, TIpHtmiPanel. + Data Contos. Data Acess. System Syne LazContols Chat Iho FT sold @ SSESleeeest aanns Geeree Figura 6.30 - Paleta RTTI Componentes RTTI: TTIEdit, TTIComboBox, TTIButton, TTICheckBox, TTILabel, TTIGroupBox, TTIRadioGroup, TTICheckGroup, TTiCheckListBox, TTIListBox, TTIMemo, TTICalendar, TTllmage, TTIFloatSpinEdit, TTIS pinE dit, TiiTrackBar, TTIProgressBar, TTIMaskEdit e TTIColorButton, ‘TMultiP ropertyButton, TP ropertyGrid e TTIGrid. + pata conto Data Access System Syn LazContvols Chart iro RT SOAs & BZ&SsR y Figura 6.31 - Paleta SQLdb Componentes para Conexo a Bancos de Dados: TSQLQuery, TSQLTransaction, TSQLScript, TSQLConnector, TPQConnection, TOracleConnection, TODBCConnection, TMySQL40C onnection, TMySQL41Connection, TMySQLS50Connection, TSQLite3Connection e TIBConnection. Como vocé deve ter notado, o Lazarus possui muitos recursos € componentes para criagdo de todo tipo de aplicacdes. E como vocé verd no préximo capitulo, o Lazarus pode tomar-se ainda mais turbinado com a adicdo de componentes que vem com ele, mas nao sao instalados por padrao, e componentes de terceiros que encontramos na Internet gratuitamente. Desenvolvendo Aplicativos com Lazarus Teclas de Atalho do Lazarus: Basicamente, 0 Lazarus tem as mesmas teclas de atalho do Delphi 7. Segue as que sao usadas com mais frequéncia: CTRL +S - Salva as alteracées do arquivo corrente. CTRL +SHIFT +5 - Salva as alteracdes de todos os arquivos abertos no Editor de Cédigo. F2 - Abre um didlogo com opgées para renomear uma varidvel ou objeto. F12 - Altema o foco entre o Editor de Cédigo e 0 Design do Formulario e vice-versa. F 11 - Muda 0 foco para o Inspetor de Objetos. CTRL +SETAS (as setas para esquerda, cima, baixo, direita) - Quando um componente no formulario esta selecionado, pode ser movido de posico com esta combinacao de teclas. SHIFT + SETAS (as setas para esquerda, cima, baixo, direita)- Quando um componente no formuldtio esta selecionado, pode ser redimensionado com esta combinacdo de teclas. CTRL + F2 - Se acontecer de, a0 executarmos nosso aplicativo, ele travar, nao podendo ser fechado. Basta clicar na janela principal do Lazarus e usar CTRL +F2 para encerrar 0 proceso do aplicativo. CTRL + SHIFT +C - Quando estamos na secdo interfaces criando 0 cabecalho de um procedimento e usarmos esta 70 Desenvolvendo Aplicativos com Lazarus combinacéo de teclas, 0 Lazarus cria automaticamente o “esqueleto” do procedimento na sesso implementation. CTRL +ESPACO - Chama o painel de Auto Completar Cédigo. Por exemplo, se vocé digitar ‘m’ e pressionar CTRL +Espaco vai aparecer uma lista com todos os métodos e funcées disponiveis que comecem com esta letra. CTRL + SHIFT + ESPACO - Se vocé estiver digitando um procedimento ou funco, € ndo souber os parémetros que ela aceita, basta posicionar o cursor entre os parénteses do procedimento ou fungo e pressionar estas teclas e o Lazarus mostrar os parametros aceitos. CTRL +J - Mostra uma lista de estruturas de cédigo prontas para uso. CTRL +W - Mostra uma lista com todas as palavras usadas no seu cédigo. CTRL +/- Comenta ou Descomenta a linha sob 0 cursor ou um bloco de texto selecionado (funciona sé no Linux). CTRL +F - Abre o didlogo de pesquisa e/ou substituicao de texto. CTRL +D - Formata o cédigo da unit atual, ou seja, endenta o Cédigo no padréo Object Pascal. CTRL +F12 - Mostra as unidades de cédigo associadas ao projeto. Possibilitando selecionar para edicdo. SHIFT +F12 - Mostra os formulérios associados ao projeto. Possibilitando selecionar para edicao. 7 Desenvolvendo Aplicativos com Lazarus ALT +F11 - Didlogo para inserir unit's do projeto na unit em exibicdo no Editor de Cédigo (s6 na verso 0.9.31 ou superior). R Capitulo 7 Instalando Novos Componentes No capitulo anterior, vimos que 0 Lazarus possui um leque vasto de componentes. Mas vocé deve ter notado a falta de Componentes para gerago visual de relatérios. E, embora 0 Lazarus venha com a paleta SQLdb, para conexdes com bancos de dados, esta se torna um pouco trabalhosa para projetos grandes. Ai que entra o ZEOS, uma paleta de Componentes para conexao a diversos bancos de dados com muitos recursos que facilitam e agilizam 0 desenvolvimento de aplicativos. Neste capitulo, vamos aprender a instalar estes e outros componentes no Lazarus. (E importante a instalacdo do ZEOS, PowerP DF e LazRepott, pois serao usados no livro). Preparativos para Instalar os Componentes: Primeiramente, 0 processo de instalacao dos componentes é 0 mesmo no Lazarus para Linux ou para Windows. Mas ha um detalhe quanto a instalagdo do Lazarus no Linux. Devido ao modo recomendado para instalar o Lazarus 0.9.31 no Ubuntu Linux (usando os pacotes RPM convertidos para DEB), precisamos mudar as permissdes da pasta de instalacao do Lazarus para leitura e escrita. Para isso, certifique-se de que o Lazarus esteja fechado e na Area de Trabalho do Ubuntu, abra um terminal clicando no menu Aplicativos > Acessérios > Terminal, digite 0 comando abaixo e pressione ENTER (digite sua senha de usuario, se for perguntado). sudo chmod -R 777 /usr/lib/lazarus Desenvolvendo Aplicativos com Lazarus Vamos colocar as pastas dos componentes de terceiro em uma pasta chamada lazcomponentes (pode ser qualquer outro nome, mas nao use espacos, letras acentuadas, traco e caracteres especiais, pode usar underline “_"). No Linux, crie esta pasta na sua Pasta pessoal e, se vocé estiver no Windows, crie a pasta no disco do sistema ( Por exemplo, Agora, estamos prontos para iniciar as instalacées. Instalando os Componentes do PowerPDF: E necessario instalarmos este conjunto de componentes, pois 0 recurso do LazReport para exportar relatorios para PDF, depende dele, Primeiro, baixe 0 PowerP DF no link: http://sourceforge.net/pro] ects/lazarus-ccrffiles/P owerP DF /PowerP DF %20v0.9.6/powerpd £.0.9.6_20101201.tar.gz/download Descompacte dentro da pasta lazcomponentes . Estando na IDE Lazarus, clique no menu “Arquivo > Fechar tudo” (se perguntado se quer salvar o projeto, nao salve). Clique no menu “Pacotes >Abrir arquivo de pacote (.Ipk)”. TEE eramernas_amtiente_jnele Figura 7. ‘omponentes Localize na pasta do PowerP DF (que foi descompactada dentro da pasta lazcomponentes) o arquivo pack_powerpdf.lpk . Abra oarquivo. Ta Desenvolvendo Aplicativos com Lazarus Vai surgir 0 didlogo mostrado abaixo: 8 3, Serer resever| es ae MOS>> Salvac Complar istalar Adicionar Remover Opgées Ajuda A [rive = Arquivos PafTypes pas PattDoc pas PalipCMap pas Figura 7.2 - Compilacao e Instalacao do Power DF Clique no botéo Compilar, Na janela de mensagens do Lazans, iré aparecer uma série de mensagens de compilagao. Quando’ surgir a —mensagem ‘Compiling package Pack_powerpdf 0.9.6" completado (ou algo parecido), a compilacdo do pacote tenminou. Agora, vocé pode clicar no botdo Instalar. Vai surgir a seguinte mensagem: a eee recone Lazans agi? Si Ls Figura 7.3 - Reconstruir Lazarus Amensagem jé diz tudo, entao, clique em Sim. Novamente, apareceré algumas mensagens na janela de mensagens. Se depois que surgir a mensagem “IDE” completado, a IDE ndo reiniciar automaticamente, clique no menu Arquivo > Reiniciar. Se for perguntado se deseja salvar 0 projeto, nao salve. 75 Desenvolvendo Aplicativos com Lazarus Depois que 0 Lazarus rei abaixo: jar, vocé teré a disposicao a paleta + Data Access System — Synedit_ Powerrat > & wQGBH0Hs88R Figura 7.4 - Paleta do PowerPaf ‘Componentes do PowerPDF: TPReport, TPRPage, TPRLayoutPanel, TPRGridP anel, TPRLabel, TPRText, ‘TPRRect, TPREllipse, TPRimage, TPR] pegimage, TPRAnnotation. Na pasta do PowerPDF, vocé encontra exemplos de uso dos Componentes e manuais de referéncia. Instalando os Componentes do ZEOS: © procedimento de instalacéo do ZEOS é parecido com a instalacéo do PowerPDF, mas fique atento aos detalhes que diferem, Primeiro, baixe 0 ZEOS no link: http:/sourceforge.netiproject s/zeoslibffiles/Zeos%20Database% 200 bjects/zeosdbo-6.6.6- stable/ZEOSDBO-6.6.6-stable.zip/download Dentro da pasta lazcomponentes crie uma pasta charada zeos, descompacte o ZEOS dentro desta nova pasta. Se nao estiver executando, execute 0 Lazarus. Clique no menu “Arquivo > Fechar tudo” (se perguntado se quer salvar 0 projeto, nao salve). Clique no menu Pacotes >Abrir arquivo de pacote (.Ipk). 76 Desenvolvendo Aplicativos com Lazarus No didlogo seguinte, localize na pasta zeos a pasta packages, abra esta, e dentro dela, abra a pasta lazarus e localize 0 arquivo zcomponent.Ipk . Abra 0 arquivo. Vai surgir 0 didlogo de instalagao de pacotes. Clique no botéo Compilar, Na janela de mensagens do Lazanus, iré aparecer uma série de mensagens de compilacdo. Quando surgir a mensagem “Compiling package zcomponent 6.6.6" completado (ou algo parecido), a compilacdo do pacote terminou. Agora, vocé pode clicar no botéo Instalar. Vai surgir a seguinte mensagem: an Grea Geant 0 Figura 7.5 - Pacotes Auxiliares Clique em OK, para confirmar a instalacéo dos pacotes auxiliares. Vai surgir a mensagem para reconstruir 0 Lazarus. Clique em Sim. Novamente, apareceré algumas mensagens na janela de mensagens. Se depois que surgir a mensagem “IDE” completado, a IDE nao reiniciar autoraticamente, clique no menu Arquivo > Reiniciar. Se for perguntado se deseja salvar 0 projeto, nao salve. Depois que 0 Lazarus reiniciar, vocé terd a disposicdo a paleta abaixo: 77 Desenvolvendo Aplicativos com Lazarus < RTTI IPro Chart = SQlidb = Zeos Access & SRMAAR Ra RRS Figura 7.6 - Paleta do Zeos Access Componentes do ZEOS: TZConnection, TZReadOntyQuery, ‘TZQuery, TZTable, TZUpdateSQL, TZStoredP roc, ‘TZSQLMetadata, TZSQLProcessor, TZSQLMonitor, TZSequence, TZIBEventAlerter Instalando os Componentes do Fortes Report: © Fortes Report para Lazarus, durante a edicdo deste livro, encontra-se na verso 3.24-LCL-R2 que funciona muito bem no Linux e no Windows (0 uso desta biblioteca de componentes, ndo 6 abordado neste livro, a instalacao dela é importante para desenvolvedores Delphi que ja a usavam e esto migrando para o Lazarus). Primeiro, baixe o Fortes Report err: http://sourceforge.net/proje cts/fortes4lazarus/files/fortesreport-3.24-LCL-R2.zip/download Dentro da pasta lazcomponentes crie uma pasta chamada fortesreport e descompacte o pacote dentro desta nova pasta. Se nao estiver executando, execute 0 Lazarus. Clique no menu “Arquivo > Fechar tudo” (se perguntado se quer salvar o projeto, ndo salve). Clique no menu Pacotes >Abrir arquivo de pacote (.Ipk). No didlogo seguinte, localize na pasta fortesreport (que foi criada dentro da’ pasta lazcomponentes) 0 arquivo 78 Desenvolvendo Aplicativos com Lazarus fortes324forlaz.pk . Abra o arquivo. Vai surgir 0 didlogo de instalacao de pacotes. Clique no botéo Compilar. Na janela de mensagens do Lazanus, iré aparecer uma série de mensagens de compilagao. Quando surgir_ a mensagem ‘Compiling package fortes324forlaz 3.24.2” completado (ou algo parecido), a compilacdo do pacote terminou. Agora, vocé pode clicar no botdo Instalar. Vai surgir a mensagem para reconstruir 0 Lazarus. Clique em Sim. Novamente, apareceré algumas mensagens na janela de mensagens. Se depois que surgir a mensagem “IDE” completado, a IDE nao reiniciar automaticamente, clique no menu Arquivo > Reiniciar. Se for perguntado se deseja salvar 0 projeto, nao salve. Depois que 0 Lazarus reiniciar, vocé terd a disposicao a paleta abaixo: cot 286g ie emcee nm 2p Pe cm a+ aWEACLARSTZUSReUTO SHARE ROMS Figura 7.7 - Paleta do Fortes Report Componentes do Fortes Report: TRLReport, TRLBand, ‘TRLDetailGrid, TRLGroup, TRLSubDetail, TRLLabel, TRLAngleLabel, TRLDBTtext, TRLMemo, TRLDBMemn, TRLRichText, TRLDBRichText, TRLImage, TRLDBImage, TRLSysteminfo, TRLDraw, TRLPanel, TRLDBResult, TRLBarcode, TRLDBBarcode, TRLPreView, ‘TRLExpressionParser, TRLDraffilter, TRLRichFilter, TRLHTMLFilter, TRLPDF Filter, TRLXLSFilter, TRLPreviewSetup, TRLGraphicStorage, TRLPrintDialogS etup e TRLSaveDialogSetup. Desenvolvendo Aplicativos com Lazarus Instalando os Componentes do LazReport e WebLaz: ‘Além do LazReport, vamos instalar um complemento. para poder exportar os ‘relatérios para PDF (é necessario ter instalado 0 pacote PowerPDF). Juntamente, também, instalaremos o pacote WebLaz que possibilita criar aplicativos ara Intemet usando as tecnologias CGI e FastCGI (nao abordado neste livro, mas se quiser aprender veja o site: hitpy/lazarus-cgi.co.cci). Nao vamos precisar baixar 0 LazReport e nem o WebLaz, pois eles jd vém com Lazarus, mas nao sao instalados por padrao. Estando no Lazarus, clique no menu “Arquivo > Fechar tudo” (se perguntado se quer salvar o projeto, nao salve). Clique no menu Pacotes > Instalar/Desinstalar pacotes ... Brocsnsinwrooi: _Wotee, conc, i Figura 7.8 - Didlogo de Instalar/Desinstalar pacotes Desenvolvendo Aplicativos com Lazarus No dialogo mostrado, para instalar um ou mais componentes, primeiro, selecione-o(s) na lista da direita. Entéo, selecione lazreport 0.9.8, lazreportpdfexport 0.7 e weblaz 0.0 . Clique em “tnstalar Selecdo" e clique em ‘Salvar e reconstruir IDE” Na tela seguinte clique em Continuar. Se depois que surgir a Mensagem “IDE"completado, a IDE nao reiniciar automaticamente, clique no menu Arquivo > Reiniciar. Se for perguntado se deseja salvar o projeto, no salve. Depois de ter realizado todo o processo e o Lazarus reiniciar novamente, vocé terd a disposico a seguinte paleta: “ Synédit Lazcontrols Zeos Access L2zReport sQldb RTT > 2 BESS... Desa aanea Figura 7.9 - Paleta do LazReport ‘Componentes do LazReport: TfTNPDFExport, TfReport, TiDBDataSet, ThrBarCodeObject, TfRoundRectObject, TirShapeObject, TirCheckBoxObject, TfCompositeReport, TfrUserDataset, TfrTextE xport, TfrHTME xport, TfrCSVExport, TirPrintGrid, TirDesigner e TirPreview. Se desejar desinstalar os componentes que vimos até aqui ou instalar outros, use 0 didlogo mostrado na Figura 7.8. A esquerda deste, hé uma lista com os componentes instalados no Lazarus e a direita, componentes que podem ser instalados. Para desinstalar um ou mais componentes, selecione-o(s) na lista da esquerda, clique em ‘Desinstalar selecao”. Para instalar um ou mais componentes, selecione-o(s) na lista da direita, clique em ‘tnstalar Selecdo”. al Desenvolvendo Aplicativos com Lazarus Para prosseguir, clique em ‘Salvar e reconstruir IDE”. Na tela seguinte clique em Continuar. Se depois que surgir a mensagem ‘IDE"completado, a IDE nao _reiniciar autoraticamente, clique no menu Arquivo > Reiniciar. Se for perguntado se deseja salvar o projeto, nao salve. Para instalar outros componentes através de seus arquivos ‘com extensdo Ipk, basta seguir os passos que consideramos neste capitulo. Capitulo 8 Programacao Visual no Lazarus Introdugao. Neste capitulo vamos considerar 0 basico da programacao com © Object Pascal do Free Pascal ao passo que aprenderemos a ria interfaces visuais como Lazarus. Tipos de Projetos do Lazarus: Quando iniciamos 0 Lazarus, é criado um protejo com um formulario (janela comum) e sua unidade de cédigo associada. Para criarmos um novo projeto, basta clicar no menu “Projeto >Novo Projeto ...” e vai abrir o didlogo abaixo: (colegio cl OFeete Progama ‘aie Um programs Lee Pascal gris. © mario po taza. ‘aleagbo ct edo Aoncne ‘lage Conacle Teste FPCUn” tN Geoncelat Figura 8.1 - Didlogo Criar um novo projeto Os principais tipos de projetos so: Aplicagao: Projeto com interface gréfica usando a biblioteca de componentes do Lazarus. Este é 0 tipo de projeto que usaremps no livro. Desenvolvendo Aplicativos com Lazarus Programa: Projeto de um programa Pascal simples. Aplicacao console: Cria um programa com uma nova classe derivada da TCustomApplication, que fomece uma série de funcionalidades que tomam a programacao em linha de comando muito facil. Por exemplo, verificar os parametros passados na linha de comando, verificar as varidveis de ambiente e gerenciar excecées (errs). Biblioteca: Criar bibliotecas de fungdes. No Windows, estas téma extensao “dll”, e no Linux “so”. Aplicacdo CGI: Cria um programa CGI (Common Gateway Interface) em Free Pascal usando médulos web. Aplicagéo FastCGI: Cria um programa FastCGI (Common Gateway Interface) em Free Pascal usando médulos web. Criando 0 Primeiro Programa: Para organizar os exemplos que vamos desenvolver_ no decorrer do livro, crie uma pasta com o nome “livro_projetos” Se vocé estiver usando o Linux, crie a pasta dentro de sua Pasta pessoal, e, se vocé estiver usando 0 Windows, crie a pasta no disco do sistema. Entéo, comecemos iniciando 0 Lazarus. Depois de iniciado, automaticamente temos um projeto base com um formulério e uma unidade de cédigo associada a ele. Pressione algumas vezes a tecla F12 e veja que o Design de Formulario e o Editor de Cédigo se altemam. A unidade de cédigo associada ao formulério € mostrada a seguir Desenvolvendo Aplicativos com Lazarus 1. unit Uniti; 2. 3. {$mode obj fpc}{SH+} 4 5. interface 6 7. uses 8. Classes, SysUtils, FileUtil, Forms, 9. Controls,Graphics, Dialogs; 10. il. type 12, TForm = class(TForm) 33. private 14. { private declarations } 15. public 16. { public declarations } 17. end; 18. 19. var 20. Forml: TForml; 21. 22. implementation 23. 24, {SR *.Ufm} 25. 26. end. ‘Vamos analisar 0 cédigo acima: Linha 1: temos ao lado da palavra unit 0 nome da unidade de cédigo do formulario, neste caso Unitl. Se vocé salvasse agora com este nome, seria gerado dois arquivos, um como nome de Unit1.pas e outro com 0 nome de UnitLifm . E claro que quando vocé for salvar os arquivos do seu projeto, deve dar nomes significativos. 85 Desenvolvendo Aplicativos com Lazarus Linha 3: Aqui temos diretivas para o compilador, indicando que vamos utilizar a linguagem Object Pascal do Free Pascal. Linha 5: A palavra interface indica 0 inicio da secdo de interface onde sao definidas as funcées, procedimentos, tipos e varidveis que serdo usadas pelo formulario associado a unit e, também, poderao ser vistos por outras unidades (unit's) da aplicacao. Linhas 79: A clausula uses, contém outras unidades de cédigo que fomecem fungdes, procedimentos e/ou Componentes para usarmos na’ programacao do formulario. Quando inserimos outros componentes no formulario, 0 Lazarus automaticamente adiciona outras units, se necessario, para podermos manipular estes novos componente. Linhas 11 a 17: A palavra type inicia a definicdo do formulario. Temos a definicéo de uma classe TForml que é derivada da classe base TForm Aqui, também, vao ficar as definicées dos Componentes adicionados no formulario. Os procedimentos, funcdes, varidveis e constantes do formulario podem ser declarados como: Private: Os campos de dados, métodos (procedimentos e funcées de um objeto) e objetos declarados nessa drea sé poderdo ser acessados pela propria unit Public: Os campos de dados, métodos e objetos declarados nessa rea poderdo ser acessados tanto pela propria unit como por outras unit's. Linhas 19 e 20: A cldusula var contém a definicdo de variéveis globais. Veja que é definida uma variavel de nome Form] que pode ser vista em outras unit's, caso a Unitl seja incluida na cldusula uses destas. Desenvolvendo Aplicativos com Lazarus Linha 22: A palavra chave implementation delirita a segunda seco da unit, onde definimos a codificacdo dos procedimentos e das funcées da unit Linha 24: A diretiva {$R *Ifm} faz a associagao da unit com seu respectivo formulario e nao deve ser modificada. Linha 26: Ao Final da unit, temos uma linha com end. . Ele é 0 marcador de final de arquivo. Qualquer coisa colocada apés esta linha sera ignorada Temos, também, 0 arquivo com extenso Ipr, que é responsavel pela execucao do programa. No momento, ele esta com 0 nome projectlipr e para exibi-o clique no menu Projeto > Exibir Fonte. Segue abaixo a descricao do mesmo: 1. program Project1; 2. 3. {smode obj fpc}{$H+} 4 5. uses. 6. {SIFDEF UNIX}{SIFDEF UseCThreads} 7. cthreads, 8. {SENDIF}{SENDIF} 9% Interfaces, // this includes the LCL widgetset 10. 11. Forms, Uniti 122. { you'can add units after this }; B. 14. {SR *.res} 15. 16. begin 17. RequireDerivedFormResource := True; 18. Application. Initialize; 87 Desenvolvendo Aplicativos com Lazarus 19, Application.CreateForm(TForml, Form) ; 20. Application: Run; 21. end. Linha 1: Nome do aplicativo que seré executado. Linhas 5 a 12: As unit's que compéem o aplicativo. Linha 14: Diretiva de compilagao {$R *res} que refere-se a0, arquivo de recursos mantido pelo Lazarus. Linhas 16 a 21: Aqui ocorre a execugdo do programa: Essa seco inicializa 0 aplicativo, instancia os formulérios e em seguida executa 0 aplicativo. Vamos, agora, colocar um componente no formulério. Mude para Unitl , clicando na guia correspondente no Editor de Cédigo, e pressione F'12 até aparecer 0 formulatio. Na paleta Standard, clique no componente TButton e clique no meio do formulério. E criado um botao de nome Button1. Observe que 0 Button esta com algas de selecao. Vocé pode usar estas para redimensiond-lo, e mantendo pressionado 0 oto esquerdo do mouse em cima do componente é possivel arrasté-lo de posicao. Dé um duplo clique sobre 0 Button] e escreva 0 cédigo em negrito na posicdo mostrada abaixo: procedure TForml.ButtoniClick(Sender: TObject); begin ShowMessage('Meu Primeiro Programa!'); end; Desenvolvendo Aplicativos com Lazarus Teste © programa clicando no botdo executar ” da barra de ferramentas do Lazarus. Se estiver no Windows, para compilar mais répido clique em CTRL +F9 e depois F9. Clique no Button e aparecer4 a mensagem “Meu Primeiro Programa!”. Clique em OK e feche a janela do seu programa. Para salvar 0 projeto, crie na pasta livro_projetos uma pasta com 0 nome exemplo8_1, volte a IDE do Lazarus e clique no menu Arquivo > Salvar tudo. Salve na pasta exemplo8_1 0 projetol.jpi com 0 nome exemplo8._L.lpi e a Unitlpas com 0 nome uprincipal.pas . Lembrete: Os nomes de pastas, sub-pastas e nomes de arquivos no podem conter: espacos, tacos, acentos e caracteres especiais; podem conter letras, undertine “_” e/ou numeros. Execute novamente 0 programa e feche-o. Abra a pasta exemplo8_1 e consideremos os arquivos criados: te + toca: - in ah ample e = = Figura 8.2 - Pasta do exerrplo8_1 Desenvolvendo Aplicativos com Lazarus PASTA DESCRICAO backup _| Arquivos de backup do projeto lib Contém os arquivos corpilados do projeto ARQUIVO DESCRICAO Este é 0 executdvel. No Windows tem extenséo .EXE (Ex.: exemplo8_l.exe) ‘exemplo8_Lico | icone da Aplicacao Arquivo do tipo XML com as configuracées do projeto ‘Arquivo como cédigo de execucdo do Aplicativo. Similar ao dpr do Delphi exemplo8_Lres | Arquivo de recursos uprincipal.ifm | Arquivo comas definicées do formulério. uprincipal.pas _| Arquivo coma codificacao do formulario exemplo8_1 exemplo8_Lipi exemplo8_L.Ipr Diminuindo o Tamanho do Executavel: ‘Além da diferenga no tempo de compilacdo no Windows (ja vimos como resolver isso, € no Linux a compilacdo é répida), outra reclamaco constante dos usuarios do Delphi a0 comegar a usar o Lazarus é 0 tamanho do executavel gerado. Em primero lugar, os executéveis bindrios do Linux, geralmente, so maiores do que os do Windows. Isto é uma caracteristica do Linux e nao do Lazarus. primeiro programa que criamos ficou com aproximadamente 19MB no Linux e aproximadamente 12MB no Windows. De qualquer forma, esta estupidamente grande para um programa que s6 tem uma janelinha e um botao. Desenvolvendo Aplicativos com Lazarus Consideremos duas maneiras de dirrinuir o tamanho do executavel OBS.: Se vocé fechou o projeto exemplo8_1, pode reabri-lo dlicando no menu ‘Projeto > Abrir Projeto ..." , localize 0 arquivo exemplo8._L.Ipi e abra-o. Primeira: Com o seu projeto aberto na IDE Lazarus, clique no menu Projeto >OpcGes do Projeto ... . No diélogo que abrir, na lista da direita, selecione Vinculado e na esquerda marque “Usar arquivo depuracdo extemo gdb (-Xg)", marque ‘Usar estas op¢es como padrdo para novos projetos”, clique em OK, execute novamente Seu projeto para recriar 0 executével, abra a pasta do mesmo e veja que tamanho tem agora o executavel. No caso do exemplo8_1, 0 executavel no Linux ficou com 4,6MB e no Windows com'1,54MB. De fato, melhorou bastante o tamanho do executdvel. Mas, agora, a cada compilacao do projeto, dentro da pasta é criado um arquivo com extensdo gdb (este sim é grande) usado pela IDE para verificacdo de eros em tempo de execucdo. Este arquivo é temporario e pode ser excluido quando quiser, sua aplicacao nao depende dele para executar. Segunda: © mesmo efeito acima pode ser obtido usando um apiicativo chamado ‘strip” em linha de comando, com a vantagem de no ser gerado um arquivo gdb extemo. Para executar o strip no projeto exemplo8_1, estando no Linux, basta abrir um terminal e digitar 0 comando abaixo: strip ~/Livro_projetos/exemplo8_1/exemplo8_1 o1 Desenvolvendo Aplicativos com Lazarus Se estiver no Windows, abra um Prompt de Comando e digite 0s dois comandos abaixo: cd \lazarus\fpc\2.4.4\bin\i386-win32 strip C:\livro_projetos\exemplo8_1\exemplo8_1.exe Depois de aplicar uma das duas sugestées aqui apresentadas, possivel diminuir mais ainda 0 executdvel gerado no Lazarus. Para isso, usamos um aplicativo em linha de comando chamado “upx”. Se vocé esté usando 0 Ubuntu Linux, provavelmente nao temo px instalado, Para instalé-lo digite em um terminal o comando abaixo: sudo apt-get install upx ‘Apés instalado, vocé pode aplicé-lo no projeto exemplo8_1 usando 0 comando abaixo: upx ~/livro_projetos/exemplo8_1/exemplo8_1 Para aplicar o upx, se estiver no Windows, execute os dois comandos abaixo em um Prompt de Comando: cd \lazarus\fpc\2.4.4\bin\i386-win32 upx C:\Livro_projetos\exemplo8_1\exemplo8_1.exe Depois de executar 0 upx no projeto exemplo8_1, ele ficou com © tamanho de 1,6MB no Linux e de 591KB no Windows. 92 Desenvolvendo Aplicativos com Lazarus Note, também, que a medida que seu projeto vai crescendo, 0 executdvel gerado pelo Lazarus cresce muito pouco de tamanho. Representando mais um ganho. CONCLUSAO: De, aproximadamente, 19MB, 0 tamanho do executavel caiu para 1,6MB no Linux, e de, aproximadamente, 12MB caiu para 591KB no Windows, e sem prejuizo para 0 executavel. Conhecendo 0 Explorador de Cédigo: Clique no menu Exibir > Explorador de Cédigo . Esta janela contém todos 0s tipos, classes, propriedades, _métodos, varidveis globais, rotinas globais e interfaces contidos na unit selecionada. © Explorador de Cédigo, também, permite que vocé navegue diretamente para as declaracées que séo apresentadas nele, bastando dar um duplo clique com 0 mouse sobre a declaracao desejada. Conhecendo o Inspetor de Projetos: Clique no menu Projeto > Inspetor de Projeto . So mostradas todas as unidades de cédigo que compéem 0 seu projeto. Possui recurso de inserir ou excluir arquivos do projeto. Mostra, também, as bibliotecas de componentes usadas pelo projeto, com opgao de adicionar outras ou exclui-las do projeto. Conhecendo o Inspetor de Objetos, Propriedades e Eventos: Geralmente & esquerda da IDE, nés temos a janela do Inspetor de Objetos (se ela nao estiver visivel, pressione F 11). 93 Desenvolvendo Aplicativos com Lazarus Nesta janela temos uma guia mostrando as Propriedades (caracteristicas; como, por exemplo, titulo, tamanho, fonte, cor, etc.) do componente selecionado (que pode ser um botdo, uma caixa de texto, 0 proprio formulério, etc.) e outra guia mostrando os Eventos do objeto selecionado (Eventos sao respostas as acdes do objeto; como, por exemplo, o que fazer quando um botao é clicado). Configurando Propriedades e Eventos dos Objetos: Se no estiver aberto, localize e abra o projeto exemplo8_1.Ipi licando no menu Projeto > Abrir Projeto ... Clique no fundo do formulétio, e no Inspetor de Objetos, na guia Propriedades, procure pela propriedade Caption, clique na Caixa de texto ao lado dela e mude 0 contetido de ‘Form1” para “Meu Primeiro Programa”. Vocé acaba de mudar o titulo da janela do seu formulrio. Experimente alterar outras propriedades. Todo objeto tem um nome para referencié-lo no cédigo. Mude 0 nome do formulario de Forml para {Principal através da propriedade Name. Através da propriedade Color, mude a cor do formulério para clNavy (Azul Marinho). ‘Agora, clique no botdo (Button) para selecioné-lo e mude as seguintes propriedades: Caption + Clique Name + btMensagem Ainda no Inspetor de Objetos, clique na guia Eventos. Desenvolvendo Aplicativos com Lazarus Observe que ja haviamos criado um procedimento para responder ao evento OnClick. Este é o evento padrao do objeto Button, que é criado quando damos um duplo clique sobre ele em modo de design. © evento OnClick corresponde ao que deve acontecer quando © usuario clicar no boto durante a execucao do aplicativo. Para criar ou se posicionar nos eventos, basta, no Inspetor de Objetos, dar um duplo clique na caixa de texto ao lado do evento ou um clique para selecionar e outro no botéo de reticéncias (...), a0 lado. Entéo, clique no botdo de reticéncias (....) a0 lado do evento OnClick. ‘Veja que 0 cursor foi posicionado no cédigo exatamente onde esta o procedimento OnClick do botao btMensagem. Todo cédigo que estiver entre begin e end é 0 que serd executado quando o botdo for clicado. Neste caso, mostra uma mensagem. Mude 0 que estiver entre o begin e 0 end, para ShowMessage('Seja Bem Vindo ao Lazarus!' + #13 + #13 + InputBox( "Nome", "Digite seu none:,"*)); Execute e teste 0 programa. Nao se preocupe em entender 0 cédigo agora. Criando 0 Segundo Programa: Crie uma_pasta na pasta livro_projetos com o nome exemplo8_2. No Lazarus, crie um novo projeto do tipo Aplicacao. Salve na pasta exemplo8_2 0 projeto com 0 nome exemplo8_2.|pi e a unit com o nome uprincipal. pas 95 Desenvolvendo Aplicativos com Lazarus Mude as seguintes propriedades do formuldrio: Caption > Exemplo 82 Name = ‘Principal Coloque no formulario um TLabel (mostra um rétulo de texto), um TEdit (prové um espaco para o usuario digitar um texto) € um TButton da paleta Standard. Selecione o TLabel, e mude as propriedades: Caption + Digite seu Nome: Name > IbNome Selecione 0 TEdit, e mude as propriedades: Name > edNome Width > 220 Text + (apague o contetido) Selecione 0 TButton, e mude as propriedades: Caption + Mostrar Height + 27 Name btMostrar Posicione os objetos para que fiquem como mostrado na figura: cope ene Figura 8.3 - Formulario do exemplo8_2 Desenvolvendo Aplicativos com Lazarus Selecione 0 botéo btMostrar (TButton) e crie 0 evento OnClick dele. Entre 0 begin e 0 end, do procedimento gerado, digite o cédigo abaixo: ShowMessage(‘Seu nome é: ' + edNome.Text) ; Execute e teste 0 programa. Mude outras propriedades. Alinhando Componentes: © editor de formulérios do Lazarus penrite posicionar Componentes através de uma grade de alinhamento. Também, possui linhas guias de posicionamento. Observe a figura abaixo: Edit2 Figura 8.4 - Grade e Guias de Posicionamento Podemos, também, alinhar componentes usando 0 didlogo Alinhamento: 937 Desenvolvendo Aplicativos com Lazarus @ semalteracoes @ Semalteracoes Lados Esquerdos Topos Centros centros Lados Direito Bases Centralizar najanela Centralizar najanela sustificar Justificar dustificar a esquerda dustificar acima “ustificar 8 direita Justificar espaco base Ocancelar/ /oK | Figura 8.5 - Didlogo de Alinhamento Usando 0 mouse, selecione um grupo de componentes, clique com 0 botdo direito do mouse sobre este e no menu pop-up escolha Alinhamento. Experimente as diversas opcées de alinhamento (Veja Figura 8.5). A seguir, consideraremos 0 basico da programacao em Object Pascal: Bloco de Cédigo: Umbioco de cédigo € delimitado por begin e end. Ex: begin {comandos} end; Desenvolvendo Aplicativos com Lazarus Linha de Comando: © fim de uma linha de comando é indicado por ponto e virgula. Com excecao de comandos deliritadores de sessao ou bloco de cédigo, como € 0 caso do begin. Ex: begin ShowMessage('IDE Lazarus’); Showltessage (‘Ubuntu 10.04") ; end; Comentarios: Use comentarios para documentar seu cédigo. O Free Pascal aceita os seguintes tipos de delirritadores de comentdrios: Ex: // Comentario de uma linha { Comentario com varias Linhas } (* Outro tipo de comentario com varias Linhas *) Variaveis: Uma varidvel é um espago nomeado da meméria para guardar um tipo de valor. Vocé pode declarar (criar na meméria) varidveis em Object Pascal da seguinte forma: Desenvolvendo Aplicativos com Lazarus [nome da varidvel] : [ipo da variavel] ; As variéveis so declaradas na secao var de um programa (lpr), unit, procedimento (procedure) ou funcao (function) (Veja mais a frente 0 que sao procedures e function's). Em uma unit, nés temos uma secdo var antes da seco implementation e podemos iniciar outra logo apés. As varidveis declaradas nestas secdes var ficam acessiveis em todas as procedures e functions da unit Sao varidveis globais. As varidéveis locais so declaradas na seco var de uma procedure ou function. Ficam acessiveis apenas em sua respectiva procedure ou function, Passam a existir na memoria quando a procedure ou function é chamada e deixam de existir a_meméria quando a procedure ou function termina de executar. O nome de uma varidvel pode ter até 255 caracteres, tem que comesar com uma letra, no pode conter caracteres acenttiados, espaco em branco e ser Unica em ambito global e local. © nome pode conter niimeros e underline“. e ndo pode ser uma palavra reservada (begin, end, et). Ex. procedure Teste; var Sistema: string; // Varidvel local do tipo texto begin Sistema := ‘Ubuntu Linux’; // Atribuindo um valor ShowMessage(Sistema); // Mostrando o valor end; 100 Desenvolvendo Aplicativos com Lazarus Tipos de Varidveis: Tipos de nimeros inteiros: Tipo Intervalo Byte 0... 255 Shortint -128 .. 127 Smaliint -32768 .. 32767 Word 0... 65535 Integer | Mapeia para Longint em Object Free Pascal Cardinal Mapeia para Longword Longint -2147483648 .. 2147483647 Longword 0... 4294967295 Int64 | -9223372036854775808 .. 9223372036854775807 QWord 0... 18446744073709551615 Tipos de ntimeros reais: Tipo Intervalo Real Depende da Plataforma Operacional Single 15° ..3.4" Double 5.0. L7 Extended eee Comp 2441. 2-1 Currency |-922337203685477.5808 .. 922337203685477.5807 101, Desenvolvendo Aplicativos com Lazarus Existe 0 tipo Booleano que aceita True (Verdadeiro) e False (Falso). Tipos para data e hora: TDate, TTime e TDateTime. Hé 0 tipo Char que aceita um caractere. O valor de uma varidvel do tipo Char deve ser declarado entre aspas simples. © tipo String serve para armazenar um texto com tamanho limitado apenas pela meméria do computador. O valor de uma varidvel do tipo sting deve ser declarado entre aspas simples. Estes so 0s tipos mais usados. Constantes: As constantes sao declaradas com um valor que nao muda durante a execucao do programa. A declaracao tem a sintaxe abaixo: [nome da constante] = [valor] ; ‘As constantes sdo declaradas na secdo const de um programa, unit, procedimento (procedure) ou funco (function). Uma seco const deve ser aberta antes, depois ou na mesma posicdo de uma seco var. Podem ser globais ou locais. Ex: const nome = ‘Adriana’; // Constante do tipo string idade = 35; // Constante de nimero inteiro compras = 150.25; // Constante de numero real 102 Desenvolvendo Aplicativos com Lazarus Atribuicdo: Usa-se := (dois pontos e igual) para atribuir um valor a uma varidvel ou propriedade de um objeto Ex: procedure Teste; var nome: string; idade: integer; compras: double; letra: char; begin home := 'Jean Patrick’; idade := 35; compras_:= 150.25; edNome.Text := nome; letra i= (AY; end; Arrays ou Matrizes: Um array e uma colecéo de varidveis do mesmo tipo (integer, double, string, etc), identificadas por um indice. Um array é declarado do mesmo modo que as varidveis: var. Aluno: array[@..15] of string; © cédigo anterior, declara um array de nome Aluno compost de 16 (0 a 15) varidveis do tipo string. Podemos ler ou atribuir um valor para cada varidvel através do nome do array seguido do indice numérico entre colchetes. Veja os exerrpios: Aluno[@] := ‘Jean’; { Atribui o texto Jean a variavel de indice 0. } 103 Desenvolvendo Aplicativos com Lazarus Aluno[9] := ‘Adriana’; { Atribui o texto Adriana a variavel de indice 9.'} Aluno[15] := Aluno[0]; { A varidvel de indice 15 recebe o valor da varidvel de indice 0. } Record ou Registro: ‘A estrutura record define um novo tipo de variével composto por variaveis fihas que podem ser de tipos diferentes. Um tipo record é declarado dentro de uma seco type. Por exemplo: procedure Escola; // Cria um novo tipo record de nome Alunos type Alunos = record Nome: string; Nota: double; Ativo: boolean; end; // Cria uma varidvel de nome Aluno e do tipo Alunos var Aluno: Alunos; begin 7/ Atribui valores as varidveis filhas de Aluno Aluno.Nome := ‘Adriana’; Aluno.Nota := 10.00; Aluno.Ativo := True; 7/ Mostra o valor da varidvel filha Nome da 7/ varavel Aluno Showlessage('Nome da Aluna: ' + Aluno.Nome) ; end; Seguindo 0 exemplo acima, em vez de criar uma varidvel do tipo Alunos, poderfamnos criar um array do tipo Alunos assim: var. Aluno: array[@..15] of Alunos; 104

You might also like