Você está na página 1de 56

UNISO Universidade de Sorocaba

Apostila Parte 1 Desenvolvimento de Aplicaes

Delphi 7
Desenvolvido pelo estagirio Pablo Azevedo de Oliveira Fiza

23/06/2003 30/06/2003

Delphi 7 Desenvolvimento de Aplicaes

ndice
Captulo 1 Introduo IDE Form Design Barra do Menu Principal Paleta de Componentes Speedbar Object Inspector Code Editor Code Insight Speed Menus Teclas Importantes Projeto em Delphi Extenses.PAS e.DPR Captulo 2 Manipulando Projetos Como criar um Projeto Salvar o Projeto Abrir o Projeto Opes de Projeto Forms Tipos de Componentes Visveis No-visveis Conveno de Nomeao Manipulando Componentes Utilizando o Object Inspector Manipulando Eventos Pablo Azevedo de Oliveira Fiza Universidade de Sorocaba Pgina 1

Delphi 7 Desenvolvimento de Aplicaes Executando a aplicao Comentrio Captulo 3 Componentes Paleta Standard Form Button Edit Label Memo RadioButton ListBox ComboBox1 GroupBox RadioGroup Panel MainMenu e PopupMenu Paleta Additional BitBtn SpeedButton MaskEdit Image Paleta Win32 PageControl ImageList ProgressBar DateTimePicker MonthCalendar StatusBar

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 2

Delphi 7 Desenvolvimento de Aplicaes Paleta System Timer Captulo 4 Declarao de Variveis Atribuio Tipos de manipulao de variveis Tipos de variveis Inteiras Tipos de nmeros Reais Tipos de variveis Booleanas Tipos de variveis Caracteres Funes de Converso e Manipulao Expresses Lgicas Comando IF Comando Repeat Comando While Comando For Procedures e Functions Captulo 5 A Linguagem Object Pascal Mdulo .DPR Units Caixas de Dilogo ShowMessage MessageDlg Chamada de Forms Show ShowModal

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 3

Delphi 7 Desenvolvimento de Aplicaes

Captulo

INTRODUO

Ultimamente, o Delphi tem sido uma das ferramentas mais poderosas para se criar aplicaes Windows. Alm de ser amplamente utilizado para aplicaes Cliente-Sevidor, ele tambm muito utilizado para aplicaes genricas.

IDE (Integrated Development Environment).


O ambiente de desenvolvimento do Delphi (IDE) composto de vrias partes compondo um conjunto integrado de janelas que interagem entre si.

Vamos abordar cada parte uma separadamente:

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 4

Delphi 7 Desenvolvimento de Aplicaes

O FORM DESIGN
Form o termo utilizado para representar as janelas do Windows que compem uma aplicao. Os forms servem como base para o posicionamento dos componentes, que so responsveis pela interao entre usurio e mquina. Para selecionarmos o form devemos clicar (uma vez) em sua rea interna ou na object inspector, e no simplesmente em seu ttulo. As caractersticas iniciais do form como tamanhos botes (minimizar, maximizar, fechar, controle) e cone podem (e sero) modificados atravs de recursos que veremos adiante.

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 5

Delphi 7 Desenvolvimento de Aplicaes

A BARRA DE MENU PRINCIPAL


Como todo programa padro Windows, h uma janela onde esto situados os menus da aplicao, a barra que contem os menus tambm agrupa outras partes.

A PALETA DE COMPONENTES
Aplicativos orientados a objetos trabalham com elementos que denominamos componente. No Delphi, os componentes encontram-se em uma paleta com vrias guias, onde cada guia representa uma categoria diferente de componente.

Pode-se configurar a ordenao das guias clicando com o boto direito do mouse sobre qualquer componente e clicar na opo Properties.

H basicamente trs maneiras de inserirmos os componentes no formulrio: Pablo Azevedo de Oliveira Fiza Universidade de Sorocaba Pgina 6

Delphi 7 Desenvolvimento de Aplicaes

Clicar uma vez no componente, e clicar dentro do formulrio (no arrastar para o form). Clicar duas vezes rapidamente no componente desejado. Segurar a tecla Shift e clicar no componente desejado; clicar no form vrias vezes.

Na terceira opo, o componente ser travado ao mouse. Para destrav-lo clique no cone da seta, o primeiro cone da paleta.

A SPEEDBAR
A speedbar est posicionada ao lado esquerdo da barra principal do Delphi. Possui diversos botes (cones) que representam comandos muito utilizados durante o desenvolvimento.

Pode-se customizar a speedbar adicionando ou retirando algum boto atravs do boto direito em qualquer cone (da speedbar) e escolher o comando Customize. Na janela aberta, seleciona-se a guia Commands. Neste momento pode-se arrastar nos dois sentidos, para adicionar ou retirar botes.

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 7

Delphi 7 Desenvolvimento de Aplicaes

OBJECT INSPECTOR
Uma das ferramentas mais importantes da orientao a objeto a possibilidade de definir as propriedades (caractersticas personalizadas) aos componentes. No Delphi, utilizamos a janela object inspector para realizar esta tarefa, que por default aparece esquerda do Form. H um Combo Box que permite a escolha de qual componente dever ser selecionado. Duas guias: Properties Define as propriedades e valores do Objeto selecionado. Events Define quais os eventos sero manipulados pelo desenvolvedor. Algumas propriedades trazem opes diferenciadas para alterao. Por exemplo: Caption Permite a insero de uma string de caracteres. Color Permite a insero de um dos valores pr-definidos na caixa de listagem. BorderIcons Toda propriedade que possui o sinal de + tem a caracterstica de mostrar subpropriedades. Deve-se clicar no sinal de + para expandir e no sinal de para ocultar. Icon Exibe um boto de reticncias (...) que dar origem a uma caixa de dilogo. Os nomes definidos como valores das propriedades na object inspector sero os nomes usados na construo do cdigo em Object Pascal.

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 8

Delphi 7 Desenvolvimento de Aplicaes

Nome do Form

Eventos

Propriedades

CODE EDITOR
O editor de cdigo responsvel por receber todas as declaraes criadas pelo Delphi e handlers (manipuladores de eventos) criados pelo desenvolvedor. no ambiente Code Editor que implementamos o algoritmo na linguagem ObjectPascal.

Code Editor Code Explorer

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 9

