Você está na página 1de 19

DELPHI Captulo 1: Iniciando o Delphi

1. INICIANDO O DELPHI
1.1. ALGUMA TERMINOLOGIA
A partir do Delphi 4.0 permitido somente a instalao para 32 Bits , devendo ser executado em Windows 95/98/NT/ME/XP ou 2000. Diferentemente do Visual Basic, no possvel compilar cdigos para 16 Bits, o que significa que o seu aplicativo no poder rodar no Windows 3.1 ou 3.11. Para contornar esta limitao, a Borland fornece, junto com o Delphi 4.0, uma verso do Delphi 1.0, que permite a compilao para 16 Bits. Um objeto, em Delphi, um conjunto de cdigos de programao (sub-rotinas) e propriedades. Na verdade, cada elemento que voc v em um programa Windows um objeto individual, dotado de propriedades que podem ser alteradas. Exemplo: Objeto Avio: Propriedades: velocidade, altitude, inclinao, etc.; Rotinas: decolar, aterrissar, taxiar, etc.

Mudando as propriedades de um objeto, podemos mudar a forma como ele interage com o ambiente. Na programao bsica em Delphi no necessrio ter um conhecimento muito grande de programao orientada a objetos, como necessrio em outras linguagens. Os objetos esto prontos para serem usados e o Delphi cuida de quase tudo. A programao em Delphi um exemplo de Programao Orientada a Objetos (POO), como o caso do C++ ou do Object Pascal. Note que o termo objeto, em Delphi, usado de uma maneira um pouco diferente do que em Visual Basic, que no uma linguagem verdadeiramente orientada a objetos, mas sim baseada em objetos. Projeto o nome dado a um aplicativo desenvolvido em Delphi. O arquivo do projeto (.dpr) apenas uma lista de todos os outros arquivos que fazem parte do aplicativo, tais como: formulrios (.DFM); unidades (.PAS); componentes de 32 bits (.OCX); bancos de dados.

Quando o cdigo fonte compilado, o Delphi cria um arquivo .EXE que tem todas as caractersticas do arquivo .DPR, mas que pode ser executado fora do ambiente do Delphi. Os formulrios so janelas onde se desenha componentes. As unidades so mdulos de programao onde se escreve procedures e se declara variveis e constantes. No Delphi, cada formulrio est associado a uma unidade (unit). Voc pode usar os comandos do menu e da barra de ferramentas para realizar as seguintes aes: inserir novas unidades no projeto; remover unidades de um projeto; alternar entre as diferentes unidades de um projeto; alternar entre os diferentes formulrios de um projeto. Os arquivos de projeto do Delphi (.DPR) so, na verdade, descries de quais arquivos .PAS esto associados ao projeto, qual o modo de associao e onde encontr-los no disco rgido. Quando for gerado o arqui-

Anotaes:

lvaro Augusto de Almeida

DELPHI Captulo 1: Iniciando o Delphi


3

vo executvel *.exe, este substituir as funes do arquivo .DPR. Este ltimo continuar presente no disco, naturalmente.

1.2. ELEMENTOS PRINCIPAIS a) Formulrios (Forms)


Um formulrio (form) uma janela do Windows, inicialmente em branco (sem componentes), usada para configurar a interface grfica do projeto em Delphi. Cada projeto pode ter um ou mais formulrios, cada um deles associado a uma janela (por exemplo, podemos ter uma janela para salvar arquivos, uma para abrir arquivos, etc.). Um formulrio sempre uma janela, mas o inverso no verdade. Alguns outros componentes tambm se comportam como janelas. Como exemplos, podemos citar botes e caixas de lista. Criar um formulrio bastante simples e quando voc abre o Delphi pela primeira vez j h um formulrio em branco. Voc pode acrescentar outros formulrios a partir da barra de ferramentas. Quando voc salvar o seu projeto, o Delphi pedir um nome para cada um dos arquivos do projeto e um nome para o projeto. Nomes longos tambm so permitidos, j que o Delphi um aplicativo de 32 bits rodando no Windows 95/98 ou posterior, no estando submetido ditadura do DOS. Boto Maximizar Boto Minimizar

Barra de Ttulo Menu Control

Borda

Figura 1.1 Partes de um formulrio

Anotaes:

lvaro Augusto de Almeida

DELPHI Captulo 1: Iniciando o Delphi


4

Partes de um Formulrio
Cada formulrio, por padro, contm as seguintes partes como mostrado na figura 1.1: Menu Control Botes de maximizar e minimizar Barra de ttulo Bordas

Um formulrio pode ser movido e reajustado movendo-se suas bordas.

