Você está na página 1de 37

Mini-Curso Delphi Borland Delphi 7.

0 Studio

Por Marcos Paulo Salvador de Oliveira


marcospsoliveira@terra.com.br

UNESP - Bauru 18/10/2003, 25/10/2003, 01/11/2003.

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

Mini-Curso Delphi
1. INTRODUO...........................................................................................................................1 1.1. FAMILIARIZAO COM O AMBIENTE DE PROGRAMAO ........................................................1 1.2. SUBDIVISES DO AMBIENTE DE PROGRAMAO DELPHI ........................................................2 1.2.1 Menu Principal................................................................................................................3 1.2.2 Gerenciador de Desktops.................................................................................................3 1.2.3 Palheta de Botes Rpidos...............................................................................................4 1.2.4 Palhetas de Componentes ................................................................................................4 1.2.5 Formulrio......................................................................................................................4 1.2.6 Code Editor.................................................................................................................5 1.2.7 Object TreeView..........................................................................................................6 1.2.8 Object Inspector..........................................................................................................7 1.3. AMBIENTE DRAG AND DROP..............................................................................................8 2. FERRAMENTAS DO AMBIENTE DE PROGRAMAO .....................................................9 2.1. CODE COMPLETITION........................................................................................................9 2.1.1 Chamando o Code Completition................................................................................ 10 2.1.2 Refinando a busca do Code Completition................................................................... 10 2.2. ESTRUTURAS DE PROGRAMAO PR-ESTABELECIDAS (CODE TEMPLATES)...................... 11 2.2.1 Utilizando Code Templates........................................................................................ 11 2.2.2 Adicionando Code Templates.................................................................................... 12 3. PROGRAMANDO EM DELPHI ............................................................................................. 14 3.1. TIPOS DE ARQUIVOS GERADOS PELO DELPHI ....................................................................... 14 3.2. O QUE SALVAR ? ................................................................................................................. 16 3.3. NORMA INTERNACIONAL DE NOMENCLATURA DE VARIVEIS E OBJETOS .............................. 17 3.4. CASE-INSENSITIVE .............................................................................................................. 17 3.5. CRIAO DE VARIVEIS ..................................................................................................... 18 3.6. CONSTANTES ...................................................................................................................... 19 3.7. TIPOS ................................................................................................................................. 19 3.8. CRIAO DE ROTINAS ......................................................................................................... 20 3.8.1 Parmetros.................................................................................................................... 21 3.8.2 Procedimentos............................................................................................................... 21 3.8.3 Funes......................................................................................................................... 22 3.8.4 Onde declarar rotinas.................................................................................................... 22 3.9. CRIAO DE MTODOS ....................................................................................................... 23 3.9.1 Onde Declarar Mtodos ................................................................................................ 24 3.9.2 Facilitando as Coisas .................................................................................................... 25 3.10. CRIAO DE UNITS ............................................................................................................. 25 3.10.1 Interface ................................................................................................................... 26 3.10.2 Implementation ......................................................................................................... 27 3.11. EVENTOS ............................................................................................................................ 28 3.12. TRATAMENTO DE EXCEES ............................................................................................... 30 3.12.1 Try ... Except............................................................................................................. 30 3.12.2 Try ... Finally............................................................................................................ 31 4. COMPILANDO E DEBUGANDO ........................................................................................... 31 4.1. COMPILANDO ..................................................................................................................... 31 4.1.1 Gerando o executvel .................................................................................................... 31 4.1.2 Erros de Compilao..................................................................................................... 32 4.2. DEBUGANDO ...................................................................................................................... 33 4.2.1 BreakPoints................................................................................................................... 33 4.2.2 Watches......................................................................................................................... 34

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

1.

Introduo

Este tpico destina-se a dar uma viso geral sobre o ambiente de programao da Borland: Delphi 7.0 Studio, mostrando suas principais caractersticas e sua organizao para melhor atender aos programadores. 1.1. Familiarizao com o Ambiente de Programao O ambiente de programao Delphi uma ferramenta projetada para facilitar a programao rpida e fcil de qualquer aplicao. Esta ferramenta conta com uma interface totalmente interativa. Baseando-se em uma programao orientada a objetos utilizando recursos de drag and drop, o ambiente proporciona ao programador um ganho de tempo muito grande. Este tempo poder ser usado na programao dos eventos necessrios para o pleno funcionamento do sistema. Uma outra vantagem da ferramenta Delphi a quantidade de componentes existentes na Internet que podem ser facilmente instalados, alm da grande gama de componentes que j vm com a ferramenta. O ambiente Delphi foi projetado para proporcionar ao programador um meio rpido, limpo e preciso de programao, no qual apenas necessrio preencher as lacunas que sero criadas pela programao dos eventos, como veremos adiante. Entretanto, este ambiente de programao se torna um tanto quanto prejudicial para programadores novos. Como toda a estruturao e criao de objetos feita automaticamente pelo ambiente, o programador no tem espao para treinar suas habilidades. Portanto, recomenda-se este ambiente para programadores mais experientes ao lidar com objetos e que visem aumentar sua produtividade. Deve-se salientar, entretanto, que este fator no uma desvantagem, pois no impede que o programador altere os objetos criados para adapt-los s suas necessidades. Todas as verses do Delphi at hoje lanadas so feitas sobre o conceito de linguagem de programao compilada, ou seja, o cdigo fonte interpretado e transformado em objeto para depois dar origem ao executvel. Existem boatos de que a Borland, fabricante do Delphi est desenvolvendo uma Mquina Virtual Delphi para que assim como no Java o programa gerado tenha maior portabilidade, ou seja, que possa ser executado independente do sistema operacional. Este curso de programao em Delphi versar sobre a verso 7.0 do compilador e debugger Delphi, que alm de proporcionar algumas mudanas na sua interface tradicional, permite o uso de alguns recursos de interface de programao mais avanados (principalmente para serem usados com o Windows XP). Outra mudana observada que a nova verso do ambiente permite ao usurio utilizar alguns recursos a mais de programao Web, dentre os quais uma integrao Java o mais chamativo deles. Curiosidade: A Borland tambm tem uma verso do ambiente de programao Delphi desenvolvida para o Sistema Operacional Linux, que curiosamente no recebe o mesmo nome, sendo conhecida como Kylix.

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

