Escolar Documentos
Profissional Documentos
Cultura Documentos
Op As Cal 1
Op As Cal 1
Programas e Units
Sumrio
Estrutura de um programa e sintaxe Estrutura e sintaxe de uma unit Referncia a units e a clusula uses
Introduo
Um programa em Object Pascal constitudo de mdulos de cdigo fonte chamados units. Cada unit armazenada em seu prprio arquivo e compilada separadamente. As unidades compiladas (arquivos .dcu) so ligadas para criar uma aplicao. Units permitem
Dividir grandes programas em mdulos que podem ser editados separadamente Criar bibliotecas que possam ser compartilhadas por diversos programas Distribuir bibliotecas para outros programadores sem tornar disponvel o cdigo fonte
Introduo (cont.)
No Pascal tradicional todo o cdigo fonte, incluindo o programa principal armazenado em arquivos .pas. Delphi usa um arquivo Project (.dpr) para armazenar o programa principal enquanto a maioria do cdigo reside em arquivos unit (.pas). Cada aplicao (ou Projeto) consiste de um nico arquivo Project e um ou mais arquivos unit. Pelo menos a unit System criada automaticamente pelo programa. Para construir um project o compilador necessita de um arquivo fonte ou um arquivo j compilado (.dcu) para cada unit.
5
Programas e Units
Um programa contm Um cabealho de programa Uma clausula uses (opcional) Um bloco de declaraes e comandos O cabealho do programa especifica o nome do programa. A clusula uses contm a lista das units usadas pelo programa. O bloco contm declaraes e comandos que so executados quando o programa for executado. Um exemplo de programa denominado Editor mostrado a seguir, lembrando que todos os arquivos fonte terminam por um ponto.
6
Linha 1 3a6 8
Contedo Cabealho do Programa Clusula uses Diretiva de compilao ligando o arquivo de recursos do projeto ao programa 10 a Bloco de comandos a serem executados quando o programa rodar 14
O cabealho do programa
O cabealho de um programa consiste de Palavra reservada program Identificador igual ao nome do project Separador ponto e vrgula No Pascal tradicional existiam parmetros entre o identificador e o ponto e vrgula, que, se existirem, sero ignorados pelo Delphi.
9
10
O bloco
O bloco contm declaraes e comandos que so executados quando o programa for executado. Muitas vezes o bloco consiste de um comando composto, delimitado pelas palavras reservadas begin e end, cujos comandos componentes so chamadas a mtodos do objeto Application do project. O bloco pode conter declaraes de constantes, tipos, variveis, procedimentos e funes. Estas declaraes devem preceder os comandos do bloco.
11
12
Introduo
Uma unit consiste de tipos (incluindo classes), constantes, variveis e rotinas (funes e procedimentos). Cada unit definida em seu arquivo .pas. Um arquivo de unit tem a seguinte composio Cabealho de unit Seo de interface Seo de implementatiion Seo de initialization (opcional) Seo de finalization (opcional) A unit termina com a palavra reservada end seguida por um ponto
13
Exemplo de unit
unit Unit1; interface uses { Aqui fica a lista de units } { Aqui fica a seo interface } implementation uses { Aqui fica a lista de units } { Aqui fica a seo Implementation } initialization { Aqui fica a seo Initialization } finalization { Aqui fica a seo Finalization } end.
14
O cabealho da unit
O cabealho de uma unit consiste de Palavra reservada unit Identificador igual ao nome do arquivo aonde est armazenada a unit Separador ponto e vrgula A unit alfa estar armazenada no arquivo alfa.pas e, depois de compilada, o resultado ser armazenado no arquivo alfa.dcu. Os nomes de units devem ser nicos em um mesmo project. Mesmo que armazenadas em diretrios distintos os nomes no podem se repetir.
15
A seo interface
A seo interface inicia aps a palavra reservada interface e vai at o incio da seo implementation. A seo interface declara constantes, tipos, variveis, procedimentos e funes que esto disponveis para os clientes, isto , outras units que usam a unit na qual foram feitas as declaraes. Estas entidades so chamadas de pblicas.
16
A seo implementation
A seo implementation inicia com a palavra reservada implementation e vai at o incio da seo initialization, se esta existir. Caso contrrio vai at o final da unit. Esta seo define os procedimentos e funes declarados na seo interface. Estas funes e procedimentos podem ser definidos em qualquer ordem. A lista de parmetros dos cabealhos de funes e procedimentos pblicos pode ser omitida. 18
A seo initialization
A seo initialization (opcional) inicia com a palavra reservada initialization e vai at o incio da seo finalization, se esta existir. Caso contrrio vai at o final da unit. Esta seo contm comandos que so executados no incio do programa. A ordem de execuo das sees initialization das diversas units do programa dada pela ordem em que as units aparecem na clusula uses do cliente.
20
A seo finalization
A seo finalization opcional e s pode surgir nas units que possuam clusula initialization. Ela inicia aps a palavra reservada finalization e vai at o final da unit, contendo comandos que so executados quando o programa principal termina. Normalmente executada para liberar recursos alocados na seo initialization. Quando houver mais de uma seo finalization elas so executadas em ordem inversa ordem de execuo da seo initialization. Se a aplicao inicializa as units A, B e C, nessa ordem, ela vai finaliza-las na ordem C, B e A.
21
22
Introduo
A clusula uses contm a lista das units usadas pelo programa, biblioteca ou unit na qual a clusula aparece. Uma clusula uses pode ocorrer em
O arquivo project para um programa ou biblioteca Seo interface de uma unit Seo implementation de uma unit
A unit System usada automaticamente por todas as aplicaes Delphi e no pode ser listada explicitamente em uma clusula uses. Na maioria das vezes Delphi coloca todas as units necessrias na clusula uses quando gera e mantm o arquivo fonte.
23
O arquivo fonte est em um diretrio diferente do arquivo project e o esse diretrio (do fonte) no est no caminho de busca do compilador ou no caminho de busca da Biblioteca Delphi Diferentes diretrios no caminho de busca possuem units com o mesmo nome Uma aplicao tipo console est sendo compilada pela linha de comando e foi nomeada uma unit com um identificador que no coincide com o nome de seu arquivo fonte 26
Neste exemplo Prog depende diretamente de Unit2 que depende diretamente de Unit1. Como Unit1 no aparece na clusula uses de Prog, os identificadores declarados em Unit1 no so acessveis a Prog.
29
33