b) Paleta de Componentes (Component Palette)


Aps iniciar com um formulrio, o prximo passo no design da interface adicionar componentes a ele. Componentes so elementos de programa, tais como labels, edits, e list boxes. Os componentes do Delphi esto localizados na Paleta de Componentes e so utilizados para construir a interface com o usurio. A Paleta de Componentes exibe uma seleo de componentes agrupados por funo ou utilizao. Um ponto chave do Delphi que ele permite a criao de seus prprios componentes e a personalizao da Paleta de Componentes. Voc pode adicionar ou remover componentes da paleta, bem como criar uma nova pgina na paleta. Por exemplo, voc pode adicionar um controle VBX de terceiros sua paleta para um projeto em especfico e depois remov-lo quando tiver sido utilizado. Voc tambm pode criar diferentes verses da Paleta de Componentes para diferentes projetos e permitir que diversos desenvolvedores compartilhem uma Paleta de Componentes personalizada. A Paleta de Componentes aparece abaixo da barra de menu, a direita, e consiste dos botes e pginas como na figura 1.2:

Figura 1.2 Paleta de Componentes

Quando voc passar com o ponteiro do mouse sobre cada boto, exibido o Help Hint do componente.

Descrio das Pginas dos Componentes


Quando voc clica com o mouse sobre uma aba de pgina, exibido o grupo de componentes da pgina. A tabela 1.1 a seguir descreve a funo de alguns grupos de componentes de algumas pginas:

Anotaes:

lvaro Augusto de Almeida

DELPHI Captulo 1: Iniciando o Delphi


5

Tabela 1.1 Grupos de Componentes PGINA Standard Additional Data Access Data Controls Dialogs System Samples GRUPO DE COMPONENTES Componentes padro em uma interface MS Windows tais como boto, ListBox e Label. Grupo adicional de componentes padro, tais como SpeedButton, StringGrid e Shape. Componentes especializados para acesso de dados em banco de dados, tais como Table, Query e DataSource Componentes especializados de banco de dados utilizados para exibir dados de bancos, tais como DBGrid, DBNavigator e DBEdit. Quadros de dilogos comuns do MS Windows que possuem uma aparncia consistente para executar operaes de arquivo, tais como abertura, gravao e impresso. Componentes que pertencem tecnologia do sistema Windows, tais como um timer, OleContainer ou componentes DDE. Componentes diversos, tais como ColorGrid, Calendar e SpinButton.

c) Object Inspector
O Object Inspector usado em conjunto com a Paleta de Componentes. Uma vez selecionado um componente da Paleta de Componentes e adicionado ao formulrio, o Object Inspector automaticamente exibe as propriedades e eventos que podem ser utilizados para este componente. As propriedades e eventos (exibidos no formato de menu) permitem personalizar os componentes visualmente, sem a necessidade de codificao. Os menus so dinmicos no tocante em que somente as propriedades e eventos que se aplicam aos componentes selecionados aparecero. Se mltiplos componentes so selecionados, somente as propriedades e eventos compartilhados por todos os componentes aparecero no Object Inspector. A Figura 1.3 mostra o Object Inspector, que permite definir todas as propriedades de cada um dos componentes que voc inserir no seu projeto. O Object Inspector divide-se em trs partes: (i) Object Selector; (ii) Properties Page; e (iii) Events Page. Vejamos cada uma destas partes em separado.

i) Object Selector (Seletor de Objetos)


O Object Selector uma lista drop-down que exibe o nome e o tipo de objeto de cada componente no formulrio atual, incluindo o prprio formulrio. Os componentes aparecem na lista quando voc os adiciona ao formulrio. A lista drop-down pode ento ser utilizada para alternar rapidamente entre cada um dos componentes, mas isto tambm pode ser feito clicando-se nos componentes inseridos no formulrio. Figura 1.3 O Object Inspector Quando um formulrio ou componente selecionado no Object Selector, as propriedades ou eventos pertencentes a ele so exibidos.

Anotaes:

lvaro Augusto de Almeida

DELPHI Captulo 1: Iniciando o Delphi


6

ii) Properties Page


Propriedades so atributos de um componente. Elas controlam a forma como um componente aparece e se comporta no aplicativo. Muitas propriedades na coluna Properties tem um valor padro atribudo na coluna Values. Quando uma propriedade aparece com o sinal + ao lado, isso significa que, clicando-se sobre o sinal, aparecero sub-propriedades que tambm podem ser configuradas.

iii) Events Page