Ambiente de Programao Delphi 7.0

1.2. Subdivises do Ambiente de Programao Delphi O ambiente de programao Delphi 7.0 apresenta subdivises para melhor facilitar o trabalho do programador. Algumas dessas subdivises podem estar ou no ativas, de acordo com as configuraes do ambiente. Todas as subdivises so de vital importncia para o programador, pois so elas as responsveis pela velocidade na programao.

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

Subdivises do Ambiente de Programao

1.2.1 Menu Principal Permite o acesso a todas as funes disponveis no ambiente de programao, atravs dele todas as demais subdivises podero ser ativadas ou desativadas. Atravs deste menu poderemos tambm ter acessos s opes de programao, compilao, debug, do editor de cdigo, entre diversas outras. O Menu Principal o responsvel por todo o gerenciamento do ambiente de programao Delphi 7.0 e normalmente pouco muda de uma verso para outra do ambiente.

Menu Principal

1.2.2 Gerenciador de Desktops O Gerenciador de Desktops uma das partes do ambiente de programao destinada aos programadores metdicos e chatos que gostam de sempre ter as suas janelas organizadas a seu modo. Esta ferramenta permite que o programador salve as 3

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

configuraes do Desktop do ambiente de trabalho Delphi 7.0 para que possa futuramente utiliz-las caso ocorra alguma desordem. As principais caractersticas salvas so o posicionamento das janelas e viewers.

Gerenciador de Desktops

1.2.3 Palheta de Botes Rpidos A Palheta de Botes Rpidos contm botes com as funes mais utilizadas pelos programadores no ambiente de programao Delphi 7.0. Esta palheta foi criada com o objetivo de proporcionar maior rapidez e alcance mais rpido e fcil destas funes evitando assim o desperdcio de tempo na procura das mesmas. A maioria das aes disponveis nesta palheta possui um atalho correspondente o que torna o uso das funes ainda mais rpido e fcil para aquelas que tem boa memria.

Palheta de Botes Rpidos

1.2.4 Palhetas de Componentes As Palhetas de Componentes so as palhetas fundamentais do ambiente de programao Delphi 7.0. Atravs destas palhetas o programador tem acesso maioria dos recursos e objetos Drag and Drop do ambiente. Cada verso Delphi 7.0 conta com uma certa quantidade, sendo que a mais simples das verses conta com as palhetas mais bsicas. Conforme as verses vo se tornando mais profissionais (e mais caras), o nmero de componentes vai aumentando, assim como o nmero de palhetas. A verso Enterprise Padro do Delphi 7.0 conta com aproximadamente 27 Palhetas de Componentes, estas palhetas contm desde componentes de interface at componentes para conexo Web e ActiveX.

Palhetas de Componentes

1.2.5 Formulrio Uma das subdivises do ambiente de programao Delphi, o Formulrio a principal pea na programao de interfaces. Ele serve como Dock Site, ou seja, local onde os Drags terminam. Esta nica e simples funo permite que todos os

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

componentes encontrados na Palhetas de Componentes possam ser posicionados em seu interior. O Formulrio serve tambm como fundo para as interfaces do usurio, onde sero colocados botes, caixas de texto, figuras, etc. O formulrio pode nem sempre estar visvel ao programador ou ao usurio, porm sempre que estiver ter uma Unit associada a ele, dentro da qual haver seu cdigo-fonte e o cdigo de todos os componentes que ele contiver como filhos, ou seja, todos os componentes em seu interior.

Formulrio

1.2.6 Code Editor O Code Editor rea do ambiente de programao do Delphi destinada a receber o cdigo-fonte do programa, compreendendo objetos, mtodos, variveis, tratamento de eventos e excees, entre outros. O Code Editor contm tambm, assim como todas as outras subdivises, recursos que tornam a edio de cdigos cada vez mais rpidas. Dentre estes recursos podemos citar o Code Completition que ser discutido no tpico 2. Esta ferramenta possui tambm Syntax Highlight para auxiliar na distino entre palavras reservadas, comentrios, variveis, entre outros.

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

Code Editor com um trecho de Cdigo Bsico

1.2.7 Object TreeView O Object TreeView uma ferramenta que proporciona uma viso geral de todos os objetos que esto sendo utilizados no projeto em questo. Os objetos so listados de acordo com o seu nome (fornecido pela propriedade Name). Cada objeto pode conter diversos outros objetos que sero mostrados em forma de rvore, comeando dos containeres maiores, em direo aos menores. Um clique sobre o nome de um objeto no Object TreeView faz como que este objeto seja selecionado e suas propriedades e eventos ento mostrados no Object Inspector.

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

Object TreeView

1.2.8 Object Inspector O Object Inspector uma rea de visualizao e configurao de um objeto. A partir de um objeto selecionado, suas propriedades e eventos so mostrados e podero ser ento alterados de acordo com as necessidades do programador. Para alterar uma propriedade, basta clicar na propriedade desejada, sobre o campo de edio e ento escrever o novo valor, ou selecionar algum objeto ou arquivo em um dilogo aberto. Para alterar ou criar um evento basta dar um clique duplo sobre a caixa de edio do evento em questo, o Code Editor ser ento lanado para que a edio do cdigo do evento seja feita. Curiosidade: itens em vermelho so propriedades ou eventos que podero possuir vnculos com outros objetos se o programador assim achar necessrio.

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