Delphi 7 Desenvolvimento de Aplicaes Na janela do editor pode haver uma outra janela denominada Code Explorer. a parte esquerda da janela, onde podemos ter uma orientao sobre os objetos, procedimentos, funes e classes utilizadas na aplicao. Para desligar o code explorer clique no pequeno X ao lado da guia do code editor, para visualiza-lo clique com o boto direito dentro do editor e escolha View Explorer ou pelo teclado Ctrl+Shift+E. Uma caracterstica muito importante do Code Explorer que quando inserirmos componentes no form, a sua declarao feita pelo Delphi de maneira automtica.

Podemos considerar tambm o seguinte fato: Tudo o que o Delphi escrever, responsabilidade dele. Agora, Tudo o que voc escrever responsabilidade sua. Pablo Azevedo de Oliveira Fiza Universidade de Sorocaba Pgina 10

Delphi 7 Desenvolvimento de Aplicaes

Significa que tudo o que o Delphi escrever no Code Editor, ele se encarrega de alterar, quando necessrio. J tudo o que voc escrever cabe a voc atualizar, como veremos adiante. Quando alteramos o nome do objeto, deve-se utilizar o mesmo nome nas rotinas por ns implementadas. Agora, o que o Delphi declarou, ele se encarrega de atualizar. Pode-se personalizar o Editor atravs do menu Tools | Editor Options.

CODE INSIGHT
Um recurso que vai facilitar nossa vida no momento de desenvolvimento de cdigo o Code Insight do Code Editor do Delphi. Ele atua como um ajudante de complemento junto ao cdigo do desenvolvedor. Por exemplo, ao digitar o nome de um objeto seguido de ponto (.) abre-se uma listagem de mtodos e propriedades que podem ser utilizadas neste objeto. Ele tambm pode ser chamado atravs de teclas de atalho: Ctrl + Barra de Espao - Para complemento de objetos; seus mtodos e propriedades. Ctrl + Shift + Barra de Espao Para complemento de parmetros. Dica: Esta lista pode ser ordenada por nome, clicando com o boto direito dentro da listagem.

Figura 1 - Chamada do Code Insight no complemento de procedimentos ou mtodos

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 11

Delphi 7 Desenvolvimento de Aplicaes

Figura 2 - Chamada do Code Insight no complemento de parmetros

SPEED MENUS
Speed Menus ou Menus Rpidos a caracterstica de podermos selecionar comandos rpidos atravs do boto direito do mouse. Em vrias situaes (j citadas anteriormente) utilizamos o boto direito para escolher algum comando ou ao relacionada ao objeto em que clicamos.

TECLAS IMPORTANTES
Tecla F12 F11 F10 F9 CTRL + F9 SHIFT + F12 Funo Alterna entre o code editor e o form designer. Alterna entre o code editor, form designer e a oject inspector. Torna o foco para a janela principal. (RUN) Permite compilar e executar o projeto para testes. Este processo gera automaticamente o arquivo .EXE no diretrio onde foi gravado o arquivo de projeto (.DPR). Permite compilar o projeto sem executar. Ideal para conferncia de cdigo. Permite alternar entre os formulrios do projeto. Equivalente ao cone View Form na SpeedBar.

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 12

Delphi 7 Desenvolvimento de Aplicaes

PROJETO EM DELPHI
O conceito de projeto em Delphi baseado em um conjunto de arquivos necessrios para gerar uma aplicao. Vamos destacar os principais arquivos: Extenso Tipo e descrio Arquivo Pascal: o cdigo-fonte de uma unidade Pascal, ou uma unidade relacionada a um formulrio ou uma unidade independente. Arquivo Delphi Project. (Contm cdigo-fonte em Pascal.) Delphi Form File: um arquivo binrio (na verso 5 pode ser convertido para texto) com a descrio das propriedades de um formulrio e dos componentes que ele contm. Delphi Compiled Unit: o resultado da compilao de um arquivo Pascal. Criao Desenvolvimento Necessrio para compilar? Sim.

.PAS

.DPR

Desenvolvimento Desenvolvimento

Sim. Sim. Todo formulrio armazenado em um arquivo PAS e em um arquivo DFM.

.DFM

.DCU

.BMP, .ICO, .CUR

.CFG .DOF

Apenas se o cdigofonte no estiver disponvel. Os arquivos DCU para as unidades que voc escreve so um passo intermedirio; portanto, eles tornam a compilao mais rpida. Arquivos de bitmap, cone e Desenvolvimento: Normalmente no, cursor: arquivos padro do Image Editor mas eles podem ser Windows usados para armazenar necessrios em imagens de bitmap. tempo de execuo e para edio adicional. Arquivo de configurao com Desenvolvimento Necessrio apenas se opes de projeto. Semelhante opes de aos arquivos DOF. compilao especiais foram configuradas. Delphi Option File: um arquivo Desenvolvimento Exigido apenas se de texto com as configuraes opes de Universidade de Sorocaba Pgina 13

Compilao

Pablo Azevedo de Oliveira Fiza

Delphi 7 Desenvolvimento de Aplicaes atuais para as opes de projeto. Arquivo de Desktop: contm Desenvolvimento informaes sobre a posio das janelas do Delphi, os arquivos abertos no editor e outros ajustes da rea de trabalho. Aquivo executvel: o aplicativo Compilao: Windows que voc produziu. Ligao (linking) compilao especiais foram configuradas. No. Voc deve exclu-lo se copiar o projeto em um novo diretrio. No. Esse o arquivo que voc vai distribuir. Ele inclui todas as unidades compiladas, formulrios e recursos. No. Esse arquivo gerado automaticamente pelo Delphi, quando voc salva uma nova verso do cdigofonte. No. Esse arquivo contm notas para os programadores.

.DSK

.EXE

.~PAS

Backup do arquivo Pascal Desenvolvimento Pode ser ativado ou desativado atravs do Menu Tools Editor Options - guia display Item: Create backup file. Arquivo da lista to-do, contendo Desenvolvimento os itens relacionados ao projeto inteiro.

.TODO

EXTENSES.PAS e .DPR
Para visualizarmos o cdigo fonte da unidade (.PAS) em Delphi basta selecionarmos o code editor (F12). Para visualizarmos o cdigo fonte no arquivo de projeto (.DPR) basta selecionarmos o menu Project View Source. O arquivo de projeto exibido em uma guia no code editor. Para fechar a guia basta clicar com o boto direito e escolher close page. AVISO!!! - No feche as janelas atravs do X (boto fechar do Windows) do Code Editor.

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 14

Delphi 7 Desenvolvimento de Aplicaes

Captulo

MANIPULANDO PROJETOS
COMO CRIAR UM PROJETO

Abrindo a ferramenta de desenvolvimento Delphi, por default ela j traz para o desenvolvedor uma aplicao crua, mas para o desenvolvedor abrir uma nova aplicao ele ter que efetuar estes passos: No meu principal File New Application, e abrir uma nova aplicao.