A pgina Events do Object Inspector lista os eventos que um componente pode reconhecer. No Delphi, voc escreve procedimentos (procedures ) chamados manipuladores de eventos (event handlers), e as utiliza na pgina Events para associar o nome de um manipulador com o evento. Eventos so aes do usurio ou ocorrncias de sistema que o componente pode reconhecer. Um exemplo de uma ao de usurio um clique em um boto. Um exemplo de uma ocorrncia de sistema um alarme gerado em um intervalo de tempo pr-determinado.

d) Editor de Cdigo (Code Editor)


No processo de desenvolvimento, aps atribuir propriedades e eventos a cada componente adicionado ao formulrio, o Editor de Cdigo utilizado. Este editor um editor de texto que exibe o cdigo fonte que voc escreve ou que o Delphi gera para criar um aplicativo. O cdigo fonte aparece em um arquivo chamado UNIT.PAS que, conforme j comentado, um dos tipos de arquivos que compe um projeto do Delphi. O Editor de Cdigo oferece comandos de edio, Help sensvel ao contexto, e as seguintes caractersticas de edio estilo Brief: Gravao e execuo de macros Sintaxe de destaque colorida Undo ilimitado Marcao de bloco de coluna Toques de teclado personalizveis

O Arquivo Unit
O Editor de Cdigo aparece no arquivo unit, que posicionado atrs do Form1 padro quando voc inicializa o Delphi. Quando voc da um duplo clique em um evento na pgina Events do Object Inspector, o Editor de Cdigo automaticamente torna-se janela para que voc possa digitar o cdigo para manipular o evento. O Editor de Cdigo pode exibir mltiplos arquivos unit. Uma unit utilizada para organizar as declaraes de programao do Delphi. Por exemplo, procedures utilitrias podem ser agrupadas como uma unit. Um formulrio organizado como uma unit. Voc tambm pode exibir um arquivo unit atravs do menu View selecionando Toggle Form/Unit. O arquivo padro, Unit1.PAS, aparece na janela do Code Editor, como na figura 1.4:

Anotaes:

lvaro Augusto de Almeida

DELPHI Captulo 1: Iniciando o Delphi


7

Janela do Code Editor

Cdigo Fonte

Indicador de Linha : Coluna

Aba de Pgina

Indicador de Modificao

Indicador de Modo

Figura 1.4 O Editor de Cdigo

e) Barra de ferramentas (SpeedBar)


A Barra de Ferramentas construda com botes que economizam tempo, permitindo que voc clique sobre um boto ao invs de utilizar a barra de menu para executar operaes e comandos mais comuns. Quando voc passa com o ponteiro do mouse sobre cada boto, o Help Hint do boto exibido. A Barra de Ferramentas totalmente personalizvel. Voc pode adicionar ou remover botes para personaliz-la. Os botes exibidos na figura anterior so os da configurao padro.

Figura 1.5 A Barra de Ferramentas

A tabela 1.2 a seguir descreve a funo de cada boto da Barra de Ferramentas padro.

Anotaes:

lvaro Augusto de Almeida

DELPHI Captulo 1: Iniciando o Delphi


8

Tabela 1.2 Botes da Barra de Ferramentas Padro BOTO Open Project Save Project Add File to Project Select Unit From List Select Form From list Run Pause Open File Save File DESCRIO Abre um projeto existente Grava um projeto existente Adiciona um novo arquivo ao projeto Seleciona uma unit da lista das units existentes Seleciona um formulrio da lista de formulrios existentes Compila e executa um aplicativo Interrompe momentaneamente a execuo do aplicativo Abre um arquivo existente

Grava o arquivo. Arquivos unit e formulrio so ligados. Gravando um, grava-se o outro Remove o arquivo selecionado no Project Manager da cluRemove File From Project sula uses do arquivo de projeto corrente Exibe o from inativo associado com a unit ativa, ou viceToggle Between a Form and versa Unit Cria um formulrio em branco e uma nova unit associada New form para ser adicionado ao projeto Executa um programa, uma linha por vez e executa cada Trace into linha de uma procedure Executa um programa, uma linha por vez e pula as proceStep over dures executando-as como uma nica unit

f) O Gerenciador de Projetos (Project Manager)


No Delphi, os arquivos que compem um aplicativo (formulrios e units), so organizados como um projeto. O Project Manager lista cada arquivo de unit e formulrio em um aplicativo e permite navegar entre elas. Voc pode exibir o Project Manager atravs do menu View selecionando Project Manager. O Project Manager aparece com o nome do projeto. Se o projeto no tiver um nome, o arquivo padro chamado Project1, como mostrado na figura 1.5.

Anotaes:

lvaro Augusto de Almeida

