Baixe programação delphi e outras Notas de estudo em PDF para Biotecnologia, somente na Docsity! “Programação DELPHI
A.
mo Ê Po (do Uva See
EM A ne é ] EUA a
por P ora GU O, Pega et ar al Mi
e WS psd pera
Poe pe br debuoo” papas ud
t a” Age ANA
ú :
Rs ppa dor Rs O)
o fermere valo) suquepivo do;
Jd = o) ; » & Et
e RE CENT PA
de PE Lido ELAS NA své lero)
o : Rise be céu
b
Wings
Pop assar
ELA EM vo ANVA
EITeu +E x pis Curar Rua pº Nr AO Umds ERA a :
e vo tê digita a E E a
E
So 35 sado E o a |
18.
19.
20.
20:
. Usando Data Modules.
. DataBase Desktop
« Guia BDE cs.
- Guia Data Control.
- Guia Data Access
. Acessando Banco de Dados.
. Pequena Aplicação usando Findkey e FindField
. SQL - Comandos.
ANSICOMPARETEXT ese estimate
ANSILOWERCASE / ANSIUPPERCASE.
COPY...
LENGTH.
QUOTEDSTR
TRIM .....
INSERT E:
DELETE.. 30
Menus am ii Sd
MENUS POPUP
Janelas de Diálogo:
MESSAGEDLG.
SHOMESSAGE.
INPUTBOX...
MESSAGEBOX
Conectividade em Delphi.
Delphi & BDE,
BDE & ALIAS .
Criando um Data Modul
DML (Data Manipulation Language) .
DDL (Data Manipulation Language) :
A instrução SELECT ..
CERUSULAS so masi
OPERADORES MATEMÁTICOS .
OPERADORES LÓGICOS..........
OPERADORES RELACIONAIS.
PREDICADOS....
COMPARAÇÃO
BETWEEN...
EXISTS..:
LIKE.
IS NULL.
Relatórios com RAVE Reports
Apresentando o Rave Reports.
Utilizando o Rave Reports
Executando o Relatório .....
to
: A Alea e A
Ser vt” Saver di
Romao LB7.Qu0ud A TAP
pare
possmodonh > Ea Aro a dela VE mmol JSo verá
sk
dela que esta
1. Introdução é
O Delphi é uma poderosa ferramenta de desenvolvimento criado pela Borland Software Corporation e tem como
linguagem base o Pascal. Chegou aa mercado nos últimos tempos permitindo desenvolver aplicações baseadas nos sistemas
operacionais Windows & agora (meados do ano 200970 SO Linux (Kylix- Delphi para Linux),
Em sua baz;
gem trás consigo uma tecnologia de compilação moderna é eficiente produzindo executáveis rápidos e
pequenos. Também desenvolve aplicações orientadas a objetos e de desenvolvimento de Banco de Dados
Com o uso de IDE (ntestated Development Environment ambiente de desenvolvimento integrado), um conjunto de
elementos. ferramentas de desenho e criaç faces e banco de dados. o Delphi permite e criação de aplicações com
poucas linhas de codificação necessárias para a elaboração da interface com o usuário. Ele também oferece tertamentas de
banco de dados para o desenvolvimento de aplicações cliente/servidor (clientiserver)
ão de inte
Até a versão Delphi G se utilizava o Object Pascal como linguagem de programação padrão. porém com o lançamento
do Delphi 7 a Borland estabeleceram que a parir de agora à linguagem por trás do Delphi se chama Delphi mesmo
O Delphi trabalha com à conceito dé projeras. ou seja. toda vez que você começa a desenvolver uma aplicação. está na verdade
criando um projeto que é composto por farmulárias (forms), rotinas. objetos ete
Internet /
última x
ta mais do que nunea o Delphi 7 trás muitas novidades para desenvolvimento de programas para Internet, Nesta
são do Delphi a Borland investiu forrémente nesta área. incorporando as suites de componentes Indy e IntarWeb
(componentes terceirizados)
Com a suíte IntraWeb. pade-se desenvolver aplicações Web para rodar um servidor Apache com muito mais facilidade.
também podem ser criados arquivos [UML e o editor feconhece e destaca os tags.
Os componentes Web Services com XML (Bi/Snap) apresentam melhoramentos e a suíte Indy está completa. permitindo criar
cam mais facilidade. rodo tipo de upticação bascada em sackets que se possa imaginar
NET Nesta nova versão vem com um módulo de preview para plataforma .NET e permite que seja gerado código
intermediário (IL) para rodar dentro do framencork NET, Por enquanto o que veio no preview é um compilador (decilexc) que
permite à criação de código NET usando a linguagem Delphi
As diversas funcionalidades c as facilidades da linguagem de programação tarnam o Delphi adequado para o desenvolvimento
de praticamente qualquer tipo de aplicação. desde pequenos programas até grandes sistemas miulti-usuário. que lidam com
Banco de Dados à nível de Oracle, SOL server: Interbase.
Vambem outro fator importante na linguagem Delphi é que todaa API do Windows (Win3
diretamente em nossas aplicações
) está disponível e podemos usá-la
2. As Quatro Versões do Delphi 7
e Standard
*: Professional
- Enterprise
e Architect
As quatro versões estão em ordem cresceme de abrar
adquitides separadamente e depois instalada e compilada na versão do Delphi que o usuário possui
:ências de facilidades ( & preços), Aleumas facilidades podem ser
Salvo” pr tE CORO.
Os Forms servem de base para colocação de componente:
constituída
A Paleta de Componentes
« É subdividida em diversas
ão do layout com o usuário, também acesso à banco de
mos centenas de componentes que nos o
sentam componentes usados para a
Nela encontr:
barras de botões que re
dades e serviços eb,
CNMARA SO
“HEade ADiagram fo
ender: Tóbje:
- HParame: In
procedure TFormi.ButtonlClick(ã
begin Msg: Cardinal; +8Patam: Int
Fertacm
Object TreeView
Este Objeto é uma forma alternativa para visualização e seleção dos
componentes de um form. Os componentes são apresentados numa árvore montada de
acutdo com o agrupamento lógico entre eles. Trabalha em sintonia junto com à Object
Inspector e à Form Desiener, uma vez que um componente é selecionado cm uma dessas
tanelas. a mesma seleção é exibida nas outras.
a) Euton!
E] Chet
Nem Bust, Du mesmo que selecionar File/ New
= Open: Abre um arquivo ou prejcios
E Save File: Salva o formutário ou uma unit (arquivo).
ave All; Salva todos os arquivos e o projeto(.dpr)
Open Project: Abre um projeto existente e todos ao arquivos pertinentes.
Add File to Project: Adiciona uma unite tormulário ao projeto ê
Remove File from Project: Remove uma unitou formulário do projeto:
Select Unit From List: Seleciona Unit do projeto.
= Select Form From List:
Seleciona um formulário.
Toggle form/unit: muda o foco do form para a unit.
w Born
escenta um formulário ao projeto.
Run: Conpula, linka e executa o projeto.
Pause: interrompe -um projeto ém e
“Trace Into; percorre o código do projeto uma linha de cada vez e as
chamadas de procedures e funções.
Step Over: Percorre o código linha por tinha e não rastreia as funções.
4. Arquivos
O desenvolvimento de uma ou qualquer aplicação em Delphi gira em tomo de um projeto, que cons
arquivos relacionados à aplicação.
Cho
DER a cqurt po el
Im projeto é mantido em um arquivo texto com à extensão
“pr”. proveniente do Delphi Pr
tor
cet, Hierarquicaniente este é o
arquivo principal funcionando como um uapá par o compl
UMES
É
A Q
PAS É
São os arquivos relacianados com as ênits. Se existirem [9 units no projeto. então serão gerados 1Ó arquivos .pas uma para
cada unit. No Delphias unit são compiladas individualmente de maneira que agilize o processo de compilação do projeto como
um todo
-DCU"
9
Delphi Compiled Unit. Após as units serem compiladas são gerados os arquivos deu
E
.DFM e ranv! f
Mantém às válores das propriedades referentes ao form criado. É um arquivo do tipo binário é não pode ser visualizado por
meio de um editor de textos. Contudo o usuário pode manualmente fazer mudanças nesse arquivo através de File/Open e
escolhendo 6 arquivo .dlim respectivo. au botão direito - no form e selecionar a opç y as Text, Entretanto você pode
comprometer seu formulário se algum erro for cometido.
arquvo no Ber
-RES
É o arquivo padrão de recursos do Windows. Inicialmente contém o icane do programa. Seo usuário quiser pode acrescentar
sons, imagens, incluindo no arquivo .res.
DOF
Contém as opções do projeto. Tem formato texto mas é o Delphi que o atualiza sempre que mudamos algo.
EXE
É'o arquivo serado depois de compilado o projeto sem erros de sintaxe da linguagem de programação. Quando criado está
executado.
“pronto para ser
—PAS; -DEM
Arquivos de backup Cape; pa
dfmyrespectivamente, gerados. automaticamente pelo Delphi se habilitarmos a opção
FoolsEditor Oplicas DisplayiCr -
te Backup [
5. Estrutura De Um Projeto
a
esados ao projeto dpr, Observe que cada formulário possui um arquivo .pas à
squema abaixo representa a estrutura de um projeto contendo formulários, units, c um módulo de dados, todos
sociado a ele. Também contém uma unit sem
ivesse lazendo um papel de DEL.
um form associado à cla, pois apenas usamos suas finções é procedimentos, como se e
Projeto.dpr
Data
Module
Forml Form? |
' UDataModule.pas
Ea E
+.pas |
o y Unitl.pas
close
class
const
constructor
destructor
dispinterface
div
do
downto
else
end
except
exporis
file
finalization
finally
for
function
if
implementation
in
inherited
initialization
inline
interface
is
label
library
mod
nil
not
object
of
or
out
packed
procedure.
program
property
raise
record
repeat
resourcestring
set
shishr
string
then
threadvar
SERGIO YR
a Números
Os números seguem a sintaxe para not
é um ponto ex: 3.989
Números hexadecimais são precedidos por S: SGd0a; $FFFF
to decimal usada normalmente. O separador de decimais para números reais
Strings de Caracteres
Os strings de caracteres devem ser colocados sempre numa única linha. entre aspas simples ex. “BOTAFOGO”.
O símbolo iiseguido de um número inteiro entre 0 e 255 é usado para designar caracteres de controle, não visíveis ex.:
BOTAFOGO * “13 "CAMPEÃO significaria uma quebra de linha depois da palavra BOTAFOGO.
O operador + serve para concatenação de strings. : BOTAFOGO" + 'CAMPEÃO'.
Comentários
Podem ser representados por £... pi (ye
£ Isto é um comentário 3
(* Isto é um comentário *) : // Isto é um comentário
Constantes
Representam valores que não podem ser alterados, ima vez definido. Deve ser declarada precedida da palavra const
Const
Pi=3.141516;
Ano = 365;
Botafogo = “Campeão;
Variáveis
2 Pata que possamos usar uma variável devemos antes declará-la . As declarações de variáveis são precedidas peia
palavra reservada var
var
|: integer;
S, W: string;
T: Boolean;
JE
Tipo Natureza Valores o Bytes |Dígitos
| Boolean | Lógico | True or False [Ecs
| Bye | inteiro | 0a 255 Eis
E Char] Catacter | Único caracter Eos
[ Currency || Real (monetário) |+-922337203685477,5808| 8 | 19-20 |
| Double | Real [ 50x 17x108 | 8 [ 1516]
| Extended | Real [sado idos | 10 | 19:20]
: ; -2.147.483.648
Integer Inteiro 2447. 483.647 2
Shortint || Inteiro | -128 .. 127 EE] E
Smallnt | inteiro -Sor68 aor6r | 2 | ]
String a 1 a2Gb Varia
| Variant | Qualquer Natureza | Armazéna qualquer tipo IL I ]
| Word | Integer | 0. 65535 | 20] |
uma vartável Ra rEdaler diiranie a exe da hivBjainaço é Ginbéia as operações que es ser realiz:
Par exemplo, na declatação acima, 1'é do tipo Integer. sendo assim assumindo exclusivamente valores inteiros na faix:
valor do seu tipo. Se quisermos atribuir um valor do tipo string p: iável. L'6 Delpli gera ui citoide incompatibilidade
de tipos. O compilador é bastante rigoroso nessa verificação do uso que é feito de uma variável
Diretivas de Compilação
Quando o $ é o primeiro caracter de um comentário iniciado por £ ou (*, o comentário é tratado como uma divetiva de
compilação. Existem dezenas de diretivas, Elas servem: para controlar parâmetros de compilação. Alguns exemplos de
diretivas:
£S PROG.RES|
(SE
(SD-!
INCLULPASS)
8. Trabalhando com Forms e seus Componentes
Ao colocar componentes no form. e Delphi gera automaticamente o código necessário para tomar o objeto útil ao
usuário. Também pode ser criado via progtamação direta. muito útil para programadores mais experientes. método esse
chamado de Two-Way Tools.
Componentes Visuais
São os componentes que uma vez colacados no form, aparecem em modo de projeto e execução. Ex: Eidits, Labels,
Buttons, RadioGroup. Isso é lógico se estes estiverem com suas propriedades visible como true.
ReadOnty
SeroliBars
| BevelInne:
BeverQuter Fipo de Borda Externa
Lines TO texto do componente
Aligament Alinhamento do texto
Checked [Seo componente está Checkado a
State
Showkint
Panels
BorderWidih
9. Manipulando Eventos
Um evento é qualquer ocorrência causada pelo usuário ou uma ação resultante do processamento deruma rotina do
programa. Quando um evento ocorre. o Delphi executa um procedimento, Apesar de que os eventos podem variar para cada
tipo de componente uma vez que você tenha conhecimento sobre eventos de um determinado componente, poderá aplicá-lo
em outros componentes.
[Evento [Descrição
[ OnChange [ Quando um determinado valor
OnClick Quanda elica no componente
OnDbIClick um duplo clique no objeto
OnDrag Drop Quando se solta o objeto que está senda arrastado |
a um objeto em cima de outro a |
Quando um componente torna-se ativo (Focado)
io do OnEnter, Quando perde o foco
Quando se pressiona qualquer tecla
| Quando se pressiona uma tecla de Caractere
OnMouseMove
| OnMouvelUp | Quando solta o botão do mouse e este estiver em cinta do objeto
FOnAciiv te
OnClose “ Quando o objeto é fechada
| Quando o programa ativa o Form pela primeira vez
OnDestroy Quando se elimina um objeto
Ontimer Intervalos periódicos de tempo :
OnRestore * Quando restaura uma janelá minimizada
| OnPopUp a Quando s
e ativa O menu popup com o botão direito do mouse
Quando à aplicação inicializa à execu
Quando há um erra de execução na aplicação
Quando se minimiza uma janela f j
10. Métodos
São procedures ou functions embutidas nes componentes e formulários, previamente definidas pelo Delphi para as
certas cl
Método [Classe Classe Descrição É Ens
S qua | Tlorm Exibe um formulário não modal : e
ShowModal — Tform — Exibe um formulário de forma modal |
Hide | Í "(Oculta um controle É
jSetfocus | tr [Coloca o foco no objeto. E á
Glear Tcontrol [Limpa o conteúdo do objeto — E
[Add E Tcontrol Adiciona um item ao componente : A
BringtoFont Tcomponent | Envia o objeto para frente dos demais | : o |
SendToBAck 'Tcontrol : Enviao o objeto para trás -
|Repaint “Teontrol | Redesenha a imagem « do objeto
[Close “Horm é |Fecha o Formulário
'Open : TDataSet “Abre uma janela de Banco de Dados —
(First É |TDataSet 'Posiciona O primeiro registro da tabela
| TDataSet Posiciona o último registro da tabela
| TDataSet * Posiciona o próximo registro da tabela
Es (Posiciona o registro anterior da tabela
TDataSet — |Grava as alterações
TDataSet | Deleta o registro corrente da tabela
DataSet Fecha a tabela( ou consulta)
Chamada aos Métodos
Vacê pode chamar métodos(Iunções ou procedures) utilizando a notação de ponto(), conhecida como dot notation.
Par exemplo, para chaniar um método Show da componente form você deve usar:
Foeml.Show:
Button | Setfocus:
Form2.Close:
11. Convertendo Valores
O Delphi não permite que uma variável, constante inicialmente definida com um tipo de valor seja atribuído um valor
de outro tipo Ex: Se você quiser atribuir um valor a Editl Text diferente de uma string. o Delphi irá gerar um erro de
incompatibilidades de valores. Para isso temos algumas funções de conversão de valores:
INTTOSTR
Converte valores que são inteiros para do tipo string. Lx: huToStr(kditl left)
4
A 4, nos
STRTOINT
Converte valores que são do tipo string em tipo integer Ex: SerPolmiliditt text),
FLOATTOSTR
Converte valores do tipo Real, Double. Currency, Extended em tipo String;
STRTOFLOAT : ;
Converte valores do tipo string em valores do tipo Double.
STRTODATE
Conver
valores do tipo string pata o tipo DateC DATA 3.
DATETOSTR
Converte valores do tipo Date para tipo String. Lix: Date ToSt DATE),
TIMETOSTR
Converte valores do tipo Vime para String Ex: Ti imeToSu(l IMEY
12. Operadores Aritméticos
Para realizar operações com núnicros existem vários qperadores aritincticos que estão mostrados na tabela abaixo
* Operação É
- Adição É | Inteiro ou Real = i
-Subtração é I E Inteiro ou Real !
Muttiplicação
— Divisão
Divisão Int
Resto da Divisão
Inteiro.
Funções e Procedimentos que lidam com números
O Delphi possa uma série de funções padrões para diversas operações com números reais.
Descrição
“| Retoma a parte fracionária de um número
4 Retorna à a parte inteira de um número
An redonda o valor de um número
— Retóma o valor da parte inteira de um número.
Retorna a raiz quadrada de um número
ListBox — (Guia Standardy é uma caixa de texto que pode exibir vários itens. em lorma de lista que podem ser
selecionados.
fe RadioButton - (Guia Standard) é uma variação do checkbox, Nele vários componentes podem ser inserid
apenas um pode ser selecionado
porém
lo com o Edi
ComboBox. (Guia Standard) é parece
atribuídas ao campo
. porém quando clicado exibe uma dista de opções que podem ser
Panel + (Guia Standard) € visto como um container que você pode colocar ou agrupar outros componentes dentro,
também um dos mais utilizados.
GroupBox (Guia Standard) é uma variação do Panel. Sua vantagem é o texto usado como legenda na borda.
pé” CheckBos = (Guia Standard) usado para indicar se um valor é sim ou não
Bam = CGuia Additional usado para criar botoes comum: porém se diferem das buttons pois podem receber figuras.
Speed Button = (Guia Additional) Pode armazenar imagens e texto, pode ser usado em grupo com outros Speed
Buttons, onde a estar ativo. Ex Alinhamento.
enas um deles pod
— Masktidit = «Guia Additional) Usado para colocar máscaras pré-definidas pelo programador. Come por exemplo
máscaras de CEP, DDD + Telefone. Datas, ete
: bnage (Guia Additional) Este componente recebe imagens
5 StatusBar = (Guia Win32) É um painel inferior com diversos painéis (opcionais). Normalmente usado par indicar
7 estado de uma aplicação é informações complementares como hora. Data, hint..,
VoolBar (qiuia Win32) Seria o esqueleta pata se criar uma barra de ferramentas. Pode ser inseridos SpecdButtons e
separadores.
Imagen isto (Guis Win32) Armazena Inúmeras imagens dentro, para ser usadas na aplicação. Como se fosse um
repositório dé im
chs.
Si DateTimePicker = Guia Win321 Muito parecido com um ComboBox. porem quando clicado aparece um calendário
para selecionarmos uma data.
Timer (Guia Win32) Usado para executar algum evento de tempo em tempo,
CalorBox — (Guia Additional) Um dos novos
catribii-lwa algum componente referenciando sua propriedade
calor recebendo cotorBax E Cotorstcolorhax | itemindex!:
componentes do Delphi 7,4 ColorBox serve para selecionarmos uma cor
)
- /
14. Estruturas de Controle (Sintaxe Object Pascal) Lag, IA q pas nro na agr:
Qu /loe ft
IF... THEN ; : rot Lada bh»
a
df x= then
X=x+3;
to
Mo mipsulo qd oe
oa
Para executarmos mais de uma linha de comando -no bloco if then devemos colocar as
palavras begin & end como mostrado abaixo:
1
- ifox> 4 ten
begin
Y=Yy+2;
X=x+3;
end;
IF... THEN ... ELSE
if xo 10 then
begin
quer
editt.text:= “ inttostr(x);
end
else
begin
x:= x + 20;
editt.texti= IntToStr(x):
end;
Desta forma quando x for
CASE ... OF
Cage Ss of;
1: showmessage(' x é igual a um );
2: showmessage(' x é igual a dois “);
3:showmessage(' x é igual a três *)
else
showmessage(' x não é nem 1 nem 2 nem 3º);
end;
igual a 10 então faça A caso contrário faça B.
Esta sintaxe avalia a expressão(deve ser do tipo Ordinal) e compara seu resultado com uma série de condições,
atém encontrar uma que satisfaça . caso contrário entra no bloco de comandos else.
15. Estruturas de Repetição (Loop)
WHILE ... DO
Wien [uo do
begin
showmessage( IntToStr(x) );
x=x+1;
ve à
Emftges
ni E
she e essere
Cor rd A cho mto É do
begi É
dEsap safe de do é: Ups mllos LOS
oh RA
sa
/ Einbecen rs
/ bh 4 dº
for os th qo
beg O
(a at (e xe t) Rua L0os;
clones sir
: VÊ er A Lhe
qe av io
puiface Pá (e Ola : j!
e
€
Utilizado para sair imediatamente de um Loop.
CONTINUE
var
x: integer;
begin
forx:=1 to 4 do
begin
ifx = 2 then Continue;
showmessage(IntToStr(x));
end;
end:
Quando dentro do loop tiver um comando Continue, ele ignora o restante das instruções, porém volta a avaliar O
loop como ss já tivesse avaliado o valor corrente do loop. No ex. se x = 2 então tem o comando continue que irá
ignorar o resto das instruções e votará ao começo do loop. comx=3;
16. Rotinas Aritméticas
O Object Pascal oferece inúmeras rotinas aritméticas para serem usadas em cálculos matemáticos. Com e
você pode extrair a raiz quadrada-de um número, o seu valor absoluto e etc. E
ABS
Búnction Abstx): integer:
var
x,y: integer;
begin «
x:
(-123
Abs(x);
Shavats sag é
end;
CEIL
Retorita um valor inteiro que co vesultedo do arredonlamento do valor passado como parâmetro,
Function Ceil(x): integer;
Var
x: Real;
a Je ceia ) / |
E Dê Ma /
begin
x:= Ceil(-5.7);
showmessage(FloatToStr(X)):
x:= Ceil(5.1); E
showmessage(FloatToStr(X));
end;
FLOOR
Trabalha de forma semelhante a Ceil, mas esse inverte a forma de trabalho com o arredondamento.
Function Floor(x): integer;
Var
x: Real;
begin
x:= Floor(-3.9);
showmessage(FloatToStr(X));
x:= Floor(3.1);
showmessage(FloatToStr(X));
end;
FRAC
Retoma à parte fracionada do valor passado para o parâmetro X
Function Frac(x): real;
Var
x: Real;
begin
x:= Frac(-1.123);
showmessage(FloatToStr(X));
x:= Frac(2.123);
showmessage(FloatToStr(X)):
end;
ANSICOMPARESTR
Compara duas strihgs c retorna valores maior, igual ou menor que zero, Essa função considera letras maiúsculas e
as diferentes. ú
Condicional É To do Retorno se : |
Var
“begin
showmessage(inttostr(AnsiCom pareStr(s1,s2)));
end;
ANSICOMPARETEXT
Semelhante a função anterior, porém não difere entre maiúsculas e minúsculas.
ANSILOWERCASE / ANSIUPPERCASE
Retorna uma string que é o resultado da conversão para caracteres minúsculos ou maiúsculos, respectivamente
var
S1, S2: string;
begin
showmessage(AnsilowerCase(S2));
showmessage(AnsiUpperCase(S1));
end;
copy
Essa função permite que se copie tm pedaço de uma string
var
S1, S2, 83: string;
begin
S1:= Delphi”;
S2:= Copy(S1, 1, 3);
showmessage(S2);
S3:= Copy('Delphi”, 1,3);
showmessage( S3 );
end;
LENGTH
Retorna o tâmanhe da string. Esse valor é retornado por um número inteiro.
var
S1: string;
X: integer;
begin
st:= 'Delph?';
x:= length(s1);
showmessage('O tamanho da String contida em st eh: * + IntToStr();
end;
Pos
E
encontrada.
var
S1, S2: string; ,
Perl ea
begin?
À função permite que se preocupe por uma determinada Substring dentro de uma string, mesmo sem saber se será
“Delphi Treinamento para Desenvolvedores”;
:= Treinamento";
if pos(s2, st)<> 0 then
- showmessage('A palavra foi encontrada”)
else
showmessage('A palavra não foi encontrada");
end;
O GIO 1253 Roe PR)
SO UAM SA aa
eg
“lp nica pum ofeemvolohai
E e CRS ar
PE pos (Es DO ben
aa aa (“A palodra fai rentes
Para criar menus edeentados. selecione o item do menu é com o botão direito do mouse selecione a opção Create SubMenu,
ou pressione as teclas < ctrl= 4 5.
Para mover as itens do menu basta arrastá-los com o mouse para olocal desej
Mome
FERE
O Delphi oferece inúmeros modelos de menus. que contém comandos e funções padrões. Os quais podemos usar sem
modificações. Ou modificá-los. adaptando-os a sua aplicação. ou ainda podemos salvá-las como modelo qualquer menu que
criamos no gerador de menus. : j
é MENUS POPUP
E São menus que aparecem quando o usuário clica no botão direito do mouse
Paía criar um menu PopUp de um duplo clique no componente MenuPopUp. da paleta ded componentes Standard, inscrindo-o
no formulário. Digite o nome do primeiro Item, na propriedade Caption e pressione <ENTER
Para tornar um menu Poplip disponível para 6 componente à que cle diz respeito. atribua 0 nome do menu PopUp a
propriedade PopUpMentu da Formulário ou componente.
IES
MESSAGEBOX
Essa função faz parte da API (Conjunto de funções e comandos encontrados em DIU's do Windows
E Sua sintaxe pode ser empregada de dois modos
procedure TFormi.Etnhes: É ickiSender
me
am
a ent
+ HE, ICONQUES
ION+ HE DEFRUTTONS! ;
idok then ê
if Respo
Application. Terminate;
20. Conectividade em Delphi
Delphi é uma ferramenta de desenvolvimento que tem em sua essência a cria
o ca manipulação do Back-End ê
tont-End é à nome para referenciar os formulários. caixas de diálogo é demais elementos de interação com o usuário
(Layout). Back-L:nd relere-se ao banca de dados propriamente dito
Dessa maneira, quando estamas desenvolvendo uma aplicação em Detphi - podemos começar a desenvolvimento no
d ou no Front-Lind, embora o início do projeto na base de dados seja à melhor abordagem.
Entre o Eront-lind é o Back-End deve haver uma camada para que o executável, produzido pelo Delphi possa
conversar com o banico de dados que está lá embaixo. Considerando uma visão macro deste processo. podemos observar:
E importante notar qu pode ser visto de diferentes maneiras fisicamente. O Paradox é visto como
um conjunto de arquivos: representando suas tabelas, indices c campos Blobs. O banca de dados Access aborda de miancira
diferente à organização lísica do Banco: Os arquivos e auiros elementos (forma
arquivo apenas. com extensão MPB
io c manutenção do Front-Lind da
apli
Back.
à banco de dados
ários e relatórios!
ão componentes de um
Delphi & BDE
A Borland implementou o BDE com o abjetivo de abstrair o Front-End do Back-End, deixando que as características
particulares de cada banco fossem tratadas vor essa camada intermediária no acesso aos dados. Die funciona como um tradutor
des feitas pelo compobentes e a API do banco
je OS componentes que representam as tabelas (DataSets) representam uma fonte
interprete entre as requísiç
Podemos notar que desta mar
dados em alto nivel com propriedades. que independem da banco: pais o BDE se encarrega de traduzir a chamada na
de
mesma linguagem em que o banca trabalha
O BDE é um conjunta de DLLs que utitiza uma interface de átro nível para cont
quina em que o programa vai rod
Há muitas aplicações utilizando é BDE se o objetivo é trabalhar com Paradox, o BDE ais
eficiente.
O BDE nada mais é do que um intermediario entre a aplicação eos sistemas de banco de dados aos quais ele pode se
conectar
guração . Deve estar instalado na
ni
ta é o modelo mais
sistemas locais (Paradox, dBase. boxPro e Access! são acessados diretamente pelo BDE. por meio de drivers nativos
erver. DB2
servidor Subase, Informix, Ms SOL) são acessados por meio de um conjunto de drivers
SQL (Unterbase, Orack
especiais. denominado SQL Links
Sistemas que implementam interfaces que seguem o padrão Microsoft ODBC (Open Database Connectivity) são acessados por
meio de adaptadores ODBC disponíveis no Bl :
Acesso dos Dados por nício de Componentes de Delphi
Da mesma forma que com as autros tipos de aplicação as facilidades oferecidas pelos banco de dados ficam
disponíveis por intermédio de propiciades, eventos é metodos implementados em componentes do Delphi. Tipicamente, pará
o acesso aés banco de dados via BDE. são usados três tipos de compenente
5 Componente Table ow [Quers (página BDF da paleia ) para representar datasers (tabelas resultados de
OL:
comandos
ação com à ustário ( página Data Controls ):
“> Diversos componentes que exibem controlem para inter
3 Componente FDataSoures ( página Data Access) usado para conectar os datasets ( TTable, TQueiy) aos controles
da intertace de nstatio.
o
BDE & ALIAS
Um banco de dados é logicamente representado por um conjunto de tabelas inter-relacionadas. A implementação
fisica de um banco de dados pode variar muito. dependendo do sistema que o gerencia. As aplicações necessitam identificar o
banco de dados que irão processar. a
A forma mais comum de definir um banco de dados é porum ALIAS configurado no BDE,
Um termo muito utilizado pelos desenvolvedores Delphi ao trabalhar com o BDE é o ALIAS. Ele é representado por
um nome que deve indicar um conjunto de parâmetros (configur: descrevendo coma será feito o acesso e a manipulação
do banco de dados. é
O ALIAS não é obrig
beneficios diverso
Com a utilizaç
de alteração no código-fonte do projeto.
Para confi; emos um ALIAS para nossa pro
No menu-clique em DataBase/l xplore
ão traz
tório em uma aplicação que faz a utilização de um banco local, mas sua utili
sidade
iodo ALIAS. temos uma configuração externa do executável que pode ser alterada sem a necs
ramação devemas tomar os seguintes passos:
Após este passo o SQL Explorer é aberto:
21. Usando Data Modules f
Os componentes que pe com 9 acesso aos banco de dados estão nas páginas Data Acess e BDE da paleta. Eles são
invisíveis durante a execução. têm, no entanto, uma importância fundamental, pois é por meio deles que temos acesso às
tabelas que usamos para armazenar os dados. Da mesma forma que fazemos com os demais componentes, podemos colocá-lo
em um foram. O Delphi os insere com o nome c o tipo na declaração da classe do foram em que eles são colocados. À partir
daí, podemos usar suas propriedades, eventos é métodos, exatamente como usaremos os demais componentes.
Embora seja possível colocar em um form os componentes de acesso aos dados, há outro lugar eai
projetado para conte-los, os chamados Data Modules. O projeto da parte relativa aos dados processados por uma aplicação é
algo que pode ser (e normalmente é) feito de forma bastante independente de outras partes da aplicação. A definição das
diversas tabelas e scus relacionamentos. suas interdependências. as regras e verificações de intesridade, segurança, etc. são
aspectos geralmente tratados antes da implementação do sistema. Com o objetivo de facilitar a real separação dessas partes
que, em conjunto, são conhecidas como regras do negócio — foi introduzido à conceito de Data Module.
O Data Madule é muito parecido com um form. Podemos defini-to como um form invisível, no qual só podemos”
colocar componentes tambem invisíveis. Embora possamos colocar mum Data Medule qualquer componente invisível,
tipicamente colocamos nele os componentes que estabelecem conexão aos banca de dades. Dai inclusive. o nome - Data
Module. Continua sendo possível colocar em um farm os componentes que fazem conexão com o banco de dados. Porém. é
fortemente recomendado à uso dos Data Modules. mesma pata pequenas aplicações.
Criando um Data Module
Um Data Module é muito patecido com um Iorm. Ele também possui uma unit associada. Assim como podemos ter vários
forms num projeto. podemos também te vários Data Modules. Tipicamente, porém, criamos apenas um data module por
prajeto. Nele colocamos todos os componentes que definem o acesso aos dados.
FrERE ss Projédi?
Save Project &.
ate ll EfuttÂLtri4S
Es REI,
“Após escolher a opção Others aparecerá a sesuinte tela:
Cantral Fanel
Module
Applic:
Selecione Data Module e clique em OK
unit Initz;
interface
“uses
Utils, €
type
ThataModul.
private
= class |Thataladulej
public
PESLESIEA oba
Aparecerá o Data Module e a sua respectiva unit;
44
Após definir os camipos e indices. clique em save as é dentre os arquivos que serão criados €o .db para sua tabela é
o ips para es índices.
23. Guia BDE
Nesta Guia encontraremos os componentes que fazem conexão com à banco de dados via BDE. Eles junto com os
componentes da guia datacontrols sãa elementos Data-Aware, pois são elementos que têm ciência de dados e sua estrutura está
em um banco de dados.
Apesar desses componentes serem invisíveis durante à exccu
dados. Os componentes Data Access aparecem na Component Palete
o. eles trabalham em segundo plano para regular o acesso aos
Table - Permite o acesso à tabela de dados, especificando qual tabela deve ser
E acessada. Através de um duplo click sobre este componente entramos no Fields Editor, no qual podemos
definir quais campos serão exibidos e como será essa exibição.
DataBase - Define uma conexão continua para um banco de dados.
UpDateSql- Permite o acesso a um componente Tquery associado à uma declaração especificada
El BatcMove - Faz cópia da estrutura de uma tabela e seus dados. Pode ser usado para mover
— uma tabela de um formato para outro.
sas StoreProc - Acessa procedimentos armazenados em um banco de dados do tipo Client /
“ Server. É
Session - Permite um controle global de todas as conexões do banco de dados à uma aplicação.
Query- Permite criar uma consulta relacionada a um banco de dados. Cria-um conjunto de
dados (datasei) usando comandos SQL, ou seja. cria uma pesquisa relacionada a uma dedterminada tabela.
Não usa propriedade Table Name para especificar a tabela, pois é Especificada através da linguagem SOL.
nnrEEs
- Os componentes Data Control criam a interface visual dos dados somo usuário. A tabela a seguir descreve os mais
comuns:
E) DbGrid > Permite visualizar c editar dados em formato de tabulação (tipo)
planilha
a DbNavigator > Permite à navegaçãopelos registros da tabela atual, iniciar o modo
E»
Insert ou Edit, Salvar, Cancelar e Deletar registros.
DbEdit > Permite exibir ou editar um campo de um registrto ativo.
A DbText > Permite mostrar dados de um campo em um label, sem no entanto
permitir artualização desses dados.
“) Dblmage > Permite exibir, recortar ou colar imagens bitmap BLOB para / de um
s 8 E E
registro ativo. f
| DbMemo > Permite exibir ou editar Blobs de um registro ativo.
49
"aneis homes À CO [sooEO [Enssecorenão
ES
Goto am mm à
DOtootom iviLLIaM PEREIRA ALVES
(251127 SIMIRA APARECIDA
aro Chagas
1061 BELA MIS
AD DáS COBRAS
2 ZONE E
1 JD PALMARES
27. Pequena Aplicação usando FindKey e FindField
Primeiro criamos uma tabela com os campos
x
õ
ELENTE
DEDEMHOS
Default
Faça um layout como este:
> 2 Edits
> 2 Labels
> 2 BitBtn
51 Table
Linke a Table com o Alias “Senha” e tabela
senha.db e ative o procedimento OnClick do
botão Logar.
um
= VE VÊ se Fe. priné
ciona 0.0
final
begin
Applicatioa
end.
ado, pois não
altshomn
Antes de compilar o programa, na propriedade PasswordChar do componente Edit
referente ao campo senha, mude-a para “*:
Select * frrom Clientes where cod livro” 10 and editora = “crica”
ORDER BY > Classifica os registros de uma consulta em um campo ou campos
em crescente ou decrescente.
Especificados. em or
Podemos definir se os registros estarão ordenados de forma
ente ou decresecente com o auxilio das constantes ASC e
Select * from Livros Order By Nome Desc:
Select * from Livros Order By Cod Livro;
GROUP BY > Como o próprio nome indica, agrupa registros com valores idênticos
em um campo evitando repetições. Por exemplo, podemos recuperar
uma lista de clientes usando Group By no lugar da instrução Distiner
Select * nome from Clientes Group By Nome;
Todos os campos na lista de campos Select devem estar incluidos
na cláusula Group By ou serem incluídos como argumentos em uma
função SQL agregada.
OPERADORES MATEMÁTICOS
Estes operadores são utilizados em campos numéricos pata a manipulação de seu valores ou cálculos simples. Pode
ser usado em valores não numéricos. caso estes possam ser alterados para um valor numérico (cast).
+ 2SOMA; - 2DSUBTRAI; *>MULTIPLICA; />DIVIDE
OPERADORES LÓGICOS
São apenas três and, Or. No. São muito úteis em alguns casos, principalmente 0 and,
que é o mais usado em cláusulas Where.
Select* from Cliente Where Not Cod Livro — 20;
OPERADORES RELACIONAIS
Estes estão presentes em quase todas as instruções SQL e fazem parte de todas as linguagens de programação. À
seguir, os operadores relacionais:
"OPERADOR | DESCRIÇÃO
E pa E | Doni co iguala o no
oa RO Del - Maior que a
ps af É ae Menorque |
<> e j - Diferente | ne !
| RE Co | CT Menorouigual
PREDICADOS
Estes predicados são usados. na maioria das vezes, após uma cláusula Where para ajudar a definir uma condição
Abaixo, alguns predicados serão descritos
COMPARAÇÃO
Este grupo consiste nos operadores relacionais que vimos anteriormente. São cles:
” DESCRIÇÃO
Igual a
Maior que
Menor que
Diferente |
Menor ou Igual É
Maior ou Igual HE |
BETWEEN
Define uma laixa de valores que um determinado parâmetro deve satisfazer ou não . caso Not anteceda Between. A
sintaxe usada por este comando é ilustrada abaixo
Select * from Clientes Where CodCliente between 10 and 15;
EXISTS
É usado quando precisamos passar para uma consulta o valor contido em uma outra consulta SQL. A sintaxe é é
ilustrada abaixo:
liente From Pedidos Where
Select * From Clientes Where E:
CodCliente =10);
IN
Verificar se um valor passado come parâmetro está contido em uma lista de parâmetros definida pelo programador: Sua
sintaxe é ilustrada abaixo:
Select * From Clientes Where CodCliente in (2,3,5);;
Select * From Fornecedores Where Estado in (SP', MG);
a
o
a
LIKE
E certa ocorrência cm uma sequência de caracteres passada como parâmetro, Esta função suporta o
s e expressões específicas para retornar um conjunto de dados que sátistaçam a expres:
Select * trom Clientes Where Nome Like “%
Select * from Clientes Were Nome Like
Select * from Clientes Where Nome Like "AS:
Select * from Clientes Where Nome Like “EMILL O
Select * [ram Clientes Where Nome Like * MILIO”
IS NULL
Indica se uma determinada condição passada como parâmetro contém um valor nulo ou não.
Select * ftom Clientes Where nome is notnull.
29. Relatórios com RAVE Reports
Apresentando o Rave Reports
A versão 7' do Delphi traz como uma das grandes novidades uma nova ferramenta de criação de
relatórios, o Rave Reports, da empresa Nevrona. Ele foi adotado como o gerador de relatórios padrão do Delphi
em substituição ao QuickReport que o acompanhava até a versão 6
O Rave possui caracteristicas unicas, como seu próprio ambiente visual de desenvolvimento. Ele possui
alguma semelhança com o próprio ambiente do Delphi, uma vez que temos uma paleta de objetos que pode ser
adicionada ao relatório | uma janela de propriedades desses objetos e a área de definição do relatório
propriamente dito
E O Rave Reports trabalha com o conceito de projetos, ou seja, pode definir todos os seus relatórios num
único arquivo de projeto . Isto é similar ao método utilizado pelo Delphi. Comparando ambos, enquanto o projeto
no Delphi é formado por diversos formulários e unidades de códigos, os projetos no Rave são compostos por
layouts de relatórios, definições de conexão de banco de dados, variáveis globais aos relatórios, etc.
Os recursos oferecidos pelo Rave Reports são bastante extensos. É possivel por exemplo, gerar campos
com códigos da barra: Já os componentes na paleta do delphi permitem a exportação dos dados dos relatórios
nos formatos PDF(Adobe Acrobat). HTML, RTF e texto.
É interessante que apesar de o Rave Reports possuir uma ambiente próprio de desenvolvimento, a
integração com o Delphi é total, a ponto de você chamar o editor dando um duplo-clique sob o icone do
compônente adicionado ao formulário do seu projeto
Na parte inferior. podemos ver a janela de propriedades dos objetos (lado esquerdo), a página de layout
(centro) e a janela do gerenciador de projetos(lado direito). Na página de layout colocamos os diversos objetos
que definem o visual do relatório. Ela apresenta um régua horizontal e outra vertical, alem da grade, para ajudar
no posicionamento dos objetos.
Como ocorre com os componentes do Delphi. todos os objetos
RAVE Reporis possuem diversas - propriedades que podem ser
configuradas a partir da janela de propriedades. Esses objetos. assim
como os próprios relatórios. podem ser selecionados na janeia do
gerenciador de projetos. que apresenta todos os itens numa árvore
hierárquica
“gs Blobal Pa
Ae Data Vieiy O
Como podemos ver, há três principais descritos em seguida
Report Library: contém a lista de relatórios definidos no projeto Cada relatório, por sua vez, pode conter
várias páginas. E
Global Page Catalog: permite o gerenciamento de modelos de relatórios ou
objetos completos que podem ser reutilizados posteriormente em vários relatórios
+ empregando à tecnologia de espelhamento do Rave Reports. Esses itens podem ser cabeçalhos, rodapés, marcas
d'agua, logotipos. ete
Data View Dictionary: aqui serão apresentados todos os tipos de objetos para conexão com as bas
de dados.
Selecionando oReports1 podemos ver várias propriedades referentes este objeto. Algumas delas são
FullName: esta propriedade sé apresenta em vários objetos e nela podemos
entrar com um pequeno texto para descrever melhor o próprio objeto.
Selecionando o item Page? de Reports1 temos a propriedade
Orientation: para dizermos a orientação que a folha do relatório vai estar setada.
Como exemplo na vertica! ou horizontal
Page Size: Podemos escolher o tamanho da folha, como exemplo Ad
Para criarmos uma conexão com o banco de dados. devemos adicionar um objeto do tipo DataView.
Clique no botão New Data Object , representado pelo icone de uma pequena caixa roxa com. a palavra View.
Você também pode selecionar. a opção File/New Data Object.
434 Data Objei
É fácil produzir relatórios nos formatos PDF, HTML. RTF e texto usando TRvSysytem . Basta adicionar
ao mesmo formulário ou Data Module os componentes TRvRenderPDF, TRyRenderHTML, TRvRenderRTF cu
TRvRendetText.
Aqui podemos ver como o ambiente do Rave Reports
integra-se perfeitamente com o Delphi
Clique na opção Direct Data View e você verá a uma tela
com todos os RvDataSetConnections que definimos no
módulo de dados do nosso projeto em Delphi.
| brip — DES CIR!
[PR EVA Loix
p=» PED ai
A vê
Doce
[cho
CASSA
cobta
I eba DES
mi
Cibecom Go
ED NOME
GS VE |
|
t
fusu- cmd
ES NOME
LOG
Usui SENHA
USy AXE aiçÕO
PARADA ByMaME(! STM D. ASS RIVA = a
ço ma, SHerobeTe(ms eb bia Te
o
ai E
ap
bem
e
E je
ipevs 6
pr». co% 1Gº
Selecione a guia Standard e adicione à Banda um objeto Text. que é similar ao componente Label do
Deiphi. Vamos formatar a fonte deste componente e escrever “Agenda Telefônica Pessoal
insira também um componente DataText da paleta Report. Na propriedade DataField clique no icone
contendo reticências. aparecendo a janela de dialogo Data Text Editor. Na área inferior digite a sing “Data: "+
Report.DateShort q
Da mesma forma. adicione outro DataText e configure sua propriedade: DataField | para “Pag: "+
Report. CurrentPage.
Cologtie três componentes Text e configure para Nome, Telefone, E-Mail
Selecione a guia Drawing e clique no icone com a linha horizontal (segundo botão). Então clique na
pagina de layout, logo abaixo dos três componentes Text, setando a propriedade LineWidth para 2
,
' 06
bege
Shodool. ;
ts E cxf rios,
A ol o! Es = =
PS Fazer VEy . Pano > a
eptt:
Cv NA e ds eloês
Win Da
so E Ride -
TERA] > bio led cone EiSheed
a mem pese
Deda Canto
EG :
se SD CR tema
; bed As, Show;
da cos ei do es. edit;
del Inspecção) pede om Elas hz
)
Band! Band
e
Bandótute,
Controlierãa EEE]
Designeide False
Agenda Telefônica Pessoal puata *+Regpui DateShort
Repúnilo HOME TELEFONE O E-meiL,
tatNemPage Pele tuo
dd irem seo
todos salve o arquivo de projeto selecionando File/Save.
mail
Depois deste procedimento
Executando o Relatório
Feche o Rave Reports para voltar ao Delphi. Clique no icone da propriedade ProjectFile do objeto
RvRelatorios e escolha o arquivo que acabamos de criar:
Em um evento-qualquer programe
RvProjectl.ExecuteReport('Report1');
Rode o programa e terá uma tela parecida com esta:
68
q" Tabelas
3 ind e :
ne Rest coes a lcey (chove estos qeica)
U
Sr Vi $0es Caneues)
G- Testei qoes Ceheck o
F- Cecmçoes |
E- EO ol Voc edure
9
= lagé
19 e (Ger ca plres
pass
)
| a]
N A fer
Cante U
ia o varias
Le Gelo ago
SERSIO YAN
Edo
Agenda Telefônica Pessoal Dista 1IAAMS Pag: 1
NOME TELEFONE EMAIL
Carlos Eduarda 3 cadufBwnseL. com br
Deiseni - 2226 deiseniêgbol. com.br
Eduarda É 3025-3865 eduiihotenail com.br
Emilia Junior emilioêgsergioyamada.côm.br
Estephany estephtp. bol com br
Kanamni
Leonardo Santiago
Leticia
Maria das Gra
patiylolinda com, brh
Paincta Armor
69