SALVAR O PROJETO
Como vimos anteriormente, o conceito de projeto em Delphi se faz atravs de um conjunto de arquivos. No Menu File do Delphi temos quatro opes para a gravao do projeto:

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 15

Delphi 7 Desenvolvimento de Aplicaes

Onde: Comando Save Save As... Save Project As... Save All Objetivo Salvar apenas a unidade selecionada Salvar a unidade selecionada como... pode-se renomear ou trocar de pasta (duplicando) o arquivo. Salvar o projeto como pode-se renomear ou trocar de pasta (duplicando) o arquivo. Grava todos os arquivos do projeto, e atualiza-os caso j sejam salvos.

Ao clicar em Save All abre-se uma caixa de dilogo padro do Windows onde deve ser preenchido o nome do arquivo e escolhida uma pasta para armazenar o projeto. Observe o ttulo da janela, pois aps a gravao do Arquivo da Unidade, ser exibida a mesma caixa (com ttulo diferente) para a gravao do arquivo de projeto.

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 16

Delphi 7 Desenvolvimento de Aplicaes

ABRIR O PROJETO
O projeto em Delphi determinado atravs do arquivo com extenso .DPR. Desta forma, para abrir um projeto, deve-se abrir o arquivo.DPR. No menu File do Delphi podemos utilizar mais de uma opo:

Onde: Comando Open Open Project... Reopen Objetivo Permite abrir um arquivo.DPR, .PAS entre grupos de projeto. Permite abrir um arquivo de projeto. Permite reabrir um arquivo (DPR ou PAS) utilizado anteriormente.

No abra um arquivo.PAS atravs destas opes, a menos que saiba o que est fazendo. Os arquivos.PAS devem ser abertos atravs do menu View | Units aps a abertura do .DPR.

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 17

Delphi 7 Desenvolvimento de Aplicaes

OPES DE PROJETO
O Delphi permite a configurao de vrios itens do sistema atravs do menu Project Options.

FORMS
Main form - Nesta guia permite a escolha do formulrio principal da aplicao. Available form - Os formulrios available (disponveis) em caso de criao em tempo de execuo.

TIPOS DE COMPONENTES
Fazemos uma distino de duas categorias bsicas quando tratamos dos componentes, so: Componentes Visveis e Componentes No-Visveis. Visveis Quando um componente pode ser visto pelo usurio em tempo de execuo. Exemplo Button e Edit.

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 18

Delphi 7 Desenvolvimento de Aplicaes No-Visveis Alguns componentes aparecem no form durante o tempo de projeto na aparncia de um cone, mas no podem ser vistos pelo usurio em tempo de execuo. Exemplo: Timer e MainMenu.

CONVENO DE NOMEAO
A propriedade mais importante de um componente a propriedade Name. ela que define o nome interno com relao ao cdigo escrito em Object Pascal. Para organizar e facilitar o processo de desenvolvimento/manuteno do sistema, grande parte dos desenvolvedores adota uma nomenclatura para tornar o cdigo mais legvel possvel. O Delphi adota como nomenclatura padro o nome da classe da qual o componente instanciado e um nmero crescente de acordo com o nmero de ocorrncia deste componente no form. Exemplo: Button1, Button2, etc... So componentes instanciados da classe TButton . No obrigatria a utilizao da conveno de nomes utilizados nesta apostila, mas muito importante fazer uso de uma conveno mais clara possvel. Exemplo: Nome gerado pelo Delphi Button1 Edit1 Label1 Objetivo Sair da aplicao Receber nome do usurio Indicar componente Edit Conveno BtnSair EdtNome LblNome

MANIPULANDO COMPONENTES
Podemos adicionar os componentes ao formulrio de trs maneiras, (citadas anteriormente) e utilizar ferramentas e tcnicas de alinhamento para aumentar nossa produtividade. Para selecionar um componente, basta clic-lo uma vez ou na object inspector selecion-lo na caixa de listagem. Pode-se ento arrast-lo com o Mouse ou utilizar as teclas CTRL+SETAS para mover o componente. As teclas SHIFT+SETAS alteram a largura e altura.

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 19

Delphi 7 Desenvolvimento de Aplicaes Para selecionar mais de um componente ao mesmo tempo, utiliza-se a tecla SHIFT, pode-se mover ou alterar o conjunto. O recurso de arrastar e selecionar (Paint, por exemplo) vlido quando a base o Form. Quando inserirmos componentes em cima de outro objeto (Panel, por exemplo) necessrio segurar a tecla CTRL no processo de arrastar.

Para definir vrios componentes baseados em uma propriedade de outro, altere o componente modelo, selecione-o primeiro e com SHIFT selecione os outros. Na object inspector selecione a propriedade a ser definida para todos Width (largura, por exemplo) e aperte a tecla ESC. O Delphi dispe de uma ferramenta para auxlio ao alinhamento dos componentes. Clique no menu View Alignment Palette

Uma outra opo clicar sobre o componente selecionado e no Speed Menu (Menu rpido) selecionar Align.

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 20

Delphi 7 Desenvolvimento de Aplicaes

UTILIZANDO O OBJECT INSPECTOR


O object inspector uma janela importantssima na programao orientada a objetos, atravs dela que podemos alterar as propriedades e definir os eventos de acordo com o objetivo da aplicao.

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 21

Delphi 7 Desenvolvimento de Aplicaes

Na parte superior da janela h uma caixa de listagem que permite a seleo de componentes j inseridos no formulrio. Duas guias (Properties e Events) separam as listas de propriedades e eventos. As propriedades so definidas atravs de tipos. Podemos citar no exemplo com o objeto form: Tipos Simples So tipos String ou valores numricos definidos ao digitar um valor na frente da propriedade. Exemplo: Name, Caption, Height e Width entre outros. Tipos Enumerados So tipos definidos por uma quantidade limitada de opes que devem ser previamente selecionadas, no simplesmente definidas pelo usurio. Exemplo: Cursor, BorderStyle e WindowState entre outros.

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 22

Delphi 7 Desenvolvimento de Aplicaes

Tipo Set

Algumas propriedades podem conter mltiplos valores. Um exemplo a propriedade BorderIcons com o sinal + indicando subpropriedades. Tipos com Editor de Propriedades

As propriedades que so acompanhadas de um cone de reticncias (...) indicam que uma janela de dilogo ir auxiliar na escolha de seu(s) valor(es). Exemplo: Icon.