DELPHI Captulo 1: Iniciando o Delphi


9

Figura 1.5 O Project Manager

g) SpeedMenus
Um elemento importante do IDE do Delphi o SpeedMenu. SpeedMenus so menus que oferecem acesso rpido aos comandos disponveis no momento. Eles so sensveis ao contexto e podem ser exibidos de duas maneiras: Clicando-se com o boto direito do mouse enquanto o ponteiro do mouse estiver sobre o objeto Pressionando-se Alt+F10 enquanto estiver selecionado

h) Help On-Line
O Help On-Line uma grande fonte de referncia sobre o Delphi. No menu Help, os itens Contents e Topic Search so comuns s aplicaes MS Windows, mas documentam o produto to bem que voc pode utilizalo no lugar de uma cpia impressa. Contents, em particular, inclui um glossrio, que especialmente til para uma referncia rpida sobre o significado de termos. Outras caractersticas do Help do Delphi so:

Help Sensvel ao Contexto


O Help sensvel ao contexto est disponvel para cada elemento na interface. Pressionando F1 sobre um elemento destacado exibe a descrio do elemento. Por exemplo, se Form1 estiver destacado e voc pressionar F1, a descrio do componente TForm (tipo de objeto) aparece, incluindo as propriedades, mtodos, eventos e tarefas associadas a ele. O Help sensvel ao contexto tambm est disponvel quando o Editor de Cdigo for exibido e oferece auxlio na sintaxe da linguagem, palavras reservadas, e assim por diante.

Anotaes:

lvaro Augusto de Almeida

DELPHI Captulo 1: Iniciando o Delphi


10

Informao de Instruo
O Help on-line tambm contm uma extensiva informao instrucional. As trs ferramentas seguintes, em particular, oferece suporte no desenvolvimento de um aplicativo: Interactive Tutors o guiam atravs de cada estgio no processo de desenvolvimento de um aplicativo. Database Form Expert permite-lhe criar forms master-detail, bem como formulrios com uma nica tabela. Windows API descreve como utilizar a API do MS Windows.

Interactive Tutors
A opo Interactive Tutors um tutorial que o ensina as operaes bsicas na criao de um aplicativo. O tutorial interativo pois voc pode utilizar seus prprios dados, bem como dados de exemplo que acompanham o Delphi

Database Form Expert


A opo Database Form Expert no menu Help permite criar um formulrio que exiba dados de um banco de dados local ou remoto. Esta ferramenta uma das muitas ferramentas Expert no Delphi. Outras ferramentas Expert incluem o Application Template Expert, Form Template Expert, Component Expert, e Dialog Box Expert. A maioria delas so acessadas atravs do menu File quando voc cria um aplicativo ou formulrio. As ferramentas Expert sero estudadas com mais detalhes posteriormente durante o curso.

Windows API
A opo API no menu Help oferece uma descrio da API do MS Windows. Exemplos de alguns dos tpicos incluem o seguinte: Funes e mensagens para o MS Windows verso 3.1 Grupos de funes Macros Sadas de impresso Resources

1.3. ALTERANDO PROPRIEDADES


As propriedades de qualquer componente em Delphi podem ser alteradas em tempo de projeto ou em tempo de execuo. Em tempo de projeto (quando no estamos rodando o programa), devemos usar o Object Inspector. Por exemplo, clique sobre um formulrio vazio e v at o Object Inspector. Este formulrio j um programa em Delphi, o que pode parecer um choque para os programadores convencionais. Entretanto, no um programa capaz de fazer muita coisa. No Object Inspector, mude a propriedade caption" para Minha Janela. Voc ver que a legenda (caption) do formulrio mudar de Form1 para Minha Janela. Voc pode, agora, pressionar F9 para rodar o programa. Em menos de um minuto voc foi capaz de criar um programa que apresenta uma janela com um ttulo personalizado. No fcil ? As propriedades dos componentes tambm pode ser alteradas em tempo de execuo (quando o programa estiver rodando). Para tanto, devemos usar a seguinte sintaxe: Objeto. Propriedade := Novo Valor. Por exemplo, para mudar a propriedade caption do formulrio Form1 para Minha Janela, escreveramos: Form1.Caption := Minha Janela

Anotaes:

lvaro Augusto de Almeida

DELPHI Captulo 1: Iniciando o Delphi


11

Note que Minha Janela um string (cadeia de caracteres) e deve estar sempre entre apstrofos. O nico problema onde escrever esta frase. Todo trecho de cdigo em Delphi deve ser escrito dentro de uma unidade (Unit). Por exemplo, em tempo de projeto, d dois cliques no formulrio para abrir a unidade associada a ele. Deve aparecer o seguinte trecho: procedure TForm1.Form1Create(Sender : Tobject); begin end;

