Sei sulla pagina 1di 18

DELPHI 4.

0 Captulo 1: Iniciando o Delphi


7

1. INICIANDO O DELPHI
1.1. ALGUMA TERMINOLOGIA
O Delphi 4.0 permite somente a instalao para 32 Bits , devendo ser executado em Windows 95/98 ou NT. 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, uma 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;

Anotaes:

Alvaro Augusto de Almeida

Barra de Ttulo

Boto Maximizar Boto Minimizar

DELPHI 4.0 Captulo 1: Iniciando o Delphi Control

Menu

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 Borda ao projeto, qual o modo de associao e onde encontr-los no disco rgido. Quando for gerado o arquivo 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, 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, no estando submetido ditadura do DOS.

Figura 1.1 Partes de um formulrio

Partes de um Formulrio
Anotaes:

Alvaro Augusto de Almeida

DELPHI 4.0 Captulo 1: Paleta de Delphi Figura 1.2 Iniciando o Componentes

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, edit boxes, 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 seguintes botes e pginas:

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 cada grupo de componentes por pgina:

Tabela 1.1 Grupos de Componentes PGINA Standard Additional Data Access Anotaes: GRUPO DE COMPONENTES Componentes padro em uma interface MS Windows tais como boto, list box, e label. Grupo adicional de componentes padro, tais como SpeedButton, TabSet, e componentes Notebook. Componentes especializados para acesso de dados em banco de dados, tais como Table,

Alvaro Augusto de Almeida

DELPHI 4.0 Captulo 1: Iniciando o Delphi


10 Query e DataSource Componentes especializados de banco de dados utilizados para exibir dados de bancos de dados, tais como Grid de dados, Navigator,e Edit. Quadros de dialogos 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, DDE, ou OLE. Controle Visual Basic que acompanham o Delphi ou de outros fabricantes. Componentes diversos, tais como ColorGrid, Calendar e SpinButton.

Data Controls Dialogs System VBX Samples

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 Figura 1.3 cada uma destas partes em separado. O Object Inspector

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. Quando um formulrio ou componente selecionado no Object Selector, as propriedades ou eventos pertencentes a ele so exibidos.

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

Anotaes:

Alvaro Augusto de Almeida

DELPHI 4.0 Captulo 1: Iniciando o Delphi


11 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 hadlers), 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 prdeterminado.

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 a 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 segue: Figura O Editor Cdigo Cdigo Fonte

Janela do Code Editor

1.4 de

e) Barra

de

Indicador de Anotaes: Linha : Coluna Indicador de Modificao Indicador de Modo

Aba de Pgina
Alvaro Augusto de Almeida

Figura 1.5 A Barra de Ferramentas

DELPHI 4.0 Captulo 1: Iniciando o Delphi


12

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.

A tabela 1.2 a seguir descreve a funo de cada boto da Barra de Ferramentas padro. 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 Remove File From Project Toggle Between a Form and Unit New form Trace into Step over Cria um formulrio em branco e uma nova unit associada para ser adicionado ao projeto Executa um programa, uma linha por vez e executa cada linha de uma procedure Executa um programa, uma linha por vez e pula as procedures executando-as como uma nica unit 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 clusula uses do arquivo de projeto corrente Exibe o from inativo associado com a unit ativa, ou vice-versa

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 Anotaes:

Alvaro Augusto de Almeida

DELPHI 4.0 Captulo 1: Iniciando o Delphi


13 mostrado na figura 1,5.

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 utiliza-lo 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:

Alvaro Augusto de Almeida

DELPHI 4.0 Captulo 1: Iniciando o Delphi


14

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 caption1 para Minha Janela. Voc 1 At a data de impresso desta apostila, o Delphi era disponvel nas seguintes lnguas: ingls, francs, alemo, italiano, espanhol,
japons e chins (no sei se mandarim ou cantons). Como, visto, nossa querida lngua lusa ficou de fora e o melhor que temos a fazer

Anotaes:

Alvaro Augusto de Almeida

DELPHI 4.0 Captulo 1: Iniciando o Delphi


15 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 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.Form1Click(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 seja l o que for). 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.
nos virarmos com o ingls. Como diria Vicente Mateus, Se voc quiser fazer um omelete, ter que chutar os ovos....

Anotaes:

Alvaro Augusto de Almeida

DELPHI 4.0 Captulo 1: Iniciando o Delphi


16

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; 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, mas algumas pessoas ainda no se deram conta de que ela tenha comeado. Programadores antigos - e tenho ouvido vrios - dizem que interfaces grficas no so coisas de programadores srios. Talvez estes sisudos senhores prefiram realmente aqueles monitores pavorosamente verdes da poca do DOS, mas a humanidade toda est contra eles. 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 Muito bem, se voc no se sente bem com interfaces grficas, tenho a dizer que talvez voc esteja estudando a linguagem errada. Por outro lado, se voc pertence aos 99,9% da humanidade que saliva frente figura de uma lasanha, mas sente apenas uma comicho lendo a frase Coma uma Lasanha !, bem, ento voc est no lugar certo. O Delphi dispe de recursos fantsticos para o projeto de interfaces grficas. 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

Anotaes:

Alvaro Augusto de Almeida

DELPHI 4.0 Captulo 1: Iniciando o Delphi


17 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 (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 (SSCommand, edies Profissional e Enterprise apenas), no suporta bitmaps. Caixa de Edio (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. Tabela 1.3 OBJETO Formulrio Caixa de Edio Boto de Comando 1 Boto de Comando 1 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 de Comando 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; PROPRIEDADE Caption (Legenda) Text (Texto) Caption (Legenda) Caption (Legenda) DEFINIO Bom Dia ! (Vazio) OK Sair

Clicando duas vezes sobre o Boto de Comando 2, abra a janela de cdigo associada a ele e escreva a palavra Close.

Anotaes:

Alvaro Augusto de Almeida

DELPHI 4.0 Captulo 1: Iniciando o Delphi


18

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 dois pontos 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).

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 a) Criando a interface de Borbolet.DPR Inicie um Novo Projeto e, com auxlio da Paleta de Componentes, posicione os seguintes componentes no formulrio: um Boto de Comando, trs Caixas de Imagem, e um Timer. Estes componentes so obtidos em pginas diferentes da Paleta de Componentes. Image (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.

Anotaes:

Alvaro Augusto de Almeida

DELPHI 4.0 Captulo 1: Iniciando o Delphi


19

Figura 1.7 - Coordenadas de um objeto Timer (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. b) Definindo as Propriedades Com auxlio da Object Inspector, defina as seguintes propriedades para os componentes inseridos: Tabela 1.4 OBJETO formulrio PROPRIEDADE Caption WindowState BackColor ScaleMode Interval Name Picture Visible Name Picture Visible Name Picture Visible Name Caption DEFINIO Borboleta 2-Maximized White 3-Pixel 500 (ms) imgAbreAsas BFLY1.BMP False imgFechaAsas BFLY2.BMP False imgPrincipal BFLY1.BMP True cmdSair &Sair

Timer1 Image1 Image2 Image3 Command1

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

Anotaes:

Alvaro Augusto de Almeida

DELPHI 4.0 Captulo 1: Iniciando o Delphi


20 c) Escrevendo o cdigo de Borbolet.DPR Anexe os seguintes trechos de cdigo aos componentes Timer1 e cmdSair, respectivamente: Figura 1.8 - O aplicativo borbolet.dpr 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;

procedure TForm1.cmdSairClick(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:

Alvaro Augusto de Almeida

DELPHI 4.0 Captulo 1: Iniciando o Delphi


21

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 95, 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

Anotaes:

Alvaro Augusto de Almeida

DELPHI 4.0 Captulo 1: Iniciando o Delphi


22 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; 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.cmdOKClick (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.

Anotaes:

Alvaro Augusto de Almeida

DELPHI 4.0 Captulo 1: Iniciando o Delphi


23

Sintaxe: MessageDlg (const Msg : string; MsgDlgButtons; HelpCtx : LongInt) : word; onde:

AType:

TMsgDlgType;

AButtons:

AType: parmetro que determina o tipo de caixa exibida, conforme a Tabela 1.5 abaixo: 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.cmdOKClick (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:

Anotaes:

Alvaro Augusto de Almeida

DELPHI 4.0 Captulo 1: Iniciando o Delphi


24 procedure TForm1.cmdOKClick (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.

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:

Alvaro Augusto de Almeida

Potrebbero piacerti anche