MANIPULANDO EVENTOS
A guia Events permite o desenvolvedor definir um manipulador de evento em Object Pascal para um determinado evento que pode ser disparado pelo usurio ou pelo sistema. Um evento uma ao disparada dentro de uma aplicao orientada a Objeto. Podemos citar as ocorrncias dos principais eventos que so disponibilizados na maioria dos componentes em Delphi: Evento OnClick OnDblClick OnEnter OnExit OnKeyPress Ocorrncia Quando o usurio clicar uma vez com o boto esquerdo do mouse sobre o componente. Quando o usurio d um duplo clique no componente com o boto esquerdo do mouse. Quando o componente recebe o foco. Quando o componente perde o foco. Quando pressiona uma nica tecla de caractere.

Construo de um manipulador de evento para o objeto button.


Insira um componente button no Form, no necessrio mudar nenhuma propriedade. D um clique no boto.

Os componentes possuem um evento padro para a construo do cdigo, por isso possvel clicar no componente duas vezes para abrir um evento. Como veremos com mais detalhes nos prximos captulos, todo cdigo em object pascal delimitado pelas palavras reservadas begin e end. Pablo Azevedo de Oliveira Fiza Universidade de Sorocaba Pgina 23

Delphi 7 Desenvolvimento de Aplicaes Defina apenas as duas linhas de cdigo dentro dos delimitadores.
procedure TForm1.Button1Click(Sender: TObject); begin Showmessage(Exemplo de caixa de dilogo); end;

Insira um componente edit no Form, no necessrio mudar nenhuma propriedade. Insira um componente label no Form, no necessrio mudar nenhuma propriedade. Escreva o cdigo mencionado abaixo. D um clique no boto.

procedure TForm1.Button1Click(Sender: TObject); begin Label1.Caption := Edit1.Text;

end; Observe a construo do procedimento criado pelo prprio Delphi: procedure TForm1.Button1Click(Sender: TObject); begin
Evento manipulado Name do form end; que define uma nova classe Nam do objeto

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 24

Delphi 7 Desenvolvimento de Aplicaes

EXECUTANDO APLICAES
Para executar o programa e visualizar os dois comandos codificados no evento OnClick basta teclar F9 ou o cone Run.