Este o esqueleto de um procedimento de eventos em Delphi, que ser executado toda vez que ocorrer o evento Create do formulrio Form1. Agora, complete o procedimento como a seguir e pressione F9 para rodar o programa. procedure TForm1.Form1 Create(Sender : Tobject); begin Form1.Caption := Outra Janela end;

Voc ver que o formulrio carregado com o ttulo Outra Janela. Entretanto, em tempo de projeto ele continua com o ttulo Minha Janela (ou outro ttulo qualquer). Uma correta compreenso da diferena entre tempo de projeto e tempo de execuo vital para o programador em Delphi. Existem propriedades que s podem ser alteradas em tempo de execuo. Este esqueleto de procedimento pode parecer complicado, mas fica mais fcil se prestarmos ateno em algumas convenes do Delphi: procedure: o cabealho de uma procedure (procedimento) em Delphi; TForm1: a classe do objeto que contm o componente ao qual a procedure est associada. O Delphi precede todos os nomes de classes de objetos por um T. Assim, Form1 o object pertencente classe de objetos TForm1; Create: um evento que acontece quando o formulrio carregado; Sender: o objeto que gerou o evento.

1.4. CRIANDO UM APLICATIVO SIMPLES


Nosso formulrio personalizado da seo anterior j um programa Delphi, mas ainda no alguma coisa que voc possa mostrar para os amigos (embora, se feita em C++, devesse ter mais de duzentas linhas de cdigo e um suspiro no final...). O Delphi dispe de recursos suficientes para comearmos a trabalhar com coisas mais complicadas. Os passo na construo de qualquer programa Delphi so os seguintes: a) Criao da interface grfica;

Anotaes:

lvaro Augusto de Almeida

DELPHI Captulo 1: Iniciando o Delphi


12

b) Definio das propriedades dos componentes; c) Escrita do cdigo de programao. A seguir, vamos examinar cada destes passos mais detalhadamente, focalizando nossa ateno sobre um aplicativo simples.

a) Criando a Interface com o usurio A revoluo criada pelo aparecimento das interfaces grficas ainda no acabou (muito embora algumas pessoas ainda no se deram conta de que ela tenha comeado, pois programadores antigos dizem que interfaces grficas no so coisas de programadores srios). Os seres humanos so essencialmente visuais, e no possvel exagerar a importncia da viso no desenvolvimento da inteligncia humana. Reconhecemos figuras muito mais depressa do que reconhecemos letras, tanto que uma das tcnicas da chamada Leitura Dinmica tenta ensinar as pessoas a visualizar palavras ou frases inteiras como se fossem figuras. Neste aspecto os chineses e outros povos asiticos esto literalmente milnios nossa frente. Talvez sejam eles os verdadeiros inventores da interface grfica !

Figura 1.6 - A Interface

O Delphi dispe de recursos fantsticos para o projeto de interfaces grficas. Portanto, para iniciar a interface, desenhe, com auxlio da Paleta de Componentes, uma Caixa de Edio e dois Botes de Comando, posicionando-os como na Figura 1.6. Redimensione o formulrio de modo que ele fique do tamanho indicado na figura. Note que voc pode trabalhar com estes objetos da mesma maneira que trabalha com objetos de desenho do Word ou do Excel.

A explicao das funes deste componentes dada a seguir. Boto (Button na pgina Standard): provavelmente o componente mais simples e mais utilizado no Delphi. Trata-se, basicamente de um boto que, quando clicado, comandar a execuo de um trecho de cdigo. O evento default associado ao boto de comando o evento click. Este boto, ao contrrio do boto BitBtn (na pgina Additional), no suporta bitmaps. Caixa de Edio (Edit na pgina Standard): este componente permite apresentar textos editveis pelo usurio. Para apresentar textos que no possam ser editveis pelo usurio, use o componente Label (Rtulo). A Caixa de Edio convencional no suporta mscaras de digitao. Se isto for necessrio, melhor usar o componente MaskEdit, da pgina Additional.

b) Definindo as propriedades dos componentes Com auxlio do Object Inspector, redefina algumas propriedades dos componentes criados, conforme mostrado na Tabela 1.3 a seguir.

Anotaes:

lvaro Augusto de Almeida

DELPHI Captulo 1: Iniciando o Delphi


13

Tabela 1.3 OBJETO Formulrio Caixa de Edio Boto 1 Boto 2 PROPRIEDADE Caption (Legenda) Text (Texto) Caption (Legenda) Caption (Legenda) DEFINIO Bom Dia ! (Vazio) OK Sair