Object Inspector

1.3. Ambiente Drag and Drop O ambiente de programao do Delphi 7.0 Studio por ser altamente integrado permite que a maioria dos objetos criados nele sejam inseridos na aplicao atravs do arrastar e clicar. Este recurso aumente a velocidade de programao e proporciona maior preciso no posicionamento de componentes de interface. Alm dessa facilidade de posicionamento devemos salientar a economia de tempo que o programador adquire. Na maioria dos ambientes ou linguagens de programao, o programador depois de posicionar atravs de linhas de comando o seu componente ou objeto, tem que compilar o cdigo, verificar o posicionamento e se algo estiver errado, tentar adivinhar o valor adequado para a posio do objeto. Ao falarmos em Drag and Drop no podemos nos esquecer do formulrio j citado anteriormente. o formulrio que serve como dock, ou seja, o formulrio o objeto recipiente dos componentes. Porm o formulrio no o nico recipiente de objetos, mas sim o principal. Outros componentes como panels, por exemplo, podem receber componentes de outros tipos ou at mesmo panels.

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

Componentes sendo posicionados em regies de dock

2.

Ferramentas do Ambiente de Programao

Este mdulo destinado prtica de programao rpida. Nele sero apresentados recursos do ambiente de programao que so extremamente teis para o desenvolvimento de aplicaes. Estes recursos permitem que o programador economize tempo de digitao e se preocupe mais com a lgica do que com a digitao. 2.1. Code Completition O Code Completition como o prprio nome diz um completador de cdigos. Por essa caracterstica um recurso muito utilizado quando se pretende desenvolver aplicaes rapidamente. Este recurso possibilita que o programador visualize todas as funes, procedimentos, classes, objetos, variveis entre outros que esto definidas e que podero ser utilizadas. O Code Completition muito inteligente e mostra sempre ao programador as opes adequadas para completar o cdigo. Nota: se o Code Completition no conseguir exibir nenhuma opo para completar o cdigo, isto indica que o cdigo apresenta erros em posies anteriores a que ele foi

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

chamado, ou que ele ficou em dvida sobre a melhor opo a escolher. O ltimo caso geralmente ocorre com tipos definidos pelo usurio ou diante do uso de type-casting. 2.1.1 Chamando o Code Completition O Code Completition conforme dito anteriormente um recurso do Code Editor, portanto s pode ser chamado dentro do mesmo. Uma vez dentro do Code Editor, o Code Completition poder ser chamado em qualquer lugar (exceto para completar nome de units aps os comandos uses), pressionando-se as teclas <CTRL>+<Barra de Espao>. Ao pressionar esta combinao de teclas, uma lista com todas as opes possveis de complemento ser apresentada. Basta ento escolher a opo adequada e pressionar <ENTER>. 2.1.2 Refinando a busca do Code Completition Quanto maior a quantidade de letras que estiverem digitadas antes de chamar o Code Completition, maior ser o refinamento da busca, menor o nmero de resultados e melhor a qualidade dos mesmos. O refinamento da busca poder ser feito com a lista de resultados j aberta, o que causar um atualizao da mesma para se adequar aos novos requisitos da busca.

Exemplo de uso do Code Completition

No exemplo da figura acima foi definida uma varivel nome do tipo string em um procedimento qualquer. Logo em seguida, no corpo do procedimento, chamamos o 10

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

Code Completition fornecendo apenas a primeira letra da varivel que j conhecamos. Por sorte ela a primeira da lista, basta agora pressionar <ENTER> e us-la! Se a varivel no fosse a primeira da lista, bastava navegar pela mesma utilizando as setas para cima e para baixo, ou ento continuar fornecendo letras com a lista aberta. Ao fornecer mais letras com a lista aberta, ela automaticamente se atualiza. Na figura acima se nota que a lista apresenta 2 colunas distintas: ? Primeira Coluna ou Coluna dos Tipos: esta coluna indica o tipo do elemento que aparece na segunda coluna, ou seja, se ele uma varivel, funo, procedimento ou um tipo em si; ? Segunda Coluna ou Coluna dos Identificadores: nesta coluna os identificadores aparecem, ou seja, os nomes das variveis, rotinas ou tipos, assim como seus parmetros e no caso de variveis e funes o tipo de dados que comportam e retornam respectivamente. 2.2. Estruturas de Programao Pr-Estabelecidas (Code Templates) muito comum que uma aplicao contenha estruturas de programao das mais variadas formas e tamanho, e na maioria das vezes estas estruturas se repetem. Seria muito mais fcil para o programador ter estas estruturas de programao como while, for, entre outras pr-definidas para quando necessrio invoc-las. Para isso o Delphi 7.0 Studio conta com um recurso similar ao Code Completition, porm para complementar estruturas de programao. Estas estruturas pr-definidas so as Code Templates. 2.2.1 Utilizando Code Templates O uso das Code Templates se d de maneira similar ao uso do Code Completition. Dentro do Code Editor, em uma regio vlida, ou seja, dentro de uma funo ou procedimento, pressione as teclas <CTRL>+<J>. Uma lista com as opes de estruturas pr-definidas ser apresentada. Ao escolher a estrutura adequada pressione <ENTER> e ela ser inserida no seu cdigo-fonte. Assim como descrito na explicao do Code Completition, a busca pela templates poder ser facilitada se uma ou mais letras do nome fornecido template forem indicadas antes de pressionar a combinao de teclas. Assim como a lista de opes do Code Completition, a lista de opes das Code Templates possui duas colunas, a saber: ? Primeira Coluna ou Coluna da Descrio: esta coluna mostra uma descrio do tipo de cdigo que ser inserido no Code Editor ao se escolher a template em questo;