COMENTRIOS
Os comentrios no cdigo fonte so importantes e podem ser feitos atravs dos seguintes smbolos: (// - comentrio de linha) * ({} comentrio de bloco) * ((*texto*) comentrio de bloco).

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 25

Delphi 7 Desenvolvimento de Aplicaes

Captulo

COMPONENTES

Vamos considerar alguns objetos e suas principais propriedades. Objeto Form (Formulrio) Paleta Standard Importncia: o principal componente container pois permite posicionar os demais componentes em si mesmo. literalmente a implementao do conceito de janelas do sistema operacional Windows.

Propriedades Permite definir qual o primeiro componente a receber foco assim que o formulrio criado. Altera o alinhamento e preenchimento do objeto. Permite habilitar as barras de rolagem. Determina se o controle ser automaticamente redimensionado. Determina os cones a serem exibidos na barra de ttulo do formulrio. Define o estilo da borda do formulrio. bsDialog Borda no redimensionvel, comum em caixa de dilogo bsSingle Borda simples e redimensionvel. bsNone Borda invisvel, no redimensionvel, sem botes de controle. bsSizeable Borda padro redimensionvel. Define a espessura da borda. Indica o rtulo exibido para o componente. Define a altura e largura da rea cliente.

ActiveControl Align AutoScroll AutoSize BorderIcons BorderStyle

BorderWidth Caption ClientHeight / ClientWidth

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 26

Delphi 7 Desenvolvimento de Aplicaes Color Cursor DefaultMonitor Enabled Font FormStyle Define a cor de fundo de um componente. Indica a imagem exibida pelo ponteiro do mouse quando este ficar sobre o objeto. Associa o form a um monitor especfico em uma aplicao que utiliza vrios monitores. Define se o componente est habilitado ou no. Permite controlar os atributos do texto exibido em um componente. Determina o estilo do formulrio. fsNormal Definio padro do formulrio. fsMDIChild O formulrio ser uma janela-filha de uma aplicao MDI. fsMDIForm O formulrio ser o formulrio-pai de uma aplicao MDI. fsStayOnTop O formulrio permanece sobre todos os outros formulrios do projeto, exceto aqueles que tambm tm a propriedade FormStyle igual a fsStayOnTop. Define a altura do objeto. Define o tpico do arquivo help que ser exibido ao pressionar a tecla F1. Define um arquivo de help especfico. Permite exibir um texto de auxlio no momento em que o ponteiro do mouse permanece sobre o controle. Define o comportamento de uma barra de rolagem horizontal. Define o cone que ser usado pelo formulrio. Define se o formulrio deve ou no responder a um pressionamento de tecla, atravs do evento OnKeyPress, por exemplo. Define a coordenada da extremidade esquerda de um componente. Permite escolher entre mais de um componente MainMenu. Define o nome interno que identifica o componente dentro da aplicao. Define o componente PopupMenu a ser utilizado pelo objeto. Permite definir o tamanho e posio de um formulrio no momento em que ele aparece na sua aplicao. Define se a string de auxlio deve ou no ser exibida quando o usurio mantm o ponteiro do mouse sobre um controle. A propriedade Tag uma varivel do tipo Longint que o Delphi coloca disposio do usurio, que pode atribuir o significado mais conveniente. Define a coordenada da extremidade superior de um componente. Define o comportamento de uma barra de rolagem vertical. Define se o componente aparece ou no na tela. Define a largura do objeto. Permite definir qual o menu responsvel por manipular as janelas-filhas de uma aplicao MDI. Define o estado de exibio de um formulrio. Universidade de Sorocaba Pgina 27

Height HelpContext HelpFile Hint HorzScrollBar Icon KeyPreview Left Menu Name PopupMenu Position ShowHint Tag Top VertScrollBar Visible Width WindowMenu WindowState

Pablo Azevedo de Oliveira Fiza

Delphi 7 Desenvolvimento de Aplicaes

Mtodos Exibe o formulrio de manipulao no-modal. Exibe o formulrio de manipulao modal. Permite fechar o formulrio.

Show ShowModal Close

Objeto Button (Boto) Paleta Standard Importncia: um dos objetos mais utilizados para confirmar e disparar rotinas associadas.

Propriedades Referencia uma ao definida em um objeto TActionList. Permite manter a posio relativa do objeto ao objeto parente quando este redimencionado. Associa o evento OnClick do objeto ao pressionamento da tecla Esc. Associa ao evento OnClick do objeto ao pressionamento da tecla Enter. Propriedade utilizada para encerrar a execuo de um formulrio Modal quando selecionado um valor diferente de mrNone. As propriedades Parent permitem que o componente receba a mesma formatao do objeto proprietrio. Define a ordem na passagem de foco no momento de pressionamento da tecla TAB. Define se o foco pra no componente.

Action Anchors Cancel Default ModalResult Parent... TabOrder TabStop

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 28

Delphi 7 Desenvolvimento de Aplicaes Objeto Edit (Caixa de edio) Paleta Standard Importncia: Um dos principais componentes para a entrada de dados do usurio do sistema.

Propriedades

Define se o texto exibido pelo controle ser selecionado quando este receber o foco da aplicao. Para componentes TEdit a propriedade determina se a altura do controle AutoSize ser redimensionada quando o tamanho da fonte for alterado. Determina o tipo da borda do componente. BorderStyle Determina o se tipo da fonte ser maiscula, minscula ou normal. CharCase HideSelection Define se o texto perde a seleo ao perder o foco. Define um limite para a insero de caracteres. Maxlength PasswordChar Define qual caractere ser usado para ocultar o texto inserido no componente. Permite manipular os caracteres inseridos no componente pelo usurio. Text AutoSelect Mtodos Limpa o contedo da propriedade text. Envia o foco do windows para o componente.

Clear SetFocus

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 29

Delphi 7 Desenvolvimento de Aplicaes Objeto Label (Rtulo de orientao) Paleta Standard Importncia: Orientar o usurio escolha de componentes bem como sua utilizao.

Propriedades

Define o alinhamento da string na rea do componente. Para componentes TDBText e TLabel, esta propriedade define se o controle ser automaticamente redimensionado para acomodar o texto. Define qual o componente receber foco quando o usurio selecionar a FocusControl combinao de teclas aceleradoras (atalho) se existir. Define o alinhamento vertical do texto na rea do componente. Layout ShowAccelChar Define se o caracter & ser um literal ou tecla de aceleradora (atalho). Define se o fundo do componente ser transparente ou no. Transparent Define se o texto poder utilizar o retorno automtico em caso de WordWrap ultrapassar a largura definida e se a propriedade AutoSize estiver falsa. Alignment AutoSize Objeto Memo (Memorando) Paleta Standard Importncia: Permite o usurio entrar com dados do tipo TStrings, compara-se funcionalidade do software bloco de notas.

Propriedades Propriedade do tipo TStrings que contm as linhas de texto do componente. Universidade de Sorocaba Pgina 30

Lines

Pablo Azevedo de Oliveira Fiza

Delphi 7 Desenvolvimento de Aplicaes MaxLength ReadOnly ScrollBars WantReturns WantTabs Mtodos Define o limite mximo de caracteres no componente em sua propriedade Lines. Define se o componente do tipo somente leitura. Define se o componente pode trabalhar com barras de rolagem. Define se a tecla ENTER ser utiliza para quebra de linha. Define a tecla Tab como tabulao ou mudana de foco. Caso falso podese utilizar CTRL+TAB para produzir o efeito desejado.

LoadFromFile Permite carregar um arquivo para a propriedade Lines. Permite salvar o contedo da propriedade Lines em um arquivo SaveToFile especificado. Objeto RadioButton Paleta Standard Importncia: Permite escolher entre um grupo, pelo menos uma opo.

Propriedades Define se o componente est ligado ou desligado.

Checked

Objeto ListBox (Caixa de listagem) Paleta Standard Importncia: Permite o usurio entrar ou manipular uma lista de dados.

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 31

Delphi 7 Desenvolvimento de Aplicaes Propriedades Define uma lista de Strings que aparece no componente. Permite selecionar vrios itens (Strings) no componente. Define se a lista de Strings ser ordenada ou no.

Items MultiSelect Sorted Mtodos

Permite limpar o contedo da propriedade Items. Clear LoadFromFile Permite carregar um arquvo para a propriedade Items. Permite salvar o contedo da propriedade Items para um arquivo. SaveToFile Objeto ComboBox1 (Caixa de listagem em formato de cortina) Paleta Standard Importncia: Permite o usurio entrar ou manipular uma lista de dados.

Propriedades Define uma lista de Strings que aparece no componente. Define se os dados sero ordenados. Define o texto atual da Combobox.

Items Sorted Text Mtodos

Permite limpar o contedo da propriedade Items. Clear LoadFromFile Permite carregar um arquvo para a propriedade Items. Permite salvar o contedo da propriedade Items para um arquivo. SaveToFile

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 32

Delphi 7 Desenvolvimento de Aplicaes Objeto GroupBox (Caixa de agrupamento) Paleta Standard Importncia: Permite agrupar componentes e estabelecer um ttulo na propriedade Caption.

Propriedades Pemite definir um alinhamento no objeto proprietrio. Define o texto informativo na parte superior do componente.

Align Caption

Objeto RadioGroup (Grupo de botes radio) Paleta Standard Importncia: Permite estabelecer um grupo de botes de radio e manipula-los pela propriedade ItemIndex.

Propriedades Define os itens disponveis ao usurio. Define qual dos itens est selecionado. Define o nmero de colunas para organizao dos componentes.

Items ItemIndex Columns

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 33

Delphi 7 Desenvolvimento de Aplicaes Objeto Panel (Painel) Paleta Standard Importncia: Permite agrupar outros objetos e estabelecer um efeito visual nas aplicaes.

Propriedades Define o alinhamento do componente em relao ao seu proprietrio. Define a caracterstica das bordas (interna e externa) bem como sua espessura. Define o tipo da borda.

Align Bevel... BorderStyle

Objetos MainMenu e PopupMenu (Menu principal e Menu rpido) Paleta Standard Importncia: Define os Menus utilizados pelo usurio pelo boto esquerdo (MainMenu) ou pelo boto direito (PopupMenu) do Mouse.

Propriedades Define um novo item de Menu. Define um objeto do tipo ImageList.

Items Images

O objeto MainMenu permite a construo de sub-menus atravs de seu construtor clicando no item com o boto direito e escolhendo a opo Create

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 34

Delphi 7 Desenvolvimento de Aplicaes submenu. Pode-se tambm excluir ou incluir items aleatoriamente atravs do boto direito no item desejado. Para criar um separador de menus, utilize o operador de subtrao (-) e confirme com a tecla Enter. Objeto BitBtn (Boto com figuras opcionais) Paleta Additional Importncia: Permite inserir figuras para uma melhor orientao do usurio, alm de funes pr-definidas.

Propriedades Define um Bitmap para o componente. (Arquivo com extenso .BMP) Define o tipo de Bitmap exibido pelo usurio. bkCustom Bitmap definido pelo usurio. bkOk Boto OK padro, com uma marca de verificao na cor verde e propriedade Default igual a True. bkCancel Boto Cancel padro, com um x na cor vermelha e propriedade Cancel igual a True. bkYes Boto Yes padro, com uma marca de verificao na cor verde e propriedade Default igual a True. bkNo Boto No padro, com uma marca vermelha representando um crculo cortado e propriedade Cancel igual a True. bkHelp Boto de auxlio padro, com uma interrogao na cor cyan. Quando o usurio clica sobre o boto, uma tela de auxlio deve ser exibida (baseada no cdigo do desenvolvedor). bkClose Universidade de Sorocaba Pgina 35

Glyph Kind

Pablo Azevedo de Oliveira Fiza

Delphi 7 Desenvolvimento de Aplicaes Boto Close padro, com o desenho de uma porta. Quando o usurio clica sobre o boto, o formulrio a que ele pertence se fecha. bkAbort Boto Abort padro, com um x na cor vermelha e propriedade Cancel igual a True. bkRetry Boto Retry padro, com uma seta circular verde. bkIgnore Boto ignore padro, com o desenho de um homem verde se afastando. bkAll Boto All padro, com uma marca de verificao dupla na cor verde e propriedade default igual a True. Permite encerrar a execuo de um formulrio Modal quando o seu valor for diferente de mrNone.

ModalResult

Objeto SpeedButton (Boto para barra de cones) Paleta Additional Importncia: Permite ao usurio manipular os botes individuais ou atravs do conceito de grupo.

Objeto MaskEdit (Caixa de edio com mscara) Paleta Additional Importncia: Permite estabelecer uma mscara para a entrada de dados no componente. Pode ser considerado literalmente um componente Edit com mscara.

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 36

Delphi 7 Desenvolvimento de Aplicaes Propriedades

Define o tipo dos caracteres. CharCase Permite definir uma mscara para entrada de dados. EditMask PasswordChar Define um caracter para ocultar a entrada de dados. Objeto Image (Imagem) Paleta Additional Importncia: Permite inserir uma figura para uso geral na aplicao.

Propriedades Permite alterar o tamanho do componente baseado no tamanho da figura. Define a figura a ser exibida. Permite alterar o tamanho da figura baseado no tamanho do componente.

AutoSize Picture Stretch Mtodos

LoadFromFile Permite carregar um arquivo de figura na propriedade Picture. Objeto - PageControl Paleta Win32 Importncia: Permite definir guias para agrupar os demais componentes. Cada guia representa um componente TabSheet do tipo TTabSheet, uma espcie de sub-objeto do PageControl.

Propriedades Permite determinar qual a guia foi selecionada pelo usurio. Universidade de Sorocaba Pgina 37

ActivePage

Pablo Azevedo de Oliveira Fiza

Delphi 7 Desenvolvimento de Aplicaes

Para criar novas pginas, clique com o boto direito no componente PageControl e escolha New Page. Objeto ImageList (Lista de imagens) Paleta Win32 Importncia: Permite definir um conjunto de cones para serem re-utilizados por diversos componentes de recebem este objeto como provedor de uma lista de imagens.

Para incluir imagens no componente ImageList, clique 2 vezes rapidamente no componente e clique no boto Add. O Delphi possui um conjunto de cones e imagens em uma pasta padro1: C:\Arquivos de programas\Arquivos comuns\Borland Shared\Images

Objeto ProgressBar (Barra de progresso) Paleta Win32 Importncia: Permitir ao usurio ter um acompanhamento de uma rotina demorada.

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 38

Delphi 7 Desenvolvimento de Aplicaes Propriedades Permite definir o valor mximo para a faixa de valores no componente. Permite definir o valor mnimo para a faixa de valores no componente. Define se o componente dever ser vertical ou horizontal. Define a posio corrente do controle no componente. Define o incremento usado na variao do valor da propriedade position.

Max Min Orientation Position Step

Objeto DateTimePicker (Data e hora atravs de uma Combobox) Paleta Win32 Importncia: Permite ao usurio escolher uma data atravs de um componente que possui um importante impacto visual e facilidade operacional.

Propriedades Define as cores do calendrio. Define a data selecionada no componente. Define o formato da apresentao da data. Define o estilo da caixa de listagem. Define se o componente deve trabalhar com data ou hora. Define uma data mxima para uma faixa de valores. Define uma data mnima para uma faixa de valores.

CalColors Date DateFormat DateMode Kind MaxDate MinDate

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 39

Delphi 7 Desenvolvimento de Aplicaes Objeto MonthCalendar (Calendrio mensal) Paleta - Win32 Importncia: Permite ao usurio escolher uma data atravs de um componente que possui um importante impacto visual e facilidade operacional.

Propriedades Define a data selecionada no componente. Define qual o primeiro dia da semana. Permite numerar as semanas.

Date FirstDayOfWeek WeekNumbers

Objeto StatusBar (Barra de status) Paleta Win32 Importncia: Um dos principais componentes de informaes sobre operaes gerais no sistema.

Propriedades Permite exibir o hint do componente automaticamente na barra de status. AutoHint Se no houver painis, a barra deve ter a propriedade SimplePanel ligada. Define que a barra de status ser sem divises. SimplePanel Define o texto a ser exibido pela barra de status. SimpleText Permite a criao e edio de painis na barra de status. Panels A propriedade SimplePanel deve estar desligada. Pode-se tambm dar um duplo clique na barra de status. Pablo Azevedo de Oliveira Fiza Universidade de Sorocaba Pgina 40

Delphi 7 Desenvolvimento de Aplicaes

Ao utilizar a propriedade AutoHint, pode-se definir o hint dos objetos com duas strings separadas por pipe (|). A primeira string ser utilizada como hint local, a segunda como hint na barra de status. Objeto Timer (Temporizador) Paleta System Importncia: Permite a execuo de rotinas em loop, em um intervalo pr-definido.

Propriedades Permite ligar o timer, ou seja, ele entra em um loop executando o evento OnTimer at que seja atribudo falso ou terminada a aplicao. Define em milisegundos o intevalo de repetio do evento OnTimer.

Enabled Interval

(Caderno de Exerccios Exerccio n 1).

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 41

Delphi 7 Desenvolvimento de Aplicaes

Captulo

DECLARAO DE VARIVEIS
As variveis podem ser classificadas em:

Globais: Quando so feitas diretamente na seo interfaces de uma unit (ou seja, fora dos procedimentos e funes). Pode-se ter variveis pblicas e privadas.

Locais: Quando feita a declarao dentro de um procedimento ou funo.

var N: Single; S: String; I: Integer;

ATRIBUIO
Ao declarar uma varivel, o compilador cuida de alocar na memria uma rea que seja suficiente para armazenar qualquer dos valores definidos atravs do seu tipo. Os valores que podem ser atribudos varivel so definidos atravs de um comando de atribuio que pode ser considerado da seguinte forma: Varivel := expresso;

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 42

Delphi 7 Desenvolvimento de Aplicaes

TIPOS PARA MANIPULAO DE VARIVEIS Tipos de variveis Inteiras


Tipo Integer Cardinal Shortint Smallint Longint Int64 Byte Word Longword Faixa de Valores -2147483648.. 2147483647 0..4294967295 -128..127 -32768..32767 -2147483648.. 2147483647 -2^63..2^63-1 0..255 0..65535 0..4294967295 Formato 32 bits 32 bits, sem sinal 8 bits 16 32 64 8 bits, sem sinal 16 bits, sem sinal 32 bits, sem sinal

Tipos de nmeros Reais


Tipo Real Single Double Extended Comp Currency Faixa de Valores 2.9*10E-39..1.7*10E38 1.5*10E-45..3.4*10E38 5.0*10E-324..1.7*10E308 3.4*10E-4932..1.1*10E4932 -2*10E63+1..2*10E63-1 -9.22*10E14..9.22*10E14

Tipos de variveis booleanas


Tipo Boolean ByteBool WordBool LongBool False ou True * * * Faixa de Valores

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 43

Delphi 7 Desenvolvimento de Aplicaes

Tipos de variveis de caracteres


Tipo Char ShortString String Valores Permite armazenar um caractere ASCII. Permite armazenar uma cadeia de at 255 caracteres. Permite armazenar uma cadeia ilimitada de caracteres.

FUNES DE CONVERSO E MANIPULAO


Os objetos do Delphi para entrada e/ou exibio de dados utilizam propriedades do tipo String, as propriedades Text e Caption so bons exemplos. O problema ocorre quando tentamos realizar clculos matemticos com os dados que devem ser manipulados por estas propriedades. Desta maneira precisamos de funes para converter dados String em tipos Inteiros ou Reais ou Datas, por exemplo. Funo StrToInt(const S: String) IntToStr(value: Integer) StrToFloat(const S: String) FloatToStr(Value: Extended) DateToStr(Date: TdateTime) DateTimeToStr(DateTime: TDateTime) StrToDate (const S: String) StrToDateTime(const S: String) FormatFloat(const Format: string; Value: Extended): string Objetivo Converte um dado String em tipo Inteiro. Converte um dado Inteiro em tipo String. Converte um dado String em tipo Ponto Flutuante. Converte um dado Ponto Flutuante em tipo String. Converte um dado TDateTime em String. Converte um dado TDateTime em String. Converte um dado String em tipo TDateTime. Converte um dado String em tipo TDateTime Permite formatar um tipo ponto flutuante retornando uma string.
Edit2.Text := FormatFloat('###,###.00',soma);

Sendo soma uma varivel real.

O tipo TDateTime internamente manipulado como tipo Ponto Flutuante.

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 44

Delphi 7 Desenvolvimento de Aplicaes

EXPRESSES LGICAS
So expresses que retornam valor booleano (falso ou verdadeiro). Operador Not And Or Xor Operao Negao E lgico OU lgico OU EXCLUSIVO lgico

O operador not unrio, por exemplo: if not (X > Z) then Devemos usar parnteses ao compararmos expresses lgicas, por exemplo: if (X > Z) or (W > Y) then

COMANDO IF
O comando condicional if pode ser composto de uma ou mais condies de processamento, por exemplo:
if (A > B) then B := B + 1; // ou INC(B); if (A > B) then B := B + 1 else A := A - 1; // ou DEC(A); if (A > B) then begin B := B + 1; X := B + A; end else begin A := A - 1; Y := Y + B; End;

(Caderno de Exerccios Exerccio n 2 e 3).

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 45

Delphi 7 Desenvolvimento de Aplicaes No ltimo exemplo para representar um bloco de comandos em caso verdadeiro ou falso, utiliza-se dos delimitadores begin e end. O comando if-then-else considerado como nico, portanto, no h ponto e vrgula (;) antes da palavra reservada else.

COMANDO REPEAT
O comando repeat..until uma opo para estruturas de repetio. A diferena com o comando while o fato do comando repeat ser executado pelo menos uma vez. repeat X := X + 1; INC(Z,3); //equivale a Z := Z + 3; DEC(AUX,2); until X >= 200; (Caderno de Exerccios Exerccio n 4).

COMANDO WHILE
O comando while..do tambm permite a construo de estruturas de repetio, com diferena de no executar o lao no incio do teste lgico. while X <= 200 do begin X := X + 1; INC(Z,3); DEC(AUX,2); end; (Caderno de Exerccios Exerccio n 5). Pablo Azevedo de Oliveira Fiza Universidade de Sorocaba Pgina 46

Delphi 7 Desenvolvimento de Aplicaes

COMANDO FOR
O comando for..do estabelece uma estrutura de repetio considerando um controle inicial e final. Pode ser construdo de maneira crescente ou decrescente. for i:=0 to 500 do Label1.Caption := IntToStr(i); for i:=500 downto 100 do begin Label1.Caption := IntToStr(i); Edit1.Caption := IntToStr(i); end; (Caderno de Exerccios Exerccio n 6).

PROCEDURES E FUNCTIONS
Procedimentos e funes so blocos de cdigo (rotinas) em Object Pascal que podem ou no receber parmetros (valores) para processamento. Uma vez definida a rotina pode-se ativa-la de diversas partes do programa atravs de seu nome. A grande diferena entre as formas de definio destas rotinas (se procedimentos ou funes) est no fato de que: Procedimento NO retorna valor. Funo Retorna valor

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 47

Delphi 7 Desenvolvimento de Aplicaes PROCEDURES Procedures: So as subrotinas mais comuns no Object Pascal. procedure MostraEstrelas(num : Integer); var i : integer; s : string; begin for I := 1 to num do s := s + (*); ShowMessage(s); end; Para executar esta procedure: MostraEstrelas(20); (Caderno de Exerccios Exerccio n 7). FUNCTIONS Functions: So subrotinas como as procedures, porm retornam algum tipo de valor. function Soma(a, b:Integer) :Integer; begin result := a + b; end; Esta function executa a soma de dois nmeros inteiros e seu resultado inteiro. Como utilizar esta function: iTotal := Soma(10, 5); (Caderno de Exerccios Exerccio n 8).

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 48

Delphi 7 Desenvolvimento de Aplicaes

Captulo

A LINGUAGEM OBJECT PASCAL

Por mais recursos grficos que as linguagens orientadas a objetos possuam, em determinado momento no h como fugir do cdigo. A programao em Delphi definida atravs da Linguagem Object Pascal, uma extenso do Pascal proposto por Niklaus Wirth. Consideramos uma aplicao em Delphi baseada em um conjunto de arquivos, (citados anteriormente .DPR .PAS e .DFM) bsicos. Vamos examinar alguns arquivos de fundamental importncia:

O MDULO .DPR
Todo programa em Object Pascal possui um arquivo .DPR, considerado como arquivo de projeto, o seu formato composto inicialmente da seguinte definio:
program Project1; uses Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.RES} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end.

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 49