c) Escrevendo o cdigo Cada objeto do Delphi, que denominamos aqui de componente, tem vrios eventos associados. A cada um destes eventos podemos associar um manipulador de eventos, que ser executado a cada vez que o evento correspondente ocorrer. Manipulador de eventos a palavra usada pelo Delphi, mas em geral este termo conhecido como procedimento de eventos (ou procedure, em ingls). Para associar um manipulador de eventos ao Boto 1, clique duas vezes sobre este componente, de modo a abrir a Unidade a ele associada. Escreva a linha central do manipulador a seguir. procedure TForm1.Button1Click (Sender : TObject); begin Edit1.Text : = At mais tarde !; end;

Clicando duas vezes sobre o Boto 2, abra a janela de cdigo associada a ele e escreva a palavra Close. procedure TForm1.Button2Click (Sender : TObject); begin Close; end;

Note alguns requisitos de sintaxe do Object Pascal do Delphi. Primeiramente, todo procedimento deve comear com begin e acabar com end. Alm disso, toda linha de instrues deve acabar com ponto e vrgula e o sinal de atribuio := e no o sinal de igualdade convencional. Isto tudo. Cada boto de comando tem, agora, um cdigo associado, que no ser executado at que os botes sejam acionados. O primeiro boto escrever o texto At mais tarde! na caixa de texto, enquanto o segundo encerrar a execuo do programa. Procedimentos so tambm denominados procedures (pronuncia-se procdiur) e comum que se use este termo em ingls, mesmo quando se escreve ou se fala em portugus (um procedimento que nossos amigos lusos abominam).

Anotaes:

lvaro Augusto de Almeida

DELPHI Captulo 1: Iniciando o Delphi


14

1.5. UM PROGRAMA DE ANIMAO


Uma caracterstica dos programas de interface grfica que eles sempre trabalham no modo grfico. Na poca do DOS (parece que foi h tanto tempo ...) toda linguagem de programao dispunha de recursos para manipular texto no modo texto e grficos no modo grfico. O gerenciamento de memria no modo grfico era crucial para a obteno de efeitos tais como a sobreposio de janelas, e devia ser feito pelo prprio programador. Nos programas Windows no existe mais o modo texto. Todos os objetos so posicionados e tratados de maneira grfica, aumentando a versatilidade. Alm disso, no caso do Delphi, o gerenciamento de memria automtico e o programador s precisa se preocupar com ele em casos extremos. A escala padro de medidas grficas no Windows o twip. Existem 1440 twips por polegada ou aproximadamente 567 twips por centmetro. A escala de medio pode ser alterada para pixels, centmetros e outras (ver propriedade ScaleMode). Usaremos a capacidade grfica do Delphi para implementar um pequeno programa de animao, que movimentar uma borboleta pela tela, enquanto ela bate as asas

Figura 1.7 - Coordenadas de um objeto a) Criando a interface de Borboleta.DPR Inicie um Novo Projeto e, com auxlio da Paleta de Componentes, posicione os seguintes componentes no formulrio: um Boto, trs Caixas de Imagem, e um Timer. Estes componentes so obtidos em pginas diferentes da Paleta de Componentes. Image (na pgina Additional): um componente capaz de conter imagens do tipo bitmap, metafile e outros. O Delphi dispe tambm do componente PaintBox, que tem mais recursos do que o Image. Contudo, o componente Image ocupa menos memria e redesenha figuras complexas mais rapidamente.

Timer (na pgina System): um componente de cronmetro. O timer simplesmente gera um evento de timer a cada intervalo de tempo pr-definido. Interval uma propriedade que pode ser definida em tempo de projeto ou de execuo.

Anotaes:

lvaro Augusto de Almeida

DELPHI Captulo 1: Iniciando o Delphi


15

b) Definindo as Propriedades Com auxlio da barra Object Inspector, defina as seguintes propriedades para os componentes inseridos: Tabela 1.4 OBJETO formulrio PROPRIEDADE Caption WindowState Color Interval Name Picture Visible Name Picture Visible Name Picture Visible Name Caption DEFINIO Borboleta 2-Maximized clWhite 500 (ms) ImgAbreAsas BFLY1.BMP False ImgFechaAsas BFLY2.BMP False ImgPrincipal BFLY1.BMP True BtnSair &Sair

Timer1 Image1

Image2

Image3

Button1

Com as propriedades acima definidas, o formulrio deve ficar com o aspecto indicado na Figura 1.8 na prxima pgina.