11

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

Segunda Coluna ou Coluna do Nome: esta coluna exibe o nome prdefinido para o conjunto de comandos ou estrutura de programao estabelecida pelo programador. Este nome que deve ser digitado para facilitar a busca ou para que a template seja inserida.

Lista de Code Templates

2.2.2 Adicionando Code Templates Para adicionar Code Templates basta realizar os seguintes passos: 1. No Menu Tools v em Editor Options. A janela da figura abaixo dever aparecer;

Janela de Propriedades do Code Editor

12

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

2. Em Source Options clique no boto Edit Code Templates;

Janela de Propriedades do Code Editor Editando Templates

3. Na Janela que se abre escolha entre abrir, editar ou excluir o nome ou a descrio de uma template. O cdigo da mesma pode ser alterado diretamente abaixo da lista em Code

Editor de Templates

Nota: o caractere | (pipe ou barrinha em p) que aparece nas definies da maioria das templates que acompanham Delphi 7.0 Studio indica o lugar onde o cursor ir para depois que a template for inserida no Code Editor.

13

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

3.

Programando em Delphi

Neste tpico em a preocupao principal ser a codificao em Delphi, introduzir o usurio em alguns princpios bsicos de programao. Ser mostrado como fazer para que o cdigo se torne o mais claro possvel, facilitando posterior manuteno do mesmo. 3.1. Tipos de Arquivos Gerados pelo Delphi Cada aplicao ou projeto gerados no Delphi pode gerar um nmero bem grande de arquivos. Cada tem o seu papel especial no armazenamento das configuraes das aplicaes e so indispensveis para a remontagem das mesmas. Os tipos de arquivos mais comumente gerados pelo Delphi so: ? *.DPR: arquivo de Projeto. Este arquivo o programa principal de toda a aplicao dentro dele esto armazenados informaes sobre as units e seus nomes, assim como os Formulrios associados. Neste arquivo tambm so determinados os formulrios que sero criados e exibidos no incio da aplicao. O contedo do arquivo DPR poder ser visualizado abrindo-se o projeto no Code Editor da seguinte maneira: Menu View? Units e selecionando o projeto, ou atravs do atalho <CTRL>+<F12>;

Arquivo DPR no Code Editor

14

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

*.PAS: so os arquivos que armazenam as units, contendo rotinas, variveis, definies de tipos, entre outros. Cada arquivo *.PAS representa uma unit;

Arquivo PAS no Code Editor

*.DFM: este arquivo armazena os valores das propriedades configurados no Object Inspector de todos os componentes presentes no formulrio associado a uma unit *.PAS de mesmo nome. No modifique este arquivo manualmente, a no ser que saiba o que est fazendo. O arquivo DFM pode ser visualizado clicando-se com o boto direito sobre um formulrio e em seguida escolhendo a opo View as Text, o formulrio ser exibido como texto no Code Editor;

Arquivo DFM no Code Editor

15

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

*.DOF: armazena as opes do Projeto que podem ser modificadas atravs do menu Project? Options, que tambm nica maneira de verificarmos o contedo de um arquivo DOF.

Arquivo DOF visualizado nos Opes de Projeto

3.2. O que Salvar? Como o Delphi 7.0 Studio cria muitos arquivos necessrio ter conhecimento sobre os mesmos, para saber qual deles devem ser selecionados para Backup. A seguir temos uma tabela com essas informaes: Extenso do Arquivo DPR PAS DFM Necessidade de Salvar Essencial Essencial Essencial Utilidade do Arquivo Guarda as Configuraes do Projeto da Aplicao Guarda as Rotinas, Variveis e Tipos da Aplicao Guarda o Posicionamento dos Componentes dentre do Formulrio Guarda as Opes do Projeto Guarda algumas informaes no muito teis como o cone da Aplicao se este for mudado Backup Preventivo do Delphi

DOF RES

Opcional Opcional

*.~*

Totalmente Desnecessrio

16

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

3.3. Norma Internacional de Nomenclatura de Variveis e Objetos Saber dar nomes a variveis e objetos extremamente importante para o programador de aplicaes. Grandes empresas geralmente trabalham com aplicaes cujo cdigo-fonte tem um nmero muito grande de linhas e que levam uma grande quantidade de tempo para serem implementados. Extenso e tempo somados fazem com que o programador se esquea do que cada trecho de cdigo realiza. Um cdigo-fonte mal documentado extremamente difcil de se fazer manuteno, agrava-se a situao se as variveis ainda por cima no tiverem um nome claro. A maioria dos programadores tem por hbito chamar variveis de eu,a,x, entre outros. Estes nomes dificultam que qualquer outro programador entenda e consiga fazer manuteno do cdigo. Para evitar este tipo de problema, foi criado um Padro Internacional de Nomenclatura, no qual o incio do nome de cada varivel composto pela abreviao do seu tipo, com as letras minsculas. Esta abreviao realizada omitindo-se as vogais da palavra que compe o tipo. Por exemplo, se temos um objeto do tipo Form, seu nome seria frm+<nome a esoclha do programador> (recomenda-se que <nome a escolha do programador> tenha a ver com a funo do objeto ou varivel). Utilizando esta nomenclatura todos os que tivessem contato com o objeto frmGerenciamentoDados, mesmo que no soubessem portugus saberiam que este objeto um Form, sem ter que localizar sua declarao. J os que soubessem um mnimo de portugus saberiam que, alm disso, este formulrio realizar as funes de gerenciamento de Dados. Existe uma outra vertente para nomenclatura de variveis que diz o nome de uma varivel deve ter em seu primeiro caractere uma letra minscula representando o tipo de dado que a varivel guarda, sendo a segunda letra maiscula. Assim, por exemplo, uma varivel chamada ValorX do tipo real, deveria ser nomeada fValorX, onde f representa que a varivel armazena um dado com ponto flutuante. 3.4. Case-Insensitive Este item foi criado com nico propsito de frisar uma das caractersticas do Delphi 7.0 Studio, portanto ser breve. O pretende-se neste item salientar que o ambiente de programao do Delphi Case-Insensitive, ou seja, para variveis, comando, procedimentos, etc, no importa o modo como voc os chama no que diz respeito caixa do nome. Por exemplo, se criarmos um procedimento chamado CalculaX, poderemos cham-lo das seguinte maneiras: ? calculax; ? CaLcUlAx; ? calCulax; ? ... Qualquer uma das formas apresentadas acima e variantes so reconhecidas pelo Delphi como sendo o mesmo procedimento. Portanto no necessrio se preocupar como chamar o procedimento como no caso de linguagens case-sensitive como C e Java que exigem que todos os caracteres tenham a mesma caixa para serem reconhecidos como o mesmo procedimento.