Delphi 7 Desenvolvimento de Aplicaes A palavra program define o nome do programa, este nome ser alterado quando for gravado o arquivo .DPR do projeto. Na clusula uses, so listadas as units usadas pelo mdulo principal. As units (que sero vistas adiante) so responsveis pela capacidade de dividir o programa em uma viso modularizada. Em cada um, declaramos uma srie de objetos (funes, variveis, procedimento, etc...) que podem ser usados por outras units e pelo mdulo principal. Em seguida vem um conjunto de comandos (denominado comando composto) atravs de dois delimitadores begin e end.

AS UNITS
Um programa em Object Pascal constitudo de um mdulo principal (.DPR) e de uma ou mais unidades de compilao (.PAS). O compilador gera um arquivo com o cdigo objeto correspondente, e considera o mesmo nome do arquivo .PAS com a extenso .DCU. As units so entidades independentes, ou seja, no momento da criao no h vnculo lgico (nem fsico) entre uma unit e um programa principal que a utiliza. Com esta caracterstica, podemos utilizar as units em qualquer projeto. A principal caracterstica do conceito de unit que possibilita estruturar o programa em mdulos funcionais, com cada unit provendo um conjunto de funes e procedimentos. Cada formulrio corresponde a uma unit. Mas, podemos criar units independentes, no associadas a um form. Se considerarmos o cdigo uma unit com um componente Button e um manipulador de evento, teremos o seguinte cdigo:
unit Unit1; interface uses

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 50