c) Escrevendo o cdigo de Borbolet.DPR Anexe os seguintes trechos de cdigo aos componentes Timer1 e btnSair, respectivamente:

procedure TForm1.Timer1Timer(Sender:Tobject); begin {Move a imagem principal} imgPrincipal.Left:= imgPrincipal.Left + 20; imgPrincipal.Top:=imgPrincipal.Top -5; {Alterna a imagem da borboleta} If CarregaBmp = true Then begin imgPrincipal.Picture := imgAbreAsas.Picture end else imgPrincipal.Picture := imgFechaAsas.Picture; {Alterna o valor da flag} CarregaBmp := Not CarregaBmp; end;

Anotaes:

lvaro Augusto de Almeida

DELPHI Captulo 1: Iniciando o Delphi


16

Figura 1.8 - O aplicativo borbolet.dpr

procedure TForm1.btnSairClick(Sender:Tobject);3 begin beep; if MessageDlg (Voc tem certeza que deseja sair ?, mtConfirmation, [mbYes, mbNo], 0) = mrYes then close; end;

A varivel CarregaBMP uma booleana que deve ser declarada na seo Public da unidade: type . . private {Private daclarations} . . public {Public declarations} CarregaBMP : Boolean

Anotaes:

lvaro Augusto de Almeida

DELPHI Captulo 1: Iniciando o Delphi


17

Isto tudo. Quando o programa for executado (menu Run ou F9), a borboleta se mover ao longo da tela, abrindo e fechando as asas. Quando o usurio clicar sobre o boto, uma caixa de mensagens ser exibida, perguntando se ele deseja mesmo sair do aplicativo. Voc deve ter notado, se ainda no dormiu, que algumas partes do cdigo esto entre chaves. Esse texto interpretado como comentrio pelo compilador e no executado. Acostume-se a comentar seus programas enquanto os escreve. Se voc deixar essa tarefa para depois nunca a far!

Como funciona ?
A mgica toda feita com mudanas na posio da imagem, mas alguns adereos so necessrios. O efeito de animao das asas conseguido com a alternao de duas imagens, como se faz em desenho animado. Em vez de buscarmos tais imagens no disco rgido, o que seria muito lento, optamos por armazen-las em componentes de imagem. A cada evento Timer a outra figura carregada no componente imgPrincipal (que quem se move). Os componentes de imagens imgAbreAsas e imgFechaAsas so mantidos invisveis durante toda a execuo. Note, ainda, que CarregaBmp uma varivel booleana que atua como flag, definindo qual imagem deve ser carregada em imgPrincipal. Como esta varivel foi declarada na seo Public da unidade, ela estar disponvel para todos os procedimentos desta unidade. Alm disso, ela uma varivel esttica, o que significa simplesmente que o valor dela preservado entre eventos Timer consecutivos. Nossa borboleta tem um problema: quando ela vai voando e atinge a borda direita do monitor, no h como voltar. Voc pode pensar em maneiras de fazer a borboleta voltar ou, melhor ainda, aprision-la dentro da janela? Como dica, voc pode usar as seguintes propriedades do formulrio: ClientWidth: especifica a largura da parte interna do formulrio; ClientHeight: especifica a altura da parte interna do formulrio. Basta verificar o valor destas propriedades e alterar a posio de imgPrincipal. d) Salvando o projeto Para salvar o projeto, v at o menu File e escolha a opo Save All. Voc pode alterar o nome da unidade para Borboleta.pas e o nome do projeto para prjBorbo.dpr. Estes sero os nomes dos arquivos em disco. O Delphi no aceita que uma unidade tenha o mesmo nome do projeto, mesmo que as extenses sejam diferentes. e) Associando um cone ao projeto Para criar um cone para o aplicativo, proceda da seguinte maneira: Defina a propriedade cone do formulrio principal; Compile o programa para gerar o executvel (menu Run): prjBorbo.exe; No Windows, crie um atalho para prjBorbo.exe e arraste-o para a janela principal. Renomeie o atalho como preferir. Agora voc poder executar o programa clicando duas vezes sobre o cone, sem que seja necessrio abrir o Delphi antes. Isto ocorre porque o programa executvel (.EXE) independente do Delphi (standalone) e pode ser executado em qualquer mquina, desde que voc fornea todos os componentes. No nosso caso, tais componentes seriam: A unidade: Borboleta.pas;

Anotaes:

lvaro Augusto de Almeida

DELPHI Captulo 1: Iniciando o Delphi