17

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

3.5. Criao de Variveis As variveis so de suma importncia para qualquer programa. Elas permitem que dados sejam armazenados, manipulados e lidos, mais principalmente facilitam a sua localizao e chamada. , portanto fundamental que o programador saiba criar variveis e que saiba como nome-las de maneira adequada, conforme j vimos. O Delphi 7.0 Studio mantm as estruturas estabelecidas pelo Pascal ao declarar variveis. Porm deve-se notar que o Delphi usa apenas units como unidades bsicas de programa, portanto, devemos declarar as variveis na regio de interface da unit. Na figura abaixo temos como exemplo uma unit padro do Delphi. Notamos que a unit segue uma estrutura na qual a declarao de variveis feita dentro da rea da unit chamada Interface. Conceito Importante: a declarao de variveis sempre feita aps a palavra reservada var e sempre termina quando aparecer umas das palavras reservadas: begin ou implementation.

Unit Padro do Delphi

Ao criarmos variveis devemos obedecer seguinte estrutura: var <nome da varivel>: <tipo varivel>; <nome da varivel>,<nome da varivel>: <tipo varivel>; <nome da varivel>,...,<nome da varivel>: <tipo varivel>; 18

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

Exemplo var aNome: String; iValorX, iValorY: Integer; fDinheiro: Real; Fato Importante: as variveis so privadas s units nas quais so declaradas, ou seja, s podem ser acessadas por mtodos e objetos contidos na unit. Se for necessrio utilizar um varivel em outra unit, devemos adicionar sua unit na clausula uses da mesma. Segundo Fato Importante: variveis podem ser tambm declaradas dentro de objetos, sendo de uso exclusivo do mesmo, a no ser que sejam declaradas na regio pblica. 3.6. Constantes Constantes so variveis cujo valor no pode ser alterado, ou seja, seu valor instanciado no incio do programa e permanece inalterado at o trmino do mesmo. Constantes so teis em programao para armazenar o valor de delimitadores de laos e para armazenar valores que sempre so utilizados no decorrer do cdigo. altamente recomendvel o uso de constantes no lugar de valores, pois uma vez alterado o valor de uma constate, todo o lugar onde ela aparece ter seu valor alterado tambm. As constantes devem ser declaradas entre as clusulas uses e type. Sintaxe Const <identificador da constante> = <valor constante>

Constantes Declaradas

3.7. Tipos O programador pode querer definir os seus prprios tipos para tornar o programa mais claro e conciso. O Delphi 7.0 Studio possibilita que isso ocorra assim como as demais linguagens de alto nvel. O programador dever declarar seus tipos sempre antes de atribu-los a uma varivel, recomenda-se que isto seja feito logo aps a declarao das constantes.

19

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

A declarao do tipo deve ser feita aps a palavra reservada type. Sintaxe type <identificador do tipo> = <declarao do tipo>; <identificador do tipo> = <declarao do tipo>; <identificador do tipo> = <declarao do tipo>;

Observao: a criao de tipos fundamental quando se deseja passar por parmetro matrizes ou variveis cujo tipo seja altamente complexos, como por exemplo, record. 3.8. Criao de Rotinas As rotinas foram concebidas com o intuito de facilitar a programao, so isolamentos lgicos de blocos de comandos. Atravs delas podemos criar nveis de abstrao, ou seja, permitir que outros mtodos ou rotinas chamem atravs de uma nica linha de programao um conjunto de outros comandos sem precisar escrevlos. Entretanto, o principal motivo pelo qual as rotinas so amplamente utilizadas a economia de linhas de cdigo. Um bloco de comandos que aparece repetidas vezes dentro de um programa pode ser declarado dentro de uma rotina. Assim poderemos cham-lo diversas vezes dentro do programa, sem precisarmos escrever os comandos novamente. As rotinas tambm so conhecidas em programao orientada objetos como mtodos, mas somente recebem essa designao quando fazem parte dos objetos. Existem dois tipos principais de rotinas, a saber: ? Procedimento: encapsula um bloco de comandos e permite a passagem de parmetros por referncia ou valor; ? Funo: tipo especial de procedimento que retorna um valor alm de possuir as caractersticas comuns a todos os procedimentos.

20

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