Delphi 7 Desenvolvimento de Aplicaes


Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin Form1.Caption := 'Curso de Delphi'; Showmessage('Exemplo de caixa de dilogo'); end; end.

Uma unit possui cinco partes: Cabealho Contm a palavra reservada unit seguida de um identificador que o nome da unit. Este nome o mesmo nome do arquivo com extenso .PAS
unit Unit1;

Interface Contm tudo o que a unit exporta: constantes, tipos, variveis, procedimentos, funes, etc... Na declarao dos procedimentos e funes que a unit exporta, deve constar apenas o cabealho (nome e parmetros). A declarao completa fica na parte da implementao.
interface uses

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 51

Delphi 7 Desenvolvimento de Aplicaes


Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1;

Implementao Contm a definio completa das funes e procedimentos que constam na interface. Se na implementao so usados identificadores definidos em outra unit, o nome desta outra unit deve ser includo na lista de units da clusula uses da implementao.
implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin Form1.Caption := 'Curso de Delphi - SENAC MG'; Showmessage('Exemplo de caixa de dilogo'); end;

Inicializao uma parte opcional. Quando usada, no pode conter nenhuma declarao. Apenas comandos so permitidos nesta parte. Ela comea com a palavra initialization, e os comandos de inicializao so executados antes do programa comear.
initialization <comandos>

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 52

