CAPÍTULO2 1. A ESTRUTURA DE UM APLICATIVO Quando iniciamos uma aplicação em Delphi ele interpreta que iremos desenvolver um projeto. Este gerencia um conjunto de recursos como Forms, Units, objetos, funções e tudo o que compõe o aplicativo desenvolvido. O nome dado ao arquivo do projeto, normalmente, será o nome dado ao executável da aplicação quando a mesma for compilada. As Units armazenam os códigos pertencentes ao forms, porém é possível ter Units não associadas a um Form, um exemplo seria uma Unit com funções para serem utilizadas por toda a aplicação (em vários Forms), mas todo Form obrigatoriamente deve possuir sua Unit correspondente. O desenho 01 representa um exemplo com a distribuição e as devidas associações exibidas pelo Delphi quando iniciamos um novo projeto. Desenho 01: Composição de um projeto PROJECT 1 Delphi Project (Extensão. DPR) UNIT3 (Extensão.PAS) FORM1 Delphi Form (Extensão. DFM) FORM2 Delphi Form (Extensão. DFM) UNIT1 Código Pascal (Extensão.PAS) UNIT2 Código Pascal (Extensão.PAS) Fonte: Adaptado de PEREIRA, 2002 Observe que no exemplo acima a UNIT3 não está associada a nenhum formulário, ela contem um conjunto de recursos que são utilizados por todo o projeto. 13
1.1. COMPREENDENDO A UNIT DO FORM A UNIT possui uma estrutura que deve ser obedecida, caso contrário, erros de compilação surgirão no projeto e isso impedirá o desenvolvimento dos aplicativos. Observe o código fonte abaixo, sempre que iniciarmos um projeto Delphi essa estrutura surgirá na UNIT1 associada ao FORM1. unit Unit1; interface uses type Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; TForm1 = class (TForm) private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} end. Analisando o código acima: 1ª LINHA (unit Unit1;) O nome em frente à palavra unit, no caso Unit1, indica o nome dado ao arquivo com a programação do formulário. Se o formulário fosse salvo com este nome ele geraria um arquivo externo com o nome de Unit1.pas e outro com o nome de Unit1.dfm. (Quando for salvar seus formulários você deve dar nomes mais significativos). Essa é uma das grandes vantagens do Delphi, pois nos arquivos.dfm são armazenados todos os valores das propriedades visuais, isso faz com que o arquivo fonte (.PAS) fique menor e mais limpo. 14
2ª LINHA (interface) A palavra interface delimita a seção de interface na qual serão colocadas as definições de funções, procedimentos, tipos e variáveis que poderão ser vistos por outras units da aplicação. 3ª LINHA (uses) Nesta seção o Delphi lista todas as Units que serão complementares as nossas. Ao criar um Form as Units definidas no código acima são inseridas automaticamente, pois fornecem o suporte para criação do mesmo. Ao inserir componentes num Form, outras Units podem ser adicionadas a esta lista. 4ª LINHA (type) A seção type lista a definição das classes e objetos, qual o seu tipo e conjunto de atribuições. Por exemplo, temos a definição de uma classe TForm1 que é derivada da classe base TForm. Ao se acrescentar componente, no Form, também será gerado no código a definição correspondente aos mesmos. 5ª LINHA (var) Definição de variáveis e constantes globais, através da palavra reservada Var. Neste ponto é criada uma variável com visibilidade global (pode ser vista em outras units nas quais a mesma seja incluída na cláusula uses). 6ª LINHA (implementation) Segunda seção da unit, onde serão colocadas as funções e variáveis que serão acessadas apenas por ela mesma (não são visíveis em outras units). 7ª LINHA ($R *.dfm) Faz a associação da unit com seu respectivo form e não deve ser modificado. Uma unit de funções não possui esta diretiva. 8ª LINHA (end) será ignorada. Ele é o marcador de final de arquivo, qualquer coisa colocada após esta linha 15
2. TRABALHANDO COM PROJETOS Quando iniciamos a criação de um novo aplicativo em Delphi ele atribui ao programa principal a extensão DPR. Esse código define que a partir desse documento o programador construirá sua aplicação. Através de um projeto podemos gerar código executáveis (EXE), no entanto grande parte da programação fica armazenada em UNIT conforme dito anteriormente. O projeto pode ser visualizado através da opção do menu Project View Source. Sua estrutura aparece na janela Code Editor e pode-se verificar que é muito semelhante ao programa principal do antigo Turbo Pascal. Vimos no desenho 01 que ao iniciarmos um projeto, o Delphi apresenta forms e units, agora iremos detalhar o arquivo de projeto. A tabela abaixo ilustra todos os arquivos gerados em um projeto além das extensões e seus significados. Tabela 01: Arquivo de projeto EXTENSÃO DESCRIÇÃO DPR Arquivos de projetos, contendo units e código de inicialização PAS Arquivos que armazenam os códigos das units DCU Unit compilada DFM Definição visual de um form DOF Opções de configuração para o projeto RES Recursos do projeto como ícones ~PA, ~DF, ~DP Arquivos temporários DSK Configuração de desktop Fonte: Adaptado de BORGES, 2012 2.1. O GERENCIADOR DE PROJETOS Para gerenciarmos nossos projetos o Delphi disponibiliza uma ferramenta chamada Project Manager e para acessá-la utilizamos o menu View. A janela de gerenciamento lista as units, os forms existentes nessas units e o path, caso a unit não esteja na pasta do projeto. Com os botões do Project Manager podemos adicionar, excluir, visualizar units e forms que compõem o projeto. 16
Figura 07: Janela do gerenciador de projetos A figura ao lado ilustra um projeto chamado projeto1, armazenado em uma pasta chamada aula 2, observe a seqüência do Explorer. Outra forma de manipular recursos em nossos projetos é pelo Project Options, localizado no menu Project. Vamos compreender o que cada guia oferece para nosso projeto: Figura 08: Janela do Project Option Foms- Controla os formulários criados, automaticamente. Application- Especifica o título e o nome do arquivo de ajuda, o nome do ícone associado à aplicação. Compiler- Especifica as opções gerais para o compilador. Compile Messages- Controla as dicas e advertências, permite selecionar quais avisos serão apresentados. Linker- Controla como os links ocorrerão entre os arquivos. Directories/ Conditionals- Define a localização dos arquivos necessária para compilar. Version info- aqui o programador poderá definir informações sobre a versão do software criado. Packages- Define os pacotes de tempo de execução e de projeto para instalar o software. 17
3. COMPILANDO E EXECUTANDO APLICATIVOS Compilar um projeto em Delphi é extremamente fácil, basta pressionar a tecla F9 ou utilizar o ícone localizado na SpeedBar. Isso fará com que o nosso projeto seja executado, mas ainda não foi verificado, ou seja, não sabemos se há erros de execução. Então precisamos acessar menu Project e clicar em Compile Projeto, esse comando fará uma varredura no código à procura de falhas (DEBUG) no final da busca será apresentada mensagem informando que o processo de depuração foi concluído. É importante saber que antes de compilarmos o nosso projeto é necessário salvar nossos arquivos.pas e.dpr Iremos criar nosso primeiro programa e na seqüência iremos salvar e compilar nosso projeto. Observe a figura 08, iremos construir um formulário de entrada conforme orientação abaixo. Figura 08: Formulário do sistema Fonte Autora O formulário acima é composto por um Label e três botões, começaremos pela configuração da tela do Form. Object Inspector clique em: 1º ClientHeight (altera a altura do Form), modifique o valor para 400 2º ClientWidth (altera a largura do Form), modifique o valor para 850 3º Caption (Modifica a barra de título do Form) digite Bem vindo ao Núcleo de Pesquisa e Propaganda- NPEP. 18
Na barra de componentes: 1º Na guia Standard clique no componente Label, clique sobre o formulário, surgirá uma um retângulo com o texto label1. Retorne ao Object Inspector, modifique: Caption - Bem vindo ao NPEP. Font- Fonte MS Sans Serif, negrito, tamanho 19, cor azul. Height- 37 Left- 280 Top- 32 Width- 309 Color- clbtnface Ainda na guia Standard clique no componente Button, clique sobre o formulário e siga as configurações abaixo. Entrar- Caption- Entrar Font- Fonte MS Sans Serif, negrito, tamanho 14, cor azul marinho. Height- 73 Left- 128 Top- 144 Width- 177 Pesquisar- Caption- Pesquisar Font- Fonte MS Sans Serif, negrito, tamanho 14, cor azul marinho. Height- 73 Left- 352 Top- 144 Width- 177 Relatório- 19
Caption- Relatório Font- Fonte MS Sans Serif, negrito, tamanho 14, cor azul marinho. Height- 73 Left- 560 Top- 144 Width- 177 Vamos salvar nosso projeto, antes crie uma pasta com o seu nome e dentro dela, outra, com o nome Aula 02. Salve o arquivo.pas com o nome de principal.pas, na seqüência o Delphi solicitará que o projeto seja gravado é nesse momento que será gerado o arquivo. DPR. Salvaremos com o nome de projeto 1. Após gravarmos nosso projeto daremos seqüências compilando nosso programa e para isso, utilize as opções informadas no início. Depois de compilado o formulário apresenta sua tela já em execução podendo ser usado, porém ainda não definimos as funcionalidades dos botões. Isso ocorre porque os eventos ainda não foram atribuídos, portanto, se clicarmos nesses botões nada ocorrerá. Podemos visualizar os processos em execução na CPU através do recurso Attach To Process localizado no menu RUN, conforme figura abaixo. Figura 09: Processos em execução Fonte Autora 20
LISTA DE EXERCÍCOS Professora Érica Barcelos Disciplina: Linguagem de Programação Objetivos: 1. Compreender a linguagem de programação orientada a objeto- POO 2. Entender as vantagens das ferramentas de programação RAD. 3. Identificar as funcionalidades existentes no conjunto de recursos oferecidos pelo DELPHI. A. Dentre o conjunto de vantagens existentes na programação Orientada a objetos podemos ressaltar: ( ) Facilidade para criação de softwares comerciais principalmente para ambiente desktop. ( ) Utiliza exclusivamente programação estruturada e isso permite uma metodologia organizada para a construção de aplicativos. ( ) Facilidade para a manutenção e correção do software mesmo sem aproveitamento de códigos. B. Sobre a janela do Delphi é INCORRETO afirmar que: ( ) Exibe um Form, uma Unit ( ) Não possui barra de acesso rápido ( ) Os componentes da paleta não podem ser adquiridos de terceiros. C. Para que serve o Object Inspector? D. Quais são os principais arquivos de um projeto? E. O que é IDE? Quais os itens que a compõe? 21
BIBLIOGRAFIA DO CAPÍTULO LEÃO, MARCELO. Borland Delphi 7 curso completo. Editora Axcel Books, 1ª Edição, 2003. PREIRA, PAULO ROBERTO ALVES. Desenvolvendo aplicações orientadas a objetos com Borland Delphi. Web Publicação de 2002. Disponível em http://www2.fateb.br/ftp/apostilas/delphi/oo-delphi.pdf. Acesso em 10/02/2012. 22