3.8.1 Parmetros Ao definir rotinas, na maioria das vezes, se faz necessrio o acesso s variveis externas. Porm nem sempre essas variveis so globais, ou seja, variveis s quais todos tm acesso. Para tanto, utilizamo-nos do recurso dos parmetros. Parmetros so variveis que so passadas para a rotina para que esta possa executar seus comandos utilizando os valores dos parmetros. Existem dois tipos de parmetros implementados no Delphi 7.0 Studio, a saber: ? Por Valor: parmetros por valor so aqueles que ao serem passados para as rotinas, apenas permitem que seu valor seja usado e no alterado. Isso ocorre porque criada uma cpia do parmetro para uso exclusivo da rotina. No fim do processamento da rotina, este valor perdido; ? Por Referncia: parmetros por referncia so aqueles que permitem que todas as alteraes feitas sobre o seu valor original sejam refletidas na varivel externa rotina. Na realidade, ao serem passados para a rotina, o que esta recebe um ponteiro para o endereo de memria do parmetro, portanto todas as alteraes so feitas diretamente na rea de memria da varivel externa. 3.8.2 Procedimentos Procedimentos so blocos especiais de programa que permitem o encapsulamento lgico de um conjunto de comandos. Isto facilita o entendimento das funes do conjunto, assim como tambm proporciona um enxugamento maior do cdigo. Os procedimentos so rotinas parametrizveis, ou seja, so capazes de receber parmetros. Estes parmetros podero ser passados por valor ou referncia. Parmetros passados por referncia devero ter suas declaraes precedida pela palavra reservada var. Procedimentos, assim como as funes, permitem a declarao de variveis internas, que deve ser feita antes do begin do procedimento. Estas variveis so visveis apenas pelo procedimento e so eliminadas da memria quando o procedimento deixa de ser executado. Sintaxe procedure <nome do procedimento> (<var><parmetro 1>: <tipo parmetro 1>; <var><parmetro 2>: <tipo parmetro 2>); var <varivel 1>: <tipo varivel 1>; <varivel 2>: <tipo varivel 2>; begin end;

21

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

Exemplo procedure somaAB (A,B: real; var Resultado: real); begin Resultado:=A+B; end;

Modo de Invocao: somaAB(A,B,Resultado);

3.8.3 Funes Funes so um tipo especial de procedimento que alm de manter as funcionalidades do mesmo, permitem que um valor seja retornado. Este valor no um parmetro. Sintaxe function <nome da funo> (<var><parmetro 1>: <tipo parmetro 1>; <var><parmetro 2>: <tipo parmetro 2>): <tipo funo>; var <varivel 1>: <tipo varivel 1>; <varivel 2>: <tipo varivel 2>; begin end; Exemplo function somaAB (A,B: real): real; begin somaAB:=A+B; end;

Modo de Invocao: <varivel de resposta do mesmo tipo da funo>:=somaAB(A,B); 3.8.4 Onde declarar rotinas As rotinas devem ser declaradas apenas na regio da unit conhecida como implementation. Esta rea destinada declarao do corpo dos mtodos.

22

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

Rotinas declaradas dentro de implementation

Observao: rotinas so diferentes de mtodos, portanto para elas, objetos e variveis internos a outros objetos sero invisveis, pois estes so privados aos seus objetos recipientes. 3.9. Criao de Mtodos Mtodos so rotinas especiais de objetos, que possuem privilgios sobre seu objeto continente. Podem acessar variveis, objetos e at mesmo outros mtodos dentro de seu objeto continente. Os mtodos possuem uma maneira especial de serem declarados. Devem conter antes de seu nome o tipo do objeto continente, separado por . de seu prprio nome. Sintaxe
procedure

<tipo objeto>.<nome do procedimento> (<var><parmetro 1>: <tipo parmetro 1>;


<var><parmetro 2>: <tipo parmetro 2>); <varivel 2>: <tipo varivel 2>;

var <varivel 1>: <tipo varivel 1>; begin end; function

<tipo objeto>.<nome da funo> (<var><parmetro 1>: <tipo parmetro 1>;


<var><parmetro 2>: <tipo parmetro 2>):

<tipo funo>;

var <varivel 1>: <tipo varivel 1>; <varivel 2>: <tipo varivel 2>; begin

23

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

end;

3.9.1 Onde Declarar Mtodos Mtodos tm uma maneira diferente de serem declarados. Como as rotinas seu corpo deve estar descrito na regio conhecida como implementation e deve ser feito segundo a sintaxe acima. Porm necessrio tambm incluir o cabealho do mtodo dentro da definio do objeto do qual ele faz parte. Existem trs sees possveis para se inserir o cabealho de um mtodo. Estas sees tambm servem para declarao de variveis. So elas: ? Delphi exclusive declarations: nesta regio o delphi faz a declarao de todos os mtodos, variveis e objetos que cria automaticamente. Dentre estes mtodos, temos os mtodos que so utilizados para o tratamento de eventos. Nesta regio pode-se inserir mtodos que so definidos pelo programador, porm sempre que possvel melhor evitar isto. altamente recomendvel que os mtodos do programador sejam declarados nas prximas duas sees; ? Private declarations: esta regio utilizada na declarao de variveis e mtodos que so privados ao objeto, ou seja, somente o objeto ter acesso ao que for declarado nesta regio; ? Public declarations: esta regio utilizada na declarao de variveis e mtodos que so pblicos, ou seja, o que for declarado nesta regio poder ser acessado por qualquer objeto ou uma unit que puder acessar uma instncia do objeto continente desta regio.

Sees de Declarao de Mtodos e Variveis

24

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