Delphi 7 Desenvolvimento de Aplicaes Finalizao tambm uma parte opcional, com uma observao: ela s pode existir se na unit houver tambm uma parte de inicializao e s pode conter comandos, que sero executados dentro do processo de finalizao do programa, aps a execuo do programas principal.
finalization <comandos>

Toda unit termina com a palavra end seguida de um ponto final (.).

CAIXAS DE DILOGO
Podemos utilizar alguns tipos de caixas de dilogo pr-definidas pelo Delphi facilitando em muito o desenvolvimento pela ferramenta:

ShowMessage A caixa de dilogo ShowMessage declarada internamente pelo Delphi desta forma: procedure ShowMessage(const Msg: string); Onde o parmetro Msg um dado String. Exemplo: ShowMessage(Um texto ou uma propriedade string ser exibida.);

(Caderno de Exerccios Exerccio n 9). Pablo Azevedo de Oliveira Fiza Universidade de Sorocaba Pgina 53

Delphi 7 Desenvolvimento de Aplicaes

MessageDlg A caixa de dilogo MessageDlg declarada internamente pelo Delphi desta forma:
function MessageDlg(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Word;

Onde: Const Msg: string DlgType: TmsgDlgType uma constante string ou propriedade deste tipo. MtWarning: Contm um cone exclamao amarelo. MtError: Contm um cone vermelho de parada. MtInformation: Contm um cone i azul. MtConfirmation: Contm uma interrogao verde. MtCustom: No contm BitMap. mbYes mbNo mbOK mbCancel mbAbort mbRetry mbIgnore mbAll mbNoToAll mbYesToAll mbHelp Define um nmero para o help de contexto. Por padro, zero 0.

Buttons: TMsgDlgButtons HelpCtx: Longint

O retorno da funo o tipo do boto como mr,desta maneira pode-se fazer testes lgicos como no exemplo:
MessageDlg(Deseja sair?, mtConfirmation, [mbYes, mbNo], 0);

(Caderno de Exerccios Exerccio n 10).

CHAMADA DE FORMS
Uma caracterstica importante da apresentao dos formulrios em uma aplicao, o fato de ser apresentado como MODAL ou NO-MODAL. H dois

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 54

Delphi 7 Desenvolvimento de Aplicaes mtodos para executar a visualizao, mas antes vamos entender como isso funciona. MODAL O foco fica preso no formulrio e no liberado para outro form at que ele seja fechado. O usurio pode ativar outra aplicao do Windows, mas no poder trabalhar em outra janela daquele programa cuja janela foi aberta como modal (at que seja fechada). NO MODAL O foco pode ser transferido para outra janela sem que esta precise ser fechada. Entendido este conceito, os mtodos que o Delphi utiliza para apresentar os forms so: Show para apresentar forms NO-MODAIS, ou ShowModal para apresentar forms MODAIS. (Caderno de Exerccios Exerccio n 11).

Pablo Azevedo de Oliveira Fiza

Universidade de Sorocaba

Pgina 55

Você também pode gostar