Escolar Documentos
Profissional Documentos
Cultura Documentos
TECNOLGICA DE SERGIPE
COORDENADORIA DE INFORMTICA
CEFET-UNED
Prof. Mrio Andr
INDICE
Paradigmas da Programao ................................................................................................................................4
Tipos Simples .......................................................................................................................................................10
Tipos Enumerados ................................................................................................................................................10
Tipo Set ................................................................................................................................................................11
Tipos com Editor de Propriedades........................................................................................................................11
Manipulando Eventos ...........................................................................................................................................11
PROJETO EM DELPHI ..........................................................................................................................................15
CONVENO DE NOMEAO...........................................................................................................................19
COMPONENTES......................................................................................................................................................27
Propriedades .............................................................................................................................................................29
Mtodos ....................................................................................................................................................................30
Mtodos ....................................................................................................................................................................30
Propriedades .............................................................................................................................................................31
Propriedades .............................................................................................................................................................32
Crie um formulrio conforme lay-out abaixo...........................................................................................................33
A opo Apaga Tudo s poder ocorrer aps confirmao do usurio ....................................................................33
Propriedades .............................................................................................................................................................33
Mtodos ....................................................................................................................................................................33
Propriedades .............................................................................................................................................................34
Propriedades .............................................................................................................................................................35
Mtodos ....................................................................................................................................................................36
Propriedades .............................................................................................................................................................36
Mtodos ....................................................................................................................................................................36
Propriedades .............................................................................................................................................................38
Mtodos ....................................................................................................................................................................38
Propriedades .............................................................................................................................................................38
CHAMADA DE FORMS .........................................................................................................................................52
COMPONENTES (VCL) ..........................................................................................................................................53
TRATAMENTO DE EXCEES..........................................................................................................................66
UM POUCO MAIS SOBRE COMPONENTES (VCL) ......................................................................................72
Opes ..................................................................................................................................................................73
Valor .....................................................................................................................................................................73
Significado............................................................................................................................................................73
Principais Eventos ................................................................................................................................................73
Evento...................................................................................................................................................................73
Descrio ..............................................................................................................................................................73
Principais Mtodos ...............................................................................................................................................74
Mtodos ................................................................................................................................................................74
Descrio ..............................................................................................................................................................74
Principais Propriedades ........................................................................................................................................74
Propriedade...........................................................................................................................................................74
Descrio ..............................................................................................................................................................74
Opes ..................................................................................................................................................................74
Valor .....................................................................................................................................................................74
Significado............................................................................................................................................................74
Principais Eventos ................................................................................................................................................74
Evento...................................................................................................................................................................74
Descrio ..............................................................................................................................................................74
Principais Mtodos ...............................................................................................................................................75
Mtodos ................................................................................................................................................................75
Descrio ..............................................................................................................................................................75
Principais Propriedades ........................................................................................................................................75
Propriedade...........................................................................................................................................................75
Descrio ..............................................................................................................................................................75
Opes ..................................................................................................................................................................75
CEFET-UNED
Prof. Mrio Andr
Valor .....................................................................................................................................................................75
Significado............................................................................................................................................................75
Principais Eventos ................................................................................................................................................76
Evento...................................................................................................................................................................76
Descrio ..............................................................................................................................................................76
Principais Mtodos ...............................................................................................................................................76
Mtodos ................................................................................................................................................................76
Descrio ..............................................................................................................................................................76
UM POUCO MAIS SOBRE COMPONENTES (VCL) ......................................................................................76
Images.......................................................................................................................................................................82
StateImages...............................................................................................................................................................82
Items .........................................................................................................................................................................82
ShowButtons.............................................................................................................................................................82
ShowLines ................................................................................................................................................................82
ShowRoot .................................................................................................................................................................82
ReadOnly ..................................................................................................................................................................82
Eventos.....................................................................................................................................................................82
OnEditing .................................................................................................................................................................82
OnEdited...................................................................................................................................................................82
Apndice A - A Linguagem Object Pascal......................................................................................................84
Apndice B - DICAS..............................................................................................................................................87
Apndice C - INTRODUO ORIENTAO A OBJETOS ......................................................................92
REFERNCIA BIBLIOGRFICA.............................................................................................................................94
CEFET-UNED
Prof. Mrio Andr
Paradigmas da Programao
"Paradigma uma forma de pensar e perceber o mundo real e determina o que
escolhemos como significativo e o que descartamos ao compreender ou descrever o que existe
ou ocorre no mundo em torno de ns".
A mudana de paradigma uma oportunidade de encontrar novas interpretaes para
antigas questes, bem como, para rever solues tidas como definitivas.
Introduo
Antes de comearmos seria interessante ressaltar que aprender a ser um bom
desenvolvedor envolve mais do que aprender a sintaxe de uma linguagem de programao em
particular, isto porque existem muitos outros aspectos do campo do sw, que tm pouca conexo
com o ato em si de escrever cdigo.
Se voc pode est pensando: "Ora, vamos, eu s quero aprender Delphi", deveria
tambm pensar que a questo aqui que, se voc pretende desenvolver sw por dinheiro ou para
manter-se num emprego, e tem clientes ou chefes esperando que seu sw:
Ento, vamos ter que comear por aqui mesmo, comentando sobre
problemas como a crise de sw; o ciclo de vida e a engenharia de sw
porque apenas talento artstico indisciplinado (intuio) no resolve.
Devemos nos lembrar que o objetivo mais direto do desenvolvimento de sw fazer o
produto final satisfazer a especificao dos requisitos. Precisamos portanto, dividir isso em algo
mais tratvel. Algum grupo menor ou mais preciso de objetivos que sejam mais alcanveis e
fceis de lembrar.
Lembre-se de que se tem algo que sempre permanente a mudana. Conforme
sabemos, uma aplicao passar a maior parte de seu ciclo de vida na fase de manuteno. Ento,
importante termos um conjunto de objetivos que transceda a mudana.
Entre outros, os quatro objetivos geralmente excludos da engenharia de software so a
capacidade de modificao, eficincia, confiabilidade e inteligibilidade. Devemos tambm
destacar a ergonomia.
Programao Procedimental
A maior parte dos programadores est acostumada a escrever cdigo que executado
de forma sequencial. Tais programas possuem inicio, meio e fim bem definidos. Tipicamente,
estes programas possuem telas de entradas de dados de algum tipo de processamento com estes
CEFET-UNED
Prof. Mrio Andr
dados de forma sequencial. Esta forma de se programar dita procedimental. A figura 1 ilustra a
sequencialidade encontrada em programas que seguem tal paradigma.
Incio
Entrada de
Dados
Processamento
Fim
Program Verif_Nome;
Var Nome : String;
Begin
Write ('Digite um nome: ');
Readln (Nome);
If Nome = 'Ze Silva' then
CEFET-UNED
Prof. Mrio Andr
Note que o fluxo do programa bem definido. Primeiramente ele pergunta o nome do
usurio. Agora, voc pode esperar que o usurio introduza seu nome, e no precisa se preocupar
com nenhuma outra entrada ou ao que ocorra no ambiente.
Depois que o nome informado, uma instruo if define o que o programa deve fazer
em seguida e o programa termina. A lgica deste programa linear direta e sequencial. O
modelo baseado em eventos no pode utilizar controle de fluxo do incio at o fim, pois o
aplicativo deve manipular todas as aes ou eventos possveis
CEFET-UNED
Prof. Mrio Andr
Aes
Sistema
Eventos
O avano da tecnologia barateou o custo dos sistemas computacionais e introduziu recursos grficos para a
interao com os usurios (GUI- Graphic User Interface).
Uma aplicao que se utiliza de interface grfica, permite que o usurio decida a
seqncia mais apropriada de interao. Esta abordagem muda completamente a forma de se
construir programas.
As interfaces grficas introduziram assim uma forma completamente nova de se
programar. Nesta abordagem, uma aplicao constitui-se de um loop para tratamento de eventos
e de procedimentos associados a eventos especficos. Toda vez que ocorre um determinado
evento, o seu procedimento equivalente executado. Eventos acontecem em decorrncia da
interao do usurio com o sistema, gerados pelo sistema operacional ou ainda gerados na
prpria aplicao. Exemplos de eventos: mover o mouse, pressionar uma tecla, selecionar um
tem de menu, setar o foco para um determinado controle, etc.
A cada ao do usurio corresponde um ou mais eventos enviados para a aplicao.
Estes eventos devem ser identificados e tratados de maneira adequada pelo programa. Esta
abordagem conhecida como programao orientada a eventos.
As interfaces grficas tornaram a interao dos usurios com as aplicaes bastante
atraentes. Em compensao, introduziram uma complexidade enorme do ponto de vista de
programao. Para se ter uma idia, o cdigo em linguagem C no windows para escreve na tela
Al mundo possui cerca de 100 linhas.
Se acrescentarmos a isto o fato de que 80% do cdigo escrito para uma aplicao
consumido na elaborao de interface, fica difcil de massificar a programao em ambientes de
interface grfica.
Felizmente, o paradigma da orientao a objetos consegui esconder do programador a
maior parte da complexidade da programao nestes ambientes.
CEFET-UNED
Prof. Mrio Andr
IDE
O ambiente de desenvolvimento do Delphi composto de vrias partes compondo um
conjunto integrado de janelas que interagem entre si.
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 tamanho, botes (minimizar, maximizar, fechar,
controle) e cone podem (e sero) ser modificadas atravs de recursos que veremos adiante.
CEFET-UNED
Prof. Mrio Andr
A PALETA DE COMPONENTES
Aplicativos orientados a objetos trabalham com elementos que denominamos
componentes. No Delphi, os componentes encontram-se em uma paleta com vrias guias.
Pode-se configurar a ordenao das guias clicando com o boto direito do mouse sobre
qualquer componente e clicar na opo Properties.
OBJECT INSPECTOR
Uma das partes mais importantes da orientao a objeto a possibilidade de definir
caractersticas personalizadas aos componentes.
No Delphi, utilizamos a janela object inspector para realizar esta tarefa.
H uma caixa de listagem1 que permite
a escolha de qual componente dever
ser selecionado.
Duas guias:
Properties Define as propriedades e
valores do Objeto selecionado.
Objeto atual
selecionado
Propriedade
Valor atual
desta
propriedade
Por exemplo:
Componente ComboBox.
CEFET-UNED
Prof. Mrio Andr
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.
10
CEFET-UNED
Prof. Mrio Andr
Tipo Set
Algumas propriedades podem conter mltiplos valores. Um exemplo a propriedade
BorderIcons com o sinal + indicando subpropriedades.
Manipulando Eventos
A guia Events permite o desenvolvedor definir um handler2 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.
begin
end;
CODE EDITOR
O editor de cdigo responsvel por receber todas as declaraes criadas pelo Delphi e
handlers3 criados pelo desenvolvedor.
E no ambiente Code Editor que implementamos o algoritmo na linguagem Object
Pascal.
2
3
Manipulador de evento
Manipulador de eventos.
11
CEFET-UNED
Prof. Mrio Andr
Code Editor
Name do form
que define uma
nova classe
Code
Explorer
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.
12
CEFET-UNED
Prof. Mrio Andr
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.
Esta lista pode ser ordenada por nome, clicando com o boto direito dentro da listagem.
13
CEFET-UNED
Prof. Mrio Andr
5.
14
CEFET-UNED
Prof. Mrio Andr
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
.PAS
.DPR
.DFM
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
Sim.
Desenvolvimento
Sim.
Desenvolvimento
Compilao
Apenas se o cdigo-fonte
no estiver disponvel. Os
arquivos DCU para as
unidades que voc
escreve so um passo
intermedirio; portanto,
eles tornam a compilao
mais rpida.
Normalmente no, mas
eles podem ser
necessrios em tempo de
execuo e para edio
adicional.
Necessrio apenas se
opes de compilao
especiais foram
configuradas.
Exigido apenas se opes
de compilao especiais
foram configuradas.
No. Voc deve exclu-lo
se copiar o projeto em um
novo diretrio.
.DCU
.BMP, .ICO,
.CUR
.CFG
.DOF
.DSK
Desenvolvimento:
Image Editor
Desenvolvimento
Desenvolvimento
Compilao: Ligao
(linking)
.EXE
.~PA
.TODO
Necessrio para
compilar?
Desenvolvimento
Backup do arquivo Pascal
Pode ser ativado ou desativado atravs
do Menu Tools Editor Options - guia
display Item: Create backup file.
Arquivo da lista to-do, contendo os itens Desenvolvimento
relacionados ao projeto inteiro.
15
CEFET-UNED
Prof. Mrio Andr
.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.
Unidades
Existem trs tipos de unidades: unidades associadas aos formulrios (as mais comuns),
arquivos de unidade usados para armazenar funes e procedures, e arquivos de unidade usados
para construir componentes.
Vamos ver una unidade bsica associada a um formulrio:
Unit Unit1;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs;
16
CEFET-UNED
Prof. Mrio Andr
Type
Tform1 = class(Tform)
procedure FormCreate(Sender: Tobject);
private
{Declaraes privativas}
public
{Declaraes pblicas}
end;
var
Form1: Tform1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: Tobject);
begin
end;
end.
O cdigo acima, junto com o cdigo de arquivo de projeto, tudo de que precisa no
Delphi para criar um executvel que abre uma janela. Ele no far muita coisa nesse ponto, mas
um programa Windows funcional, na sua forma mais simples.
Veja os nomes na clusula uses, do cdigo acima. Trata-se dos nomes de outras
unidades. Se voc decidisse escrever vrias funes e procedures teis, poderia criar sua
unidade, colocar todo seu trabalho til nela e compil-la para uso futuro. Vamos ver as partes
que constitui a unidade:
Cabealho da unidade - Um cabealho de unidade identifica o cdigo como uma unit e
seguido pelo nome.
Interface - Marca o incio da parte unit interface, que usada para declarar variveis,
tipos, procedures, etc. A parte interface determina o que nessa unidade est disponvel para
outras unidades e partes do programa. A parte interface termina com o incio da parte
implementation.
17
CEFET-UNED
Prof. Mrio Andr
OPES DE PROJETO
O Delphi permite a configurao de vrios itens do sistema atravs do menu Project Options.
18
CEFET-UNED
Prof. Mrio Andr
Forms
Application
Title - Define um nome para a sua aplicao diferente do nome do arquivo de projeto
(.DPR).
Help file Define o nome do arquivo de Help (.HLP) associado aplicao.
Icon Define o cone utilizado no arquivo executvel. (.EXE)
Compiler
Estas opes permitem especificar uma compilao personalizada, ou seja, cada projeto
pode ser compilado com uma caracterstica.
Linker
Directories/Conditionals
Nesta guia pode-se configurar o diretrio de sada para os arquivos gerados pela
aplicao.
Version Info
Estas informaes podem ser visualizadas no Windows atravs do menu rpido do mouse
no arquivo executvel.
Packages
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:
19
CEFET-UNED
Prof. Mrio Andr
Objetivo
Sair da aplicao
Receber nome do usurio
Indicar componente Edit
Conveno
BtnSair
EdtNome
LblNome
A Lista de Units
A janela de lista de units permite que voc alterne entre as units que fazem parte do
projeto ativo, sem que elas tenham de estar todas abertas no editor de cdigo. Caso voc
selecione uma unit que no esteja aberta, o Delphi a abrir e mostrar no Code Editor.
A lista de units pode ser ativada atravs do menu View, opo Units..., ou atravs do
primeiro cone inferior da SpeedBar ou atravs da combinao das teclas <Ctrl> <F12>.
A Lista de Forms
A janela de lista de forms permite, de forma anloga de lista de units, que voc
alterne entre os forms que fazem parte do projeto ativo, sem que eles tenham de estar todos
abertos. Caso voc selecione um form que no esteja aberto, o Delphi o abrir e mostrar para
edio no Form Designer.
20
CEFET-UNED
Prof. Mrio Andr
A lista de forms pode ser ativada atravs do menu View, opo Forms..., ou atravs do
segundo cone inferior da SpeedBar ou atravs da combinao das teclas <Alt> <F12>.
A Lista de Janelas
A janela de lista de janelas do ambiente, embora menos utilizada do que as de lista de
units e forms, apresenta uma forma rpida de encontrar-se uma janela, que esteja escondida atrs
de muitas outras.
A lista de janelas pode ser ativada atravs do menu View, opo Window List..., ou
atravs da combinao das teclas <Alt> <0>.
CEFET-UNED
Prof. Mrio Andr
22
CEFET-UNED
Prof. Mrio Andr
Para ativar os forms que deseja trabalhar, utilize o 2 cone inferior do SB ou View
Project Manager, selecione o form, clique com boto direito e escolha a opo Open.
Modularizao
muito indicado que voc modularize o seu projeto. Isto implica tambm em no
misturar funcionalidades diferentes na mesma unit.
Como assim? Voc no deve colocar strings nem valores constantes diretamente no
cdigo. Isto aumenta o trabalho quando for necessrio alterar determinado valor. Teremos que
procurar em todos os mdulos para saber onde fazemos referncia quele valor. E cuidado para
no confundir com uma mesma constante que possua, por coincidncia, o mesmo valor que a que
estamos procurando.
Para resolver este problema, voc deve criar constantes e atribuir valores a estas
constantes. Mas no defina estas constantes em qualquer unit. Crie uma unit que ir abrigar
somente a definio das constantes do projeto. Voc pode nomear esta unit com qualquer nome,
exceto Const.Pas, porque const uma palavra reservada.
Diretrios
Via de regra, aconselhado utilizar um diretrio para cada projeto Delphi. Isto porque
facilita bastante a identificao dos vrios arquivos.
Um dos pontos mais importantes de um projeto saber quais arquivos so necessrios
para uma compilao completa (build). Quando temos mais de uma aplicao por diretrio, esta
identificao passa a ser um problema.
Exemplo:
C:\Sistema
C:\Sistema\Doc
C:\Sistema\Dados
C:\Sistema\Dll
C:\Sistema\Icones
23
CEFET-UNED
Prof. Mrio Andr
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure SomaNum;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.SomaNum;
var Value1, Value2, Total : integer;
begin
Value1 := StrToInt (Edit1.text);
Value1 := StrToInt (Edit2.text);
Label1.Caption := IntToStr(Value1 + Value2);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SomaNum;
end;
end.
24
CEFET-UNED
Prof. Mrio Andr
Execute o programa. digite 4 e 5 e depois pressione o boto Ok. O editor deve aparecer,
mostrando a posio em que o ponto de quebra foi definido, conforme figura 27. Agora o ponto
de quebra tem uma marca verde na mediamiz, mostrando que voc parou neste ponto, e uma seta
verde apontando para a direita aparece na mediamiz, mostrando sua posiao no cdigo. Esta
linha ainda no foi executada, ou seja, a seta verde aponta para a prxima linha de execuo.
Voc pode definir pontos de quebra especiais que interrompero a execuo apenas se
certas condies ocorrerem ou em uma passagem por um loop em particular. Isto pode
ser muito til, se seu cdigo falha somente em certas condies ou no meio de um
loop muito grande. Para definir condies ou contagem de passagem, voc usa a opo
de menu Run | Add Breakpoint para acessar a caixa de dilogo Edit Breakpoint.
25
CEFET-UNED
Prof. Mrio Andr
Opes de Depurao
O menu Run do Delphi contm algumas opes de depurao adicionais, que tm
toques de tecla de atalho correspondentes:
Opo
Run (F9)
Step Over (F8)
Trace Into (F7)
Trace to Next Source Line
(Shift F7)
Runt to Cursor (F4)
Show Execution Point
Program Reset (Ctrk F2)
Significado
Compila e executa iu, no modo depurador, continua a executar a partir desse
ponto.
Executa cada linha do cdigo, mas no entra nas chamadas de funes e
procedures.
Permite que o depurador siga o cdigo de uma chamada de funo ou
procedure.
Segue at a prxima linha executvel.
Executa at a posio corrente do cursor, na janela do editor
Coloca o cursor no ponto de execuo corrente.
Finaliza a execuo do programa
26
CEFET-UNED
Prof. Mrio Andr
Na caixa de dilogo Watch Properties, digite Value1 na caixa de texto Expression. Isto
cria a janela Watch List, onde as variveis controladas e seus valores correntes sero
apresentados, como na figura.
Se a varivel ainda no foi criada ou atribuda, vrias mensagens sero apresentadas,
indicando o status da varivel em que o valor normalmente estaria. A mensagem pode indicar
Process not accessible, o que significa que o cdigo que cria essas variveis no foi iniciado ou
que ele terminou e as variveis foram retiradas da memria.
Voc tambm poderia ver a mensagem Inaccessible here due to optimation, que
normalmente significa que a varivel ainda no foi atribuda. Quando as linhas de cdigo que
tratam da varivel que voc atribuiu uma sentinela so executadas, o valor apresentado na
janela Watch List.
COMENTRIOS
Os comentrios no cdigo fonte so importantes e podem ser feitos atravs dos
seguintes smbolos:
//Comentrio de linha
{ Comentrio de bloco }
(*Comentrio de bloco *)
COMPONENTES
Agora definiremos resumidamente os principais componentes do Delphi, bem como as
suas principais propriedades e eventos. Logicamente, este material no se constitui num manual
dos componentes do Delphi, mas sim visa introduzir o programador nos recursos disponveis.
Antes de iniciarmos as discusses sobre os componentes, iremos nos ater explicao
de algumas peculiaridades das propriedades dos componentes. O primeiro ponto a ser observado,
est no fato de que algumas propriedades s so acessveis em tempo de execuo. Quando
acontecer tal fato, chamaremos ateno a esse respeito.
Finalmente, existem propriedades onde o Delphi incorpora um construtor de valores.
Para estes casos, aparece um boto com reticncias no canto da coluna valor, do Object
Inspector, isto quando a propriedade selecionada. Para abrir o construtor de valores basta um
clique neste boto, ou um duplo clique na propriedade.
27
CEFET-UNED
Prof. Mrio Andr
bom lembrar que ao criarmos uma aplicao, um dos detalhes mais importantes que
devem ser considerados a interface com o usurio. Porque se ela for feia ou difcil de ser
entendida ser mal usada e isto a linha que divide o sucesso do fracasso no ramo de software.
O que se segue uma referncia dos componentes de interface mais utilizados.
Vamos considerar alguns objetos e suas principais propriedades, mtodos e eventos.
Principais Eventos
Os eventos recaem em trs categorias: de Mouse, de teclado, ou de Sistema. A maioria
dos componentes possui um evento padro. Para verificar isso d um duplo clique sobre o
componente no formulrio.Os trs eventos padro so OnChange, OnClick e OnCreate, nesta
ordem.
Se um componente no responder a nenhum deles, significa que ele no possui evento
padro.
Verificao: D um duplo clique na rea do formulrio e ter seu evento padro,
depois faa o mesmo no Label. Insira um Edit e d um duplo clique.
Evento
OnChange
OnClick
OnDblClick
OnEnter
OnExit
OnMouseDown
OnMouseMove
OnMouseUp
OnKeyDown
OnKeyPress
OnKeyUp
OnDragDrop
OnDragOver
OnEndDrag
OnStartDrag
Descrio
Acontece quando o objeto ou seus dados mudam
Clique simples do mouse sobre o componente ou Enter no componente
Duplo clique do mouse sobre o componente
Ocorre quando o componente recebe foco
Ocorre quando o componente perde foco
O boto do mouse pressionado sobre o componente
O ponteiro do mouse passa sobre o componente
O boto do mouse liberado sobre o componente
Uma tecla pressionada. enviado para o componente com o foco de entrada.
Uma tecla de caractere pressionada. Idem
Uma tecla liberada. Idem
O componente est sendo arrastado e solto num local permitido
O componente est sendo arrastado e passa sobre outro componente
O componente est sendo arrastado e solto num local permitido ou no
Acontece quando o usurio comea a arrastar; enviado para o componente que originou
a operao de arrasto.
Principais Mtodos
Mtodo
BringToFront
CanFocus
Create
Destroy
Focused
Free
Hide
SetFocus
SendToBack
Show
Descrio
Coloca o componente na frente dos outros
Determina se o controle pode receber o foco
Cria uma instncia do componente
Destri a instncia. Na verdade, deve-se utilizar o Free
Retorna se o foco est sobre o componente
Destri a instncia e desaloca a memria
Torna o controle invisvel
Faz com que o controle receba o foco
Coloca o componente atrs dos outros
Torna o controle visvel
28
CEFET-UNED
Prof. Mrio Andr
Clear
Propriedades
ActiveControl
Align
AutoScroll
AutoSize
BorderIcons
BorderStyle
BorderWidth
Caption
ClientHeight /
ClientWidth
Color
Cursor
DefaultMonitor
Enabled
Font
FormStyle
Height
HelpContext
HelpFile
Hint
HorzScrollBar
Icon
KeyPreview
Left
Menu
Name
PopupMenu
Position
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.
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
29
CEFET-UNED
Prof. Mrio Andr
ShowHint
Tag
Top
VertScrollBar
Visible
Width
WindowMenu
WindowState
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.
Mtodos
Show
ShowModal
Close
Propriedades
Action
Anchors
Cancel
Associa ao evento OnClick do objeto ao pressionamento da tecla Enter.
Default
ModalResult
Parent...
TabOrder
TabStop
Mtodos
SetFocus
30
CEFET-UNED
Prof. Mrio Andr
Propriedades
AutoSelect
AutoSize
BorderStyle
CharCase
HideSelection
Maxlength
PasswordChar
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 ser
redimensionada quando o tamanho da fonte for alterado.
Determina o tipo da borda do componente.
Determina o se tipo da fonte ser maiscula, minscula ou normal.
Define se o texto perde a seleo ao perder o foco.
Define um limite para a insero de caracteres.
Define qual caractere ser usado para ocultar o texto inserido no componente.
Permite manipular os caracteres inseridos no componente pelo usurio.
Text
Mtodos
Clear
SetFocus
Exerccio
Confeccione um formulrio conforme esquema abaixo:
Funcionalidade:
1. As caixas de edio e os rtulos s ficaro habilitados se Delphi for digitado na 1 caixa
31
CEFET-UNED
Prof. Mrio Andr
2. O boto Ok s ficar habilitado se o texto das ltimas caixas forem iguais e diferentes de
branco.
Altere as seguintes props do formulrio:
Ctl3D = False, BorderStyle = bsDialog, Height = 225, Width = 280 e Position = poCenter
Faa com que as teclas <Enter> ou <Esc> finalize a aplicao.
Faa as trs caixas de edio ficarem sem texto e que para cada caractere digitado um @ seja
exibido.
Faa com o acesso mnemnico aos rtulos ative a caixa de edio correspondente.
Defina o evento para fechamento do formulrio atravs do clique nos botes
Desabilite o boto Ok, os dois ltimos rtulos e as duas ltimas caixas de edio.
Propriedades
Alignment
AutoSize
FocusControl
Layout
ShowAccelChar
Transparent
WordWrap
32
CEFET-UNED
Prof. Mrio Andr
Exerccio:
Crie um formulrio conforme lay-out abaixo
Para as opes de Adiciona na Posio e Apaga Linha, a Caixa de Edio Linha, deve
ser preeenchida com um valor menor que a da Caixa de Edio Total de Linhas
A opo Apaga Tudo s poder ocorrer aps confirmao do usurio
Antes de Carregar e Salvar Arquivo, verificar se o nome do arquivo foi fornecido na
Caixa de Edio Arquivo
A Caixa de Edio Total de Linhas dever se alterar obviamente toda vez toda vez que
o contedo do memo for alterado e o seu valor no pode ser alterado pelo usurio
Propriedades
Lines
MaxLength
ReadOnly
ScrollBars
WantReturns
WantTabs
Define a tecla Tab como tabulao ou mudana de foco. Caso falso podese utilizar CTRL+TAB para produzir o efeito desejado.
Mtodos
LoadFromFile
SaveToFile
33
CEFET-UNED
Prof. Mrio Andr
Propriedades
AllowGrayed
Define caso verdadeiro, trs estados possveis para o checkbox: checked (ligado),
unchecked (desligado) e grayed (parcial). Caso falso, dois estados: checked (ligado) e
unchecked (desligado).
Define se o componente est ligado ou no, caso tenha apenas dois estados.
Checked
State
Exerccio
34
CEFET-UNED
Prof. Mrio Andr
Propriedades
Define se o componente est ligado ou desligado.
Checked
Exerccio
Confeccionar uma aplicao conforme lay-out abaixo. Insira primeiro o GroupBox e
depois os botes de rdio. Observe que interessante definir acessos mnemnicos para os
botes.
Funcionalidade: Para Nada a Fazer, tire a marca do boto assinaloado e para O que
Fazer exiba como mensagem o Caption do boto assinalado.
35
CEFET-UNED
Prof. Mrio Andr
Propriedades
Define uma lista de Strings que aparece no componente.
Items
MultiSelect
Sorted
Mtodos
Clear
LoadFromFile
SaveToFile
Propriedades
Define uma lista de Strings que aparece no componente.
Items
Sorted
Text
Mtodos
Clear
LoadFromFile
SaveToFile
Exemplo:
Insira uma ComboBox num formulrio limpo e defina as propriedades:
Sorted = True, Style = csSimple (redimensione a caixa para poder ver parte dela)
No evento OnKeyPress, defina
If key = # 13 then
// Se teclou <Enter>
Begin
if (ComboBox1.Text <> ) and (ComboBox1.Items.IndexOf(Combox1.Text) < 0) then // no duplic.
ComboBox1.Items.Add(ComboBox1.Text);
ComboBox1.Text := ;
Key := #0;
End;
Assim, toda vez que o <Enter> for teclado, a digitao realizada ser inserida na ComboBox.
36
CEFET-UNED
Prof. Mrio Andr
Exerccio:
Utilizando a figura abaixo, produzir um aplicao que apresente a seguinte funcionalidade:
pressionamento do boto Nova, habilita o boto Adicionar, seta o foco da aplicao na Caixa
de texto, desabilita o boto Nova e Excluir.
37
CEFET-UNED
Prof. Mrio Andr
Propriedades
Define uma lista de Strings que aparece no componente.
Items
Sorted
Text
Mtodos
Clear
LoadFromFile
SaveToFile
Propriedades
Align
Caption
Propriedades
Items
ItemIndex
Columns
38
CEFET-UNED
Prof. Mrio Andr
Exerccio 1:
Utilizando-se da interface mostrada na figura abaixo, produzir uma aplicao que apresente a
seguinte funcionalidade:
Exerccio 2:
Defina uma aplicao para conforme o lay-out abaixo.
Linguagem e Verbo so GroupBox
Adjetivo um RadioGroup
Em tempo de projeto ative um boto de cada agrupamento
Alterar o contedo da Caixa de Edio Frase quando qualquer uma das Caixas for alterada.
39
CEFET-UNED
Prof. Mrio Andr
Propriedades
Align
Bevel...
BorderStyle
Exerccio
Utilizando uma Panel como Barra de Status para exibio de Dicas Flutuantes
Insira um Panel no formulrio limpo e defina as propriedades:
Align
= alBottom
Alignment = ta LeftJustify
BevelInner = bvLowered
Caption
= (nenhum)
Manipulador para o evento OnClick do Panel digite: Panel1.Caption := Application.Hint
V no Object Inspector e exclua a conexo do Panel com esse manipulador.
Atravs do menu Search | Replace, troque as ocorrncias Panel1Click para DoShowHint.
40
CEFET-UNED
Prof. Mrio Andr
Propriedades
Items
Images
41
CEFET-UNED
Prof. Mrio Andr
comandos usualmente tm uma marca de verificao esquerda se estiverem ativos. Neste caso,
selecionar o comando produz a ao oposta.
Itens de Dilogo: So itens de menu que fazem com que uma caixa de dilogo aparea. A real
diferena entre estes e os outros itens de menu que o usurio ter condies de explorar os
possveis efeitos da caixa de dilogo correspondente e de finalmente abort-los atravs do boto
Cancelar da caixa. Esses comandos devem ter uma pista visual, que consiste em trs pontos aps
o texto. Isto no obrigatrio do ponto de vista tcnico, mas to comum que voc no deve
ignorar esta diretriz.
42
CEFET-UNED
Prof. Mrio Andr
Atalhos de Menu
Uma caracterstica comum dos itens de menu que eles contm uma letra
sublinhada, pode ser a 1 ou uma letra do meio. E ao pressionar <Alt> + letra, ativa menu
suspenso correspondente.
Obviamente, cada elemento da barra de menus deve ter uma letra sublinhado diferente.
O mesmo verdadeiro para os itens de menu de um menu suspenso especfico.
Para determinar a letra sublinhada, simples coloque & antes dela na definio do item.
Os itens de menu podem ter tambm teclas de atalho (p.e. <Ctrl> <C>). Para associar
uma tecla de atalho a uma item de menu (menus suspensos as possui) selecione um valor para a
propriedade ShortCut do item atravs das combinaes padres.
Mudando Itens de Menu
Trs propriedades so usadas para modificar um item de menu. Usamos a propriedade
Checked para adicionar ou remover uma marca de verificao dentro do item de menu. A
propriedade Enabled pode usada para dar a cor cinza a um item de menu a fim de que ele no
possa ser selecionado pelo usurio. A ltima a Caption, o texto do item de menu.
Uma quarta operao com item de menu seria a sua remoo ou torn-lo invisvel. Isso
facilmente realizado mudando-se o valor da prop. Visible para False. Sugere-se que voc
evite esta operao, pois o usurio pode confundir-se. prefervel desabilit-lo temporariamente.
Associando Eventos a Itens de Menu
A associao de um evento a um item de menu fita semelhante associao de um
evento a qualquer componente. A nica diferena que ele no visto como um componente,
logo devemos selecion-lo utilizando caixa de seleo do Obj Inspector ou utilizarmos o MD.
Exerccio -1
1. Insira um Label no formulrio e limpe sua legenda
2. Insira um MainMenu com 1 Menu suspenso e este com 3 itens de menu quaisquer.
3. Construa o cdigo para que cada vez que selecionarmos um item de menu, a legenda do label
receba a sua descrio
4. Execute a aplicao e depois remova os compoentes inseridos no formulrio
Exerccio 2:
Confeccione a estrutura de Menu conforme layouts abaixo, observando os nomes dos menus
suspensos e dos itens de menu.
Para obtermos uma janela com melhor aparncia altere a prop Color do formulrio para
clBtnShadow
Viajar
Namorar
Comer
Estudar
Bye Bye
43
CEFET-UNED
Prof. Mrio Andr
Praias
Ctrl P
Montanhas
Florestas
4
Casa da Vov
Regressar
Cinema
Aquilo
Boite
Sof
E Mais Aquilo
Junto com Sogra
No ..
Cobol
Sobre
Assuntos Espec.
Religio
44
CEFET-UNED
Prof. Mrio Andr
ScrollBar (Standard)
Paleta Standart
O componente ScrollBar serve como barra de
rolamento vertical ou horizontal para seleo
e/ou variao de um parmetro.
O usurio pode modificar o valor representado pelo scrollbar de duas formas: clicando
nas setas de incremento/decremento ou diretamente na barra. A primeira ao faz com que o
valor representado sofra uma modificao menor (SmallChange) enquanto a segunda gera uma
maior (LargeChange).
Os limites inferior e superior da faixa de valores vlidos para a ScrollBar so dados por
Min e Max respectivamente. Estes limites representam o valor quando o cursor da barra estiver
em cima ou esquerda (Min) ou em baixo ou direita (Max).
O controle prov fcil e eficiente navegao por longa lista de itens ou grande
quantidade de informao que no podem ser totalmente visualizadas nas suas reas de exibio.
Pode tambm ser usado como entrada de dados ou como mostrador de informaes (valores
numricos).
Principais Propriedades
Propriedade
Kind
LargeChange
Max
Min
Position
SmallChange
Descrio
Define a direo da barra de rolagem
Indica a variao da rolagem feita sem o uso das setas de movimentao
Maior valor do ScrollBar
Menor valor do ScrollBar
Indica a posio atual do srollbar
Indica a variao da rolagem feita com o uso das setas de movimentao
Principais Eventos
Evento
OnChange
OnScroll
Descrio
Disparado quando o contedo da propriedade position alterado pelo usurio, e ocorre
imediatamente aps o OnScroll
Ocorre quando feita a rolagem do ScrollBar
Principais Mtodos
Mtodos
SetParams
Descrio
Modifica os valores das propriedades Position, Min e Max de uma s vez
45
CEFET-UNED
Prof. Mrio Andr
Objetivo
Chr
Ord
Round
Trunc
Int
IntToStr
IntToHex
StrToInt
StrCopy
FloatToDecimal
FloatToStr
FloatToStrF
StrToFloat
TextToFloat
DateToStr(Date: TdateTime)
DateTimeToStr(DateTime:
TDateTime)
StrToDateTime(const S:
String)
FormatFloat(const Format:
string; Value: Extended):
string
46
CEFET-UNED
Prof. Mrio Andr
EXEMPLOS:
Armazenar a data e hora atuais em uma varivel
Var
InicioAtual : TDateTime;
Begin
Atual := Now;
PROCEDURES E FUNES
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:
47
CEFET-UNED
Prof. Mrio Andr
Observe que agora, depois dos parmetros h um tipo de definio de retorno da funo
(String).
Pode-se utilizar a mesma dica de construo do procedimento, na linha da declarao
tecle CTRL+SHIFT+C (Class Completion) e perceba que o prprio Delphi realiza a construo
da funo dentro da clusula implementation.
Nossa tarefa apenas definir o cdigo a ser realizado pela funo.
function TForm1.Subtrai(X, Y: String): String;
begin
result := FloatToStr(StrToFloat(X)-StrToFloat(Y));
end;
A palavra reservada result o recurso usado pela Object Pascal para estabelecer o
retorno da rotina. No se deve declarar esta varivel, ela declarada no momento da
utilizao da funo.
Supondo a existncia de dois componentes Edit, um componente Button e um
componente Label, esta funo pode ser ativada da seguinte forma:
function TForm1.Button2Click(Sender: TObject);
begin
Label1.Caption := Subtrai(Edit1.Text, Edit2.Text);
end;
Neste caso, o Label recebe o result de subtrai, ou seja, a subtrao dos dados passados
nos parmetros.
CAIXAS DE DILOGO
Podemos utilizar alguns tipos de caixas de dilogo pr-definidas pelo Delphi facilitando
em muito o desenvolvimento pela ferramenta:
48
CEFET-UNED
Prof. Mrio Andr
ShowMessage
A caixa de dilogo ShowMessage declarada internamente pelo Delphi desta forma:
procedure ShowMessage(const Msg: string);
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
Buttons: TMsgDlgButtons
HelpCtx: Longint
49
CEFET-UNED
Prof. Mrio Andr
Application.MessageBox
Uma outra caixa de dilogo o mtodo MessageBox do objeto Application. Esta
funo est definida da seguinte maneira:
function MessageBox(const Text, Caption: PChar; Flags: Longint): Integer;
Onde:
const Text
Caption: PChar
Flags
CAIXAS DE ENTRADA
Podemos obter dados do usurio atravs de caixas de dilogo pr-defindas.
InputBox
50
CEFET-UNED
Prof. Mrio Andr
A funo InputBox retorna um tipo String, que dado digitado pelo usurio na sua utilizao.
Sua definio interna a seguinte:
function InputBox(const ACaption, APrompt, ADefault: string): string;
Onde:
const ACaption
APrompt
ADefault
Exemplo:
InputBox('Ttulo da janela','Descrio','Valor Padro')
InputQuery
A funo InputQuery retorna um tipo Booleano, o dado digitado pelo usurio ser colocado em
uma varivel do tipo string previamente declarada.
Sua definio interna a seguinte:
function InputQuery(const ACaption, APrompt: string; var Value: string):
Boolean;
Exemplo:
if InputQuery('Ttulo', 'Descrio', aux) and (aux <> '') then
Neste exemplo acima, a janela s retornar verdade se houver algum valor digitado e o usurio
clicar no boto OK, caso contrrio o retorno ser falso.
51
CEFET-UNED
Prof. Mrio Andr
Exemplo
Vamos examinar uma unit e exemplicar os principais conceitos:
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
function Soma(X, Y: String): Integer; //definida pelo desenvolvedor
private
{ Private declarations }
aux: Integer; //varivel privada
public
{ Public declarations }
frase: String; //varivel pblica
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
const MAX = 50; //definio de constante
procedure TForm1.Button1Click(Sender: TObject);
var titulo: String; //variavel local
i: Integer;
begin
if (Edit1.Text <> '') and (Edit2.Text <> '') then
//atribui variavel private - aux o retorno da funo soma
aux := Soma(Edit1.Text,Edit2.Text);
titulo := 'Curso de Delphi'; //atribui varivel local
frase := titulo+' Verso 5'; //atribui variavel public
Form1.Caption := frase; //atribui propriedade Caption do form
ShowMessage('A soma dos valores : '+IntToStr(Aux));
for i:=0 to MAX do
Label1.Caption := IntToStr(i);
end;
function TForm1.Soma(X, Y: String): Integer;
begin
result := StrToInt(X)+StrToInt(Y);
end;
end.
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 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
52
CEFET-UNED
Prof. Mrio Andr
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.
COMPONENTES (VCL)
Objeto BitBtn (Boto com figuras opcionais)
Paleta Additional
Importncia: Permite inserir figuras para uma
melhor orientao do usurio, alm de funes
pr-definidas.
Propriedades
Glyph
Kind
53
CEFET-UNED
Prof. Mrio Andr
ModalResult
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.
Propriedades
CharCase
EditMask
PasswordChar
Significado na Mscara
Se um ! aparecer na mscara, caracteres em branco no so armazenados como dados
Marca o incio do bloco que deve ser convertido em letras maisculas, para fechar esse bloco esperase o caractere <
Marca o incio do bloco que deve ser convertido em letras minsculas, para fechar esse bloco esperase o caractere >
Define um caractere literal, ou seja, o caractere que segue a barra invertida \ utilizado como
caractere especial, fixo, que pode ser salvo como parte integrante do valor ou no.
Requer a entrada de caractere alfabtico (A-Z, a-z) nesta posio
Permite a entrada de caractere alfabtico (A-Z, a-z) nesta posio, mas no requer
Requer a entrada de caractere alfanumrico (A-Z, a-z, 0-9) nesta posio
Permite entrada caractere alfanumrico (A-Z, a-z, 0-9) nesta posio, no requer
Requer um caractere qualquer nesta posio
Permite um caractere qualquer nesta posio, mas no requer
Requer um caractere numrico (0-9) nesta posio
Permite um caractere numrico (0-9) nesta posio, mas no requer
Permite um caractere numrico, um smbolo + ou -, mas no requer
Usado como separador em dados horrios. Se outro caractere separador definido nos atributos
internacionais do Painel de Controle do seu Sistema, este caractere ser usado ao invs dos dois
pontos
54
CEFET-UNED
Prof. Mrio Andr
/
;
_
<>
Propriedades
Glyph
GroupIndex
AllowAllUp
Flat
Down
Exemplo:
55
CEFET-UNED
Prof. Mrio Andr
Propriedades
AutoSize
Picture
Stretch
Mtodos
LoadFromFile
Para trabalhar com imagens jpg, necessrio acrescentar na clusula uses da interface a
biblioteca jpeg.
Significado
Definio da figura do tipo BMP, ICO, WMF ou EMF
Centraliza a figura em relao ao Quadro (objeto)
Se True, adequa o tamanho da imagem com relao ao objeto
Se True, adequa o tamanho do objeto com relao a imagem
Contrrio da propriedade Strech
Exerccio
56
CEFET-UNED
Prof. Mrio Andr
57
CEFET-UNED
Prof. Mrio Andr
Como no temos rotinas de inicializao, vamos ento, criar um freio, que no exerccio seria a
exibio do formulrio de Senha.
8. Para inserir o formulrio de Senha: Menu File, opo New, Guia Dialog e escolha Password
Dialog
9. Altere os componentes deste formulrio para que fique igual ao exibido acima, com o nome
de Frm_Senha e o defina como disponvel em Project Options.
10. Insira o cdigo abaixo no arquivo .DPR depois do comando Splash.Refresh:
Frm_Senha := TFrm_Senha.Create(Application);
Frm_Senha.ShowModal;
Frm_Senha.Release;
11. Grave e execute a aplicao
StringGrid (Additional)
Utilizado para exibio e edio de uma tabela de strings. A sua apresentao similar
a uma planilha. organizada em linhas e colunas, tendo como elemento bsico as clulas (cells).
Propriedade
Descrio
Clula que est selecionada
Nmero da coluna da clula selecionada
Nmero da linha da clula selecionada
Nmero de colunas (default = 5)
Nmero de linhas (default = 5)
Nmero de colunas fixas
Nmero de linhas fixas
Largura padro das colunas
Altura padro das linhas
Vetor que define a largura das colunas
Vetor que define a altura das linhas
Largura da linha da Grid
Cells
Col
Row
ColCount
RowCount
FixedCols
FixedRows
DefaultColWidth
DefaultRowHeight
ColWidths
RowHeight
GridLineWidth
O StringGrid tem uma propriedade chamada Options, do tipo Set, que permite a
configurao de diversas opes, inclusive a permisso ou no de edio de clulas.
58
CEFET-UNED
Prof. Mrio Andr
Valor
goFixedVerLine
goFixedHorzLine
goVerLine
goHorzLine
goDrawFocusSelected
goRowSizing
goColSizing
goRowMoving
goColMoving
goEditing
goTabs
goRowSelect
goAlwaysShowEditor
goThumbTracking
Descrio
Exibe linhas verticais em colunas fixas
Exibe linhas horizontais em colunas fixas
Exibe linhas verticais
Exibe linhas horizontais
Exibe a clula selecionada em cor de seleo
Permite a mudana de tamanho da linha
Permite a mudana de tamanho das colunas (arrastando as clulas das linhas fixas)
Permite a movimentao de linhas (arrastando as clulas das colunas fixas)
Permite a movimentao de colunas (arrastando as clulas das linhas fixas)
Permite a edio do texto das clulas no fixas
Permite o uso da tecla TAB para a navegao entre as clulas
Seleciona uma linha inteira ao invs da clula corrente
Sempre exibe o editor (somente vlido se goEditing)
Ao usar as scrollbars, o contedo rolado em tempo real
Mscaras de Edio
possvel utilizarmos mscaras de edio para controlar a edio do texto de uma
clula. Para tal, precisamos associar cdigo ao evento OnGetEditMask da seguinte forma:
59
CEFET-UNED
Prof. Mrio Andr
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
ActivePage
Para criar novas pginas, clique com o boto direito no componente PageControl e
escolha New Page.
60
CEFET-UNED
Prof. Mrio Andr
Propriedades
DefaultExt
FileName
Filter
FilterIndex
InitialDir
Options
Title
Se o usurio escolher algum arquivo e confirmar a caixa, execute retorna verdadeiro, caso
contrrio, falso.
Propriedades
Lines
WantReturns
WantTabs
WordWrap
Mtodos
Clear
LoadFromFile
SaveToFile
61
CEFET-UNED
Prof. Mrio Andr
Propriedades
Max
Min
Orientation
Position
Step
Propriedades
Kind
Progress
Propriedades
CommonAVI
Active
Repetitions
62
CEFET-UNED
Prof. Mrio Andr
Propriedades
CalColors
Date
DateFormat
DateMode
Kind
MaxDate
MinDate
Propriedades
Date
FirstDayOfWeek
WeekNumbers
Propriedades
AutoHint
SimplePanel
SimpleText
Panels
Ao utilizar a propriedade AutoHint, pode-se definir o hint dos objetos com duas strings
separadas por pipe (|).
63
CEFET-UNED
Prof. Mrio Andr
A primeira string ser utilizada como hint local, a segunda como hint na barra de status.
Inserindo dicas no StatusBar
Para obter esse efeito, so necessrias duas etapas:
1. Inserir componentes no formulrio e definir uma ou duas dicas atravs da propriedade Hint.
2. Escrever o cdigo para evento OnHint do componente ApplicationEvents
Praticando:
1. Insira alguns componentes no formulrio e defina a prop. Hint dos mesmos.
J vimos que a dica instantnea do componente pode ser = ou <> do StatusBar.
2. Insira o componente ApplicationEvents
3. Defina o cdigo abaixo no seu evento OnHint:
procedure Tform1.ApplicationEvents1Hint (Sender : TObject);
begin
Statusbar1.Panels[0].Text := Application.Hint;
end;
64
CEFET-UNED
Prof. Mrio Andr
StatusBar1.Panels[0].Text := DateToStr(Data_Hora);
StatusBar1.Panels[1].Text := TimeToStr(Data_Hora);
{Outra forma de exibio
StatusBar1.Panels[0].Text := DateToStr(Data_Sys);
StatusBar1.Panels[1].Text := TimeToStr(Hora_Sys);
}
{Outra forma de exibio
StatusBar1.Panels[0].Text := DateToStr(Date); // No necessrio criar variveis
StatusBar1.Panels[1].Text := TimeToStr(Time);
end;
Observao:
Se o intervalo for grande (p. ex. 60000 = 1 minuto) para aparecer logo a data e a hora
nos SubPaineis, ative o evento acima dentro do evento OnCreate do formulrio ou, se possvel,
compartilhe este evento com ele.
Se configurarmos a prop. Enabled do componente Time em False, o seu evento
OnTimer no ocorrer.
Dica:
Sempre que voc usar um StatusBar, preencha o resto do formulrio com uma caixa de
rolagem (ScrollBox da paleta Additional) e defina a sua prop. Align para alClient. Caso
contrrio, se o usurio diminuir o formulrio o bastante para que as barras de rolagem
apareo, estas se misturaro com o StatusBar.
Propriedades
Flat
Images
HotImages
ShowCaptions
Para adicionar botes ou separadores na ToolBar, clique com o boto direito sobre o
componente e escolha New Button ou New Separator.
65
CEFET-UNED
Prof. Mrio Andr
TRATAMENTO DE EXCEES
Quando criamos e executamos nossos programas, estamos sujeitos situaes de erros
em tempo de execuo, a isto denominamos exceo.
As excees devem ser tratadas de maneira a no permitir:
Travar a aplicao
Emitir mensagens tcnicas ao usurio leigo
Deixar o SO instvel
Quando uma exceo ocorre, o fluxo de controle automaticamente transferido para
blocos de cdigo denominados handlers(Manipulador de evento). de excees, definidos atravs
de comandos especficos do Object Pascal.
No Object Pascal, uma exceo uma classe. A definio de excees como classes
permite agrupar excees correlatas. Esse agrupamento feito atravs da prpria hierarquia de
classes, de modo que podemos ter vrias classes dependentes de uma nica.
66
CEFET-UNED
Prof. Mrio Andr
O COMANDO TRY-EXCEPT
Podemos tratar as excees atravs do comando try-except.
Sua sintaxe:
try
<comandos a serem executados>
except
<bloco de exceo>
end; //finaliza o bloco
67
CEFET-UNED
Prof. Mrio Andr
A CONSTRUO ON-DO
try
Abre(Arq);
while not Fim(Arq) do
processa(Arq);
except
on EInOutError do //erro de entrada e sada
begin
Showmessage(Problemas...);
Fecha(Arq);
end;
on EdivByZero do //erro de diviso de n inteiro por zero
Showmessage(Erro ao dividir por zero);
on EconvertError do //erro de converso de tipos
Showmessage(Erro de converso de tipos de dados);
end; //bloco try
Podemos ainda definir utilizando a clusula on-do com um handler genrico usando
else, da seguinte forma:
try
Processa;
except
on Exceo1 do Trata1;
on Exceo2 do Trata2;
else TrataOutras;
end;
Descrio
EaccessViolation
Ocorre quando se tenta acessar uma regio de memria invlida (ex: tentar
atribuir valor a um ponteiro cujo contedo nil).
EconvertError
EdivByZero
EinOutError
EintOverFlow
EinvalidCast
EinvalidOp
EinvalidPointer
EoutOfMemory
EoverFlow
ErangeError
ocorre quando uma expresso excede os limites para a qual foi definida (ex:
tentar atribuir 11 ao ndice de um vetor que pode ir no mximo at 10).
EstackOverflow
68
CEFET-UNED
Prof. Mrio Andr
Stack.
Eunderflow
EzeroDivide
O COMANDO TRY-FINALLY
H um outro comando cuja sintaxe comea com try. Este controle de finalizao nos
permite lidar de forma estruturada com as situaes em que alocamos algum tipo de recurso e,
haja o que houver, precisamos depois liber-lo.
<aloca o recurso>
try
<usa o recurso>
finally
<libera o recurso com ou sem exceo>
end;
Try
abrir arquivo
algumas operaes
fechar arquivo
except
...
abrir arquivo
Try
algumas operaes
finally
fechar arquivo
69
CEFET-UNED
Prof. Mrio Andr
Outro Exemplo:
procedure TForm1.Button1Click(Sender: Tobject);
var i, aux:integer;
begin
aux := 500;
try
{inicio do bloco try-finally.
Screen controla uma serie de recursos do sistema operacional
neste exemplo, muda-se a aparencia do cursor para ampulheta}
Screen.Cursor := crHourGlass;
try//inicio do bloco try-except
for i:=0 to aux do
begin
Edit1.Text := IntToStr(i);
Application.ProcessMessages;
{O mtodo ProcessMessages necessrio para forar que as
mensagens do windows sejam processadas, desenhando o numero
no Edit. Sem ele, apenas o valor final seria visto.}
end;
except
Showmessage('Ocorreu um erro.');
end;//fim do bloco try-except
finally
Screen.Cursor := crDefault;
end;//fim do bloco try-finally
end; //fim da procedure
CLASSE EXCEPTION
A classe Exception tambm possui o objeto E, que recebe o valor do objeto exceo
passado pela instruo raise
Observe o cdigo abaixo:
Begin
Try
Resultado := A div B;
Except
On EDivByZero do
70
CEFET-UNED
Prof. Mrio Andr
Begin
Resulatdo := 0;
MessageDlg(Diviso por zero corrigida, mtError, [mbok], 0);
End;
On E: Exception do
Begin
Resultado := 0;
MessageDlg(E.Message, mtError, [mbok], 0);
End;
End;
End;
71
CEFET-UNED
Prof. Mrio Andr
Descrio
Especifica uma extenso, padro, de arquivo que juntada automaticamente ao nome de
arquivo digitado na rea do nome do arquivo na caixa de dialogo.
Determina o estilo da caixa de dilogo de seleo do arquivo. (Obsoleto.)
FileEditStyle mantido para compatibilidade com verses mais velhas de Delphi.
Devolve o nome e o caminho do diretrio completo do arquivo mais recentemente selecionado.
Vetor que contem o nome e o caminho completo de todos os arquivos selecionados.
Fornece uma lista drop-down para preencher com extenses de arquivos que serviram de filtro
nas selees do arquivos. Ex: OpenDialog1.Filter := 'Arquivos de Texto (*.txt)|*.TXT'
Determina qual o tipo de arquivo ser o padro na lista da propriedade Filter anterior.
Mantm uma lista de arquivos previamente selecionados. (Obsoleto.)
HistoryList mantido para compatibilidade com verses mais velhas de Delphi.
Determina o diretrio atual quando a caixa de dilogo abre. Se esta opo estiver vazia o
Opendialog sempre vai abrir no diretrio do programa ou no ltimo diretrio utilizado.
Define caractersticas da caixa de dilogo. Na tabela abaixo esto discriminadas todas as
opes.
Texto que fica na barra de ttulo da caixa de dilogo.
72
CEFET-UNED
Prof. Mrio Andr
Opes
Valor
Significado
ofAllowMultiSelect
ofCreatePrompt
ofExtensionDifferent
ofFileMustExist
ofHideReadOnly
ofNoChangeDir
ofNoDereferenceLinks
ofNoLongNames
ofNoNetworkButton
ofNoReadOnlyReturn
ofNoTestFileCreate
ofNoValidate
ofOldStyleDialog
ofOverWritePrompt
ofPathMustExist
ofReadOnly
ofShareAware
ofShowHelp
Descrio
OnClose
OnShow
OnFolderChange
OnSelectionChange
OnTypeChange
73
CEFET-UNED
Prof. Mrio Andr
Principais Mtodos
Mtodos
Descrio
Execute
Abre a caixa de dilogo do OpenDialog e devolve true quando o usurio seleciona um arquivo dar um
Clique para abrir o arquivo. Se o usurio clicar Cancele retorna False.
ColorDialog
O Componente TColorDialog exibe uma caixa de dilogo padro do Windows para
selecionar cores. A caixa de dilogo no aparece at que seja executado o mtodo Execute.
Quando o usurio seleciona uma cor e clica o OK, a caixa de dilogo fecha e a cor selecionada
armazenada na propriedade de Cor.
Principais Propriedades
Propriedade
Descrio
Color
CustomColors
Retorna a cor selecionada. A cor padro clBlack. Quando o usurio seleciona uma cor na
caixa de dilogo e clica o OK, a cor selecionada se torna o valor da propriedade de Cor.
Determina quais cores personalizada iniciam na caixa de dilogo. Cada cor personalizada
representada com uma string na forma ColorX=HexValue. Por exemplo, a seguinte string
determina a primeira cor personalizada: ColorA=808022
Options
Opes
Valor
Significado
cdFullOpen
cdPreventFullOpen
cdShowHelp
cdSolidColor
cdAnyColor
Descrio
OnClose
OnShow
74
CEFET-UNED
Prof. Mrio Andr
Principais Mtodos
Mtodos
Descrio
Execute
Abre a caixa de dilogo do OpenDialog e devolve true quando o usurio seleciona um arquivo dar
um Clique para abrir o arquivo. Se o usurio clicar Cancele retorna False.
PrintDialog
O Componente TPrintDialog exibe uma caixa de dilogo padro do Windows para
enviar trabalhos para uma impressora. O caixa de dilogo de impresso modal e no aparece
at que seja chamada pelo mtodo Execute.
Principais Propriedades
Propriedade
Descrio
Collate
Copies
FromPage
MaxPage
MinPage
Options
PrintRange
PrintToFile
ToPage
Opes
Valor
Significado
PoDisablePrintToFile
PoHelp
PoPageNums
PoPrintToFile
PoSelection
PoWarning
75
CEFET-UNED
Prof. Mrio Andr
Principais Eventos
Evento
Descrio
OnClose
OnShow
Principais Mtodos
Mtodos
Descrio
Execute
Abre a caixa de dilogo do OpenDialog e devolve true quando o usurio seleciona um arquivo dar um
Clique para abrir o arquivo. Se o usurio clicar Cancele retorna False.
Propriedades
Enabled
Interval
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.
listar
arquivos
de
Propriedades
76
CEFET-UNED
Prof. Mrio Andr
FileEdit
FileName
Mask
Define uma caixa de edio (TEdit) que exibir o arquivo atualmente selecionado.
Define o nome do arquivo selecionado. Vlido em tempo de execuo.
Define mscaras de filtro (separadas por ponto e vrgula) para a exibio dos arquivos.
Propriedades
DirLabel
FileList
os
drives
Propriedades
DirList
Propriedades
FileList
Filter
77
CEFET-UNED
Prof. Mrio Andr
Gauge
Paleta: Samples
Utilizado para dar idia
progresso na execuo de uma tarefa.
Importncia:
do
Propriedades
Significado
MinValue
MaxValue
Progress
BackColor
ForeColor
Kind
ShowText
Valor mnimo
Valor mximo
Valor atual
Cor da rea no preenchida
Cor da rea preenchida
Tipo da figura (barra horizontal ou vertical, crculo, etc)
Define se o valor em percentagem ser exibido
TrackBar
Paleta: Win32
Importncia: Componente utilizado para a
seleo de valores inteiros dentro de uma faixa
Propriedades
Significado
Orientation
Min
Max
Position
TickStyle
TickMarks
78
CEFET-UNED
Prof. Mrio Andr
PageSize
LineSize
SelStart
SelEnd
Determina o incremento que deve ser dado quando as teclas PgUp e PGDn forem pressionadas
Determina o incremento que deve ser dado quando as setas forem pressionadas
Posio de incio do preenchimento
Posio de trmino do preenchimento
CheckListBox
Paleta: Additional
Importncia: Possui toda a funcionalidade do
ListBox exibindo ao lado do item uma
CheckBox.
Este componente bastante til quando
queremos
exibir uma lista extensa de
CheckBoxs e o espao para faz-lo escasso.
Muito encontrado em programas de SetUp.
Propriedades
Significado
Checked[n]
State[n]
AllowGrayed
Eventos
Descrio
OnClickChecked
ListView (Win32)
Paleta: Additional
Importncia: Componente que permite exibir
de vrias maneiras uma lista de itens.
Propriedades
Significado
ViewStyle
LargeImages
SmallImages
Items
79
CEFET-UNED
Prof. Mrio Andr
Columns
ShowColumnHeaders
ColumnClick
IconOptions
SortedType
Selected
ImageList
Paleta: Win32
Importncia: O componente ImageList permite
que trabalhemos com listas de imagens em
bitmap e a apresenta quando solicitado, sendo
um componente no visual.
Ele extremamente til, mas quase todo a sua operao depende de outros
componentes. Por exemplo, as diversas imagens que aparecem em componentes de visualizao
em lista ou em rvore ou numa ToolBar esto em listas de imagens.
80
CEFET-UNED
Prof. Mrio Andr
Propriedades
Significado
81
CEFET-UNED
Prof. Mrio Andr
Images
StateImages
Items
Lista de Imagens que contm os bitmaps que representam os prprios cones, como as
imagens dos discos no Explorer
Lista de Imagens especiais que indicam que um item encontra-se num estado especfico.
Estado este que o programador define. Geralmente atravs de um ImageList e Caixa de
Edio StateIndex do TreeView Items Editor.
Permite a edio dos ns da rvore. Possui um conjunto de mtodos como Add, AddChild,
AddFirst que tambm permite a incluso de ns na rvore. Cada n considerado um
objeto do tipo TTreeNode.
As principais propriedades dos ns so:
ImageIndex informa qual imagem da lista de imagens representa o n.
SelectIndex qual imagem da lista ser exibida se o n for selecionado.
StateIndex da mesma forma, um ndice da StateImages. Se for <> -1, a
imagem ser exibida esquerda da imagem normal.
ShowButtons
ShowLines
ShowRoot
ReadOnly
Eventos
OnEditing
OnEdited
Significado
Se ReadOnly = False, ocorre quando o usurio edita o ramo da rvore
Ocorre quando o usurio termina a edio
Animate
Paleta: Win32
Importncia: Componente capaz de exibir um
AVI, o qual representa um formato de arquivo
multimdia com imagens e sons, mas este
componente apenas exibe as imagens.
Propriedades
Active
AutoSize
Center
FileName
FrameCount
Repetitions
Significado
Indica se a animao esta sendo exibida ou no
Ajusta automaticamente o tamanho do componente ao tamanho da imagem
Centraliza a animao
Nome do arquivo AVi
Nmero de Frames da animao
Nmero de repeties quando a animao for executada.
O valor zero indica repeties indefinidas
DateTimePicket
82
CEFET-UNED
Prof. Mrio Andr
Paleta: Win32
Importncia: Componente que permite a seleo visual
de datas ou horas
Propriedades
Time
Date
DateMode
DateFormat
Kind
ShowCheckbox
Check
Significado
Hora selecionada
Data Selecionada
A forma como a data poder ser selecionada [dmComboBox, dmUpDown]
Formato da Data [dfShort, dfLong]
Seleciona o componente para Data ou Hora [dtkDate, dtkTime]
Exibe um CheckBox
Indica se o CheckBox esta selecionado
83
CEFET-UNED
Prof. Mrio Andr
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
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);
84
CEFET-UNED
Prof. Mrio Andr
if (A >
begin
B :=
X :=
end
else
begin
A :=
Y :=
end;
B) then
B + 1;
B + A;
A - 1;
Y + B;
COMANDO CASE
O comando case..of oferece uma alternativa para comandos if-then-else com um
grande nmero de testes. Por exemplo:
case Key of
A..z:
Label1.Caption := Letras;
0..9:
Label1.Caption := Nmeros;
+, -, *, /: Label1.Caption := Operador
else
Label1.Caption := Caracter especial;
end; //fim do case
COMANDO REPEAT
O comando repeat..until uma opo para estruturas de repetio. A grande 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;
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);
85
CEFET-UNED
Prof. Mrio Andr
end;
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;
COMANDO BREAK
O comando break usado para alterar o fluxo normal de comandos de repetio, o
controle desviado para o comando seguinte ao comando repetitivo.
frase := Edit1.Text;
for i:=1 to length(frase) do
begin
if frase[I] = 'A' then
break;
aux := aux + frase[I];
end;
Label1.caption := aux; //Label1 recebe o conteudo de frase at a letra A
COMANDO WITH
O comando with..do usado para abreviar a referncia a campos de registro, ou a
mtodos, e propriedades de um objeto.
begin
Form1.Caption := Senac;
Form1.Color := ClBlue;
Form1.Top := 95;
end;
//Equivalente :
with Form1 do
begin
Caption := Senac;
Color := ClBlue;
Top := 95;
end;
86
CEFET-UNED
Prof. Mrio Andr
Apndice B - DICAS
CRIAR UM HOTLINK
Podemos criar um link para a Internet dentro do Delphi atravs da funo ShellExecute.
Supondo que a propriedade Caption de um label seja um endereo web vlido
(http://www.fulanodetal.com.br) podemos inserir em seu evento OnClick o seguinte cdigo:
ShellExecute(Handle, 'open', pchar(Label1.Caption), nil, '',SW_SHOWNORMAL);
ENVIAR UM MAIL
Podemos utilizar a funo ShellExecute para abrir o programa de mail do usurio e
preparar seu envio.
ShellExecute(Handle,
,SW_SHOWNORMAL);
open,
mailto:fulano@provedor.com.br,
nil,
Caso queira colocar um subject padro na construo do e-mail utilize a palavra subject
da seguinte forma:
ShellExecute(Handle,
open,
?subject=Pergunta, nil, ,SW_SHOWNORMAL);
mailto:fulano@provedor.com.br
87
CEFET-UNED
Prof. Mrio Andr
DATAS
As datas so um tipo de dados TDateTime, internamente so armazenadas como
nmeros de ponto flutuante (Double). A parte inteira indica a data, em nmero de dias, contados
a partir de 30/12/1899 e a fracionria, as horas. Pelo fato de serem armazenadas como Double,
pode-se subtrair, somar e estabelecer comparaes. Por exemplo:
var
DataIni, DataFim : TDateTime;
Dif : Single;
begin
Dif := DataFim DataIni; //diferena em dias entre as datas
DataIni := DataIni+10; //acrescenta + 10 dias na data
end;
Para saber a hora de determinada data, multiplica-se a parte fracionria por 24:
Frac(DataIni) * 24;
Podemos ainda comparar as datas com os operadores < e >. Caso no seja necessrio
a comparao com a hora, basta converter a data para um inteiro e efetuar a comparao:
if Trunc(Data1) < Trunc(Data2) then
FormatDateTime(const
Format:
string;
DateTime:
TDateTime):
string;
Exemplo:
Label1.Caption := FormatDateTime('dddd, d "de" mmmm "de" yyyy', date);
REDUZINDO TESTES IF
A expresso:
if A = 10 then
B := True
else
88
CEFET-UNED
Prof. Mrio Andr
B := False;
Pode-se tambm em tempo de projeto clicar na form com o boto direito e escolher a
opo View as Text, procurar o objeto e a hint desejada e alter-la:
Hint := Primeira linha do hint#13segunda linha do hint;
Para voltar ao Form clique com o boto direito e escolha View as Form.
CONES
O Delphi possui um conjunto de cones e imagens em uma pasta padro:
C:\Arquivos de programas\Arquivos comuns\Borland Shared\Images
89
CEFET-UNED
Prof. Mrio Andr
EXECUTAR UM PROGRAMA
Para executar um programa use a API WinExec.
WinExec(calc.exe, SW_SHOWNORMAL);
LINKS
Alguns links interessantes:
Nacionais
http://www.clubedelphi.com.br/
http://www.delphibrasil.eti.br/
http://clubedodelphi.com.br
http://www.inprise.com.br/
Outros sons:
SYSTEMSTART
SYSTEMEXIT
SYSTEMHAND
SYSTEMASTERISK
SYSTEMQUESTION
SYSTEMEXCLAMATION
SYSTEMWELCOME
SYSTEMDEFAULT
necessrio incluir as biblioteca mmsystem na clusula uses da Inteface
90
CEFET-UNED
Prof. Mrio Andr
91
CEFET-UNED
Prof. Mrio Andr
Tamanho : Single
Cor : String
Alimentar
Respirar
Um exemplo de herana seria criar as classes TSerHumano e TAnimais como
descendente de TSerVivo, desta forma, a classe descendente herda todas as caractersticas e
aes criadas na classe ascendente podendo acrescentar particularidades sua estrutura,
exemplo:
TSerHumano
Tamanho : Single
Cor : String
Forma : String
Vestimenta : String
CorCabelo: String
Sexo : Char
Alimentar
Respirar
Falar
Caminhar
TAnimais
Tamanho : Single
Cor : String
Forma : String
NPatas : Integer
Cauda : Boolean
Alimentar
Respirar
EmitirSom
92
CEFET-UNED
Prof. Mrio Andr
: TSerHumano;
: TAnimais;
begin
Edileumar.Tamanho := 1.70;
Edileumar.Forma := Magro;
Edileumar.Sexo := M;
Jorgina.Tamanho := 1.60;
Jorgina.Sexo := F;
Jorgina.CorCabelo := Castanhos;
Edileumar.Falar;
Jorgina.Caminhar;
Cachorro.Tamanho := 0.60;
Cachorro.Cauda := True;
Cachorro.Alimentar;
end;
Essa introduo vem apenas ilustrar os principais conceitos: Propriedades, eventos e mtodos,
sendo amplamente utilizados durante o curso.
A herana um recurso importante implementado na OO, no sendo o nico, obviamente.
Polimorfismo, encapsulamento entre outros, so conceitos que a principio voc no precisa saber
para manipular a ferramenta (Delphi), mas em um futuro prximo ser muito importante.
93
CEFET-UNED
Prof. Mrio Andr
REFERNCIA BIBLIOGRFICA
Dominando o Delphi 7 A Bblia Marco Cant
Makron Books, 2000
Programao Orientada a Objetos usando o Delphi 3 Faial Farhat de Carvalho
Editora rika
Delphi4 Curso Completo Marcelo Leo
Axcel Books do Brasil
Delphi4 Senac Adilson Resende
Editora SENAC Belo Horizonte
365 Dicas de Delphi Bruno Sonnino
Makron Books
94