3.9.2 Facilitando as Coisas Para evitar problemas na hora de declarar mtodos, principalmente por incompatibilidade de cabealho, o Delphi 7.0 Studio possui um recurso interessante de auxlio. Este instrumento permite que, a partir de um cabealho inserido em um objeto, posicionando-se o cursor sobre o nome do mesmo e pressionando-se a combinao de teclas <ctrl>+<C>, o esqueleto do mtodo automaticamente criado na regio implementation. 3.10. Criao de Units Units a menor subdiviso de um programa logicamente completo em Delphi. Cada unit composta por um conjunto de declaraes de mtodos, rotinas, variveis, objetos e classes, que podem ou no estar presentes. O Delphi 7.0 Studio apresenta dois tipos de units principais, uma delas a prpria unit em si, a outra uma unit conjugada com um objeto form. A ltima a mais comumente usada, sendo tambm a primeira a ser visualizada quando um projeto criado. Para adicionarmos uma unit em um projeto devemos seguir um dos seguintes passos: ? Com o projeto aberto, no menu File ? New ? Unit: esta seqncia de passos cria uma unit simples; ? Com o projeto aberto, no menu File ? New ? Form: esta seqncia de passos cria uma unit conjugada a um formulrio.

Unit conjugada a um Formulrio

25

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

Unit simples

Observando a figura acima, nota-se que ambas as units mantm uma mesma estrutura padro. A segunda figura mostra como uma unit deve ser declarada e o que ela deve conter. Todas as units criadas devero no mnimo apresentar a seguinte estrutura: unit <nome da unit> interface implementation end. 3.10.1 Interface Uma das regies fundamentais a qualquer unit a interface tem um papel fundamental na definio de uma unit. atravs dela que todos os objetos e outras units tomam conhecimento dos mtodos possudos pela unit, assim como as variveis, objetos e rotinas. Tudo o que for declarado nesta regio assim como todos os cabealhos de rotinas nela contidos sero visveis para todas as outras units que contiverem a unit em sua clusula uses.

26

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

Um bom programador segue uma estrutura clssica ao escrever sua seo interface. Em seguida aparecem as clusulas que podero estar contidas na seo, elas esto seguindo a estrutura clssica, portanto, fundamental que esta ordem seja mantida. Clusulas que podem ser inseridas na seo interface na ordem prefervel de aparecimento: ? Uses: determina de quais units a unit atual necessita, das units cujos nomes aparecem a frente desta clusula, a unit atual utiliza componentes e declaraes; ? Const: aps esta clusula so declaradas as constantes, para maiores detalhes consulta a seo 3.6; ? Type: com uso desta clusula permitida a declarao de tipos conforme a necessidade do programador. Para maiores informaes consulte a seo 3.7; ? Var: clusula utilizada para identificar a declarao de variveis. Para maiores informaes consulte a seo 3.5; ? Cabealhos das Rotinas: aps a declarao de todos os itens anteriores se existirem, vir a declarao dos cabealhos das rotinas implementadas na seo implementation e que sero visveis aos usurios da unit.

Estrutura Clssica da Seo Interface

3.10.2 Implementation Implementation a seo da unit onde o corpo das rotinas e mtodos so declarados. Como o prprio nome diz, onde ocorre a implementao.

27

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

Esta seo pode conter todos os tipos de clusulas declaradas para a seo interface, porm as clusulas aqui declaradas s podero ser utilizadas por esta seo. Um fato importante a se observar que todas as clusulas usadas pela seo interface tambm so vlidas nessa seo, portanto no necessrio redeclar-las. A declarao de rotinas deve ser feita nessa seo como foi descrito anteriormente na seo 3.8.4. Curiosidade: as rotinas podero ser inseridas nessa seo com o seu cabealho completo ou apenas at o seu nome. Seu o ltimo for feito, o delphi procurar por sua declarao posterior na seo interface e completar o resto!

Exemplo de Implementation com Rotinas

3.11. Eventos Eventos so fatos ou ocorrncias disparadas durante o andamento de um programa. Toda programao orientada a objetos se baseia na ocorrncia de eventos. Cabe ao programador dizer ento o que ocorrer quando um evento acontecer. O Delphi 7.0 Studio permite que o programador programe para que seu programa reaja diante desses eventos. A maioria dos eventos so disparados por componentes grficos do ambiente visual do programa, estes eventos podem ser do tipo: clicar do mouse, entrada do mouse em uma regio, movimentao de componentes, etc. Para ter acesso a lista de eventos de um objeto ou componente, basta clicar sobre ele e ir ao Object Inspector e selecionar a aba Events. A maioria dos componentes presentes na barra de eventos apresenta algum tipo de evento relacionado a ele, portanto a chance de voc escolher um componente que no tenha eventos para se tratar muito pequena.

28

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

Componente Boto e seus Eventos

Ao selecionar o objeto e escolher o evento desejado, basta dar um clique-duplo sobre o campo a frente do nome do evento e o Code Editor aparecer para que os comandos sejam inseridos na rotina de tratamento do evento. Com um clique-duplo sobre o evento OnClick do boto temos:

Rotina de Tratamento do Evento do Boto

29

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

3.12. Tratamento de Excees A programao uma tarefa difcil e muito complexo, principalmente quando lidamos com dados ou acontecimentos dos quais no podemos prever. Quando estes fatos ocorrem o programa pode sofrer srios crashes e sua execuo ser interrompida repentinamente sem explicaes, ou aparecendo a telinha azul do Windows. Procurando evitar este tipo de problemas foram inventados mtodos para que estas excees ocorrendo o programa consiga dribl-los facilmente. Este mtodos so chamados de tratamento de excees. O Delphi 7.0 Studio implementa dois meios de se tratar excees: try ... except e try ... finally. 3.12.1 Try ... Except O comando try ... except e usado para tratar excees e tem sua base implementada da seguinte maneira: tenta executar um comando ou um conjunto deles, se ocorrer exceo ento ela a trata e aborta a rotina em execuo. Sintaxe Try <comandos> Except on <exceo> do <ao> on <exceo> do <ao> on <exceo> do <ao> ... End; Para tratar a exceo basta ento saber o nome da exceo que ocorreu para executar alguma ao sobre ela, se assim desejar. Se nenhuma exceo for especificada, o programa apenas abortar a rotina.