18 O arquivo executvel: Borbolet.exe; O Delphi, sendo uma linguagem verdadeiramente compilada, no necessita de bibliotecas de runtime, como era o caso do Visual Basic 4.0. Os executveis do Delphi so muito rpidos, sendo a velocidade realmente comparvel de um programa C ou C++. O cdigo compilado em Delphi executado pelo menos 10 vezes mais rpido do que o cdigo equivalente em ferramentas interpretadas ou semi-interpretadas. Tambm possvel executar um programa pressionando a tecla F9. O Delphi compilar o programa e ento o executar. O Delphi compila apenas os arquivos do projeto que tiveram alteraes. Se voc quiser apenas compilar um programa, sem execut-lo, basta pressionar Ctrl + F9. Para compilar todos os arquivos, incluindo aqueles que no foram alterados, escolha a opo Build All, do menu Project. Para acompanhar a execuo de um programa passo-a-passo, pressione F7 ou escolha a opo Trace Into do menu Run.

1.6. EXIBINDO MENSAGENS


O Delphi permite exibir pequenas caixas de mensagens pr-definidas que tm, em geral, os seguintes objetivos: informaes de alerta ao usurio; mensagens de erro; requisio de informao.

A PROCEDURE SHOWMESSAGE
Esta procedure do Delphi exibe uma caixa de mensagem simples com o boto OK. Sintaxe: ShowMessage( const Msg : string); Exemplo:

procedure TForm1.btnOKClick (Sender : TObject); begin ShowMessage (Deseja Continuar ?); end;

A FUNO MESSAGEDLG
Esta funo exibe uma caixa de mensagem no centro da tela e retorna um valor correspondente ao boto que o usurio escolheu. Sintaxe: MessageDlg (const Msg : string; AType: TMsgDlgType; AButtons: MsgDlgButtons; HelpCtx : LongInt) : word; onde: AType: parmetro que determina o tipo de caixa exibida, conforme a Tabela 1.5 abaixo:

Anotaes:

lvaro Augusto de Almeida

DELPHI Captulo 1: Iniciando o Delphi


19

Tabela 1.5 AType mtWarning mtError mtInformation mtConfirmation mtCustom Significado exibisse um sinal de exclamao amarelo exibe um sinal de pare vermelho exibe um sinal de informao azul exibe um sinal de confirmao verde sem bitmap

AButtons: determina quais botes aparecem na caixa. Este parmetro um array que pode conter qualquer um das seguintes constantes: mbYes, mbNo, mbOK, mbCancel, mbAll, mbHelp, mbAbort, mbRetry, mbIgnore, mbYesNoCancel, mbOKCancel. Os valores de retorno da funoMessgeDlg podem ser os seguintes: mrNone, mrAbort, mrYes, mrOK, mrRetry, mrNo, mrCancel, mrIgnore, mrAll. O programa verificar qual boto o usurio escolheu de modo a continuar a execuo do cdigo. Verifique o exemplo a seguir. procedure TForm1.btnOKClick (Sender : TObject); begin if MessageDlg (Deseja sair agora ?, mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin MessageDlg (Saindo ...,mtInformation, [mbOK], 0); close; end; end;

Note que o parmetro AButton, sendo um elemento de um array, sempre representado entre colchetes. Vamos ver mais sobre arrays no captulo seguinte, quando tratarmos de tipos de variveis.

A FUNO MESSAGEDLGPOS
Esta funo semelhante anterior, com a diferena de que o programador pode determinar em que lugar da tela a caixa deve aparecer. Exemplo:

procedure TForm1.btnOKClick (Sender : TObject); begin MessageDlgPos (Exemplo, mtConfirmation, mbYesNo, 0, 200, 200); end;

Exerccio. Teste esses exemplos no Delphi, construindo pequenos programas de exibio de janelas e variando as diversas opes e parmetros das funes acima.

Anotaes:

lvaro Augusto de Almeida

DELPHI Captulo 1: Iniciando o Delphi


20

COFFEE BREAK: O LADO CMICO DA INFORMTICA Dando o boot


Essa inacreditvel, mas o sujeito que me contou garante que aconteceu. O usurio ligou para o suporte, pedindo informaes sobre como instalar determinado programa. O analista de suporte comeou a fornecer as instrues e o usurio ia acompanhando a instalao online. Ao final, o analista disse que o usurio deveria dar o "boot" na mquina. "O que isso?", perguntou o usurio. "Desligue e ligue de novo". O usurio desligou o telefone, ligou novamente e perguntou: "E agora, o que eu fao?"

Para mais cartoons de Randy Glasbergen (em ingls), visite http://www.glasbergen.com

Anotaes:

lvaro Augusto de Almeida