Tratamento de Excees Diviso por Zero

30

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

3.12.2 Try ... Finally Este comando trata excees da mesma forma que o comando try ... except, porm a nica diferena entre eles que diante da ocorrncia de uma exceo ao invs de trat-la, ele executa os comandos aps o finally. Para este comando no importa o que aconteceu, mas sim o que deve ser feito antes que a rotina aborte.

Sintaxe Try <comandos> Finally <comandos> End;

Tratamento de Excees sem saber qual o tipo de exceo

4.

Compilando e Debugando

Mais importante do que saber programar saber compilar e debugar o cdigo. Este item refere-se somente a essas duas aes fundamentais para a gerao do cdigo executvel e rastreamento de erros respectivamente. 4.1. Compilando A compilao do programa consiste na fase mais importante dentre as duas citadas nesse item, com o compilao o cdigo fonte convertido em linguagem de mquina para poder depois ser executado pelo processador. Durante a compilao o Delphi 7.0 Studio faz a transformao dos comandos e une-os quando necessrio s funes nativas do Windows co, por exemplo, as APIs. 4.1.1 Gerando o executvel A gerao do executvel pode ser feita das seguinte maneiras:

31

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

? ? ?

Menu Project ? Compile Project (<ctrl>+<F9>): realiza a compilao do cdigo, se tudo ocorrer bem, constri o executvel; Menu Project ? Build Project: constri o cdigo executvel, se o programa no tiver sido compilado, ele o faz; Menu Run ? Run (<F9>): roda o programa, se no tiver sido compilado ou construdo, os fazem.

4.1.2 Erros de Compilao Se durante a compilao algum erro for encontrado, um janelinha abrir no Code Editor. Esta janelinha mostrar que um erro ocorreu, informar a unit onde ele ocorreu, qual sua linha e dar um breve descrio sobre o erro. O Code Editor tambm estar com o cursor posicionado sobre o primeiro erro da lista, cuja linha estar marcada em vermelho. Esta janelinha tambm utilizada para mostrar Warnings. sempre interessante checar os warnings, a maioria deles pode ser resolvido.

Code Editor Erro de Compilao

Facilidade: uma das facilidades implementadas na ocorrncia de erros que o duplo clique sobre uma indicao de erro na janela de erro leva direto linha de erro.

32

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

4.2. Debugando O recurso debug muito importante quando temos erros os quais no podemos identificar em tempo de execuo, para isso usamos os recursos de debug. Com eles podemos analisar o cdigo rotinas por rotina, linha de cdigo por linha de cdigo e observar o contedo de cada varivel. Existem dois meios mais usuais de se percorrer o cdigo-fonte: ? Step Into: percorre o programa linha por linha e ao encontrar uma rotina executa a mesma linha por linha e assim por diante. Este recurso ativado com o uso da tecla <F7>; ? Step Over: percorre o programa linha por linha e ao encontrar uma funo a executa sem entrar no seu interior, ou seja, no mostra a execuo linha a linha da rotina. Este recurso ativado com o uso da tecla <F8>. 4.2.1 BreakPoints Breakpoints so recursos muito utilizados durante a debugao de um programa e so nada mais nada menos do que marcos de parada. O programa executa normalmente at o ponto onde encontra um breakpoint, ento a execuo passa a ser passo a passo no cdigo-fonte at que o programador diga para prosseguir atravs do comando Run ou <F9>. Para adicionar um breakpoint, basta compilar o cdigo-fonte, aps a compilao, nota-se no lado esquerdo do Code Editor, bem ao lado do cdigo, o surgimento de algumas bolinhas azuis. Estas bolinhas marcam lugares vlidos para a insero de breakpoints. Para inseri-los basta clicar sobre as bolinhas e a linha se tornar vermelha dizendo que o breakpoint foi efetivado.

Bolinhas Azuis e Breakpoint

33

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

4.2.2 Watches Watches permitem ver o valor de uma varivel ou componente em um dado instante. So muito teis durante o processo de debugao do programa, pois mostram o contedo da varivel a cada passo do debugger. 4.2.2.1 Janela de Watches A janela de Watches necessria para que se possa visualizar os watches. nesta janela que so inseridos os watches e atravs dela que tambm podemos manipul-los e classific-los de acordo com o nosso gosto. A janela de watch pode chamada de duas maneiras: ? Menu View ? Debug Windows ? Watches; ? <Ctrl> + <Alt> + <W>

Janela de Watches ou Watch List

4.2.2.2 Adicionando um Watch Para adicionar um Watch basta tomar um dos seguintes passos: ? Boto Direito sobre a Janela de Watches ? Add Watch; ? <Ctrl> + <A>. Aps realizado um dos passos acima uma janela aparecer para que as caractersticas do watch sejam determinadas. Nessa janela deve-se fornecer o nome da varivel, componente, propriedade ou qualquer outra coisa que se deseje avaliar. Os watches tambm podem ser feitos sobre expresses booleanas ou aritmticas. Aps a configurao das caractersticas do watch ele dever aparecer na Janela de Watches. Para que um watch possa mostrar o valor do que se deseja necessrio que o programa esteja funcionando, pois ele retira as informaes da memria.

34

Mini-Curso Delphi

Marcos Paulo Salvador de Oliveira

Propriedades do Watch

4.2.2.3 Removendo um Watch A remoo de um watch simples, basta clicar sobre ele na janela de watches e pressionar a tecla <delete>. 4.2.2.4 Alterando um Watch A alterao de um watch feita dando-se um duplo clique sobre ele na janela de watches, ento a janela de caractersticas se abrir para edio.

35

Você também pode gostar