139
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE SÃO VICENTE DO SUL CENTRO DE INFORMÁTICA EDUCATIVA E TECNOLOGICA CURSO TÉCNICO EM INFORMÁTICA MÓDULO III PROGRAMAÇÃO São Vicente do S!" Ot#$o" %&&'( )

Apostila delphi 5

Embed Size (px)

Citation preview

Page 1: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 1/139

CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE SÃO VICENTE DO SUL

CENTRO DE INFORMÁTICA EDUCATIVA E TECNOLOGICA

CURSO TÉCNICO EM INFORMÁTICA

MÓDULO III

PROGRAMAÇÃO

São Vicente do S!" Ot#$o" %&&'(

)

Page 2: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 2/139

Sumário

VERSÕES....................................................................................................................................................................5

IDE................................................................................................................................................................................6

O FORM DESIGN(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((*

A +ARRA DE MENU PRINCIPAL((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((,A PALETA DE COMPONENTES(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((,A SPEED+AR((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((-O+.ECT INSPECTOR(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((-CODE EDITOR((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((/CODE INSIG0T(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())SPEED MENUS((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()%DES1TOPS TOOL+AR(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()%CONFIGURAÇ2ES DO AM+IENTE(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()%

TECLAS IMPORTANTES.......................................................................................................................................13

PROJETO EM DELPHI..........................................................................................................................................13

(PAS E (DPR((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()'SALVAR O PRO.ETO((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()'A+RIR O PRO.ETO(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()*OPÇ2ES DE PRO.ETO(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()*A LISTA TO3DO(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()-

TIPOS DE COMPONENTES..................................................................................................................................18

CONVENÇÃO DE NOMEAÇÃO...........................................................................................................................18

MANIPULANDO COMPONENTES......................................................................................................................19

Utilizando o Object Inspector...........................................................................................................................20

MANIPULANDO EVENTOS..................................................................................................................................22

Construção de um manipulador de evento para o objeto button......................................................................22 Executando a aplicação................ .............. ............... .............. .............. .............. .............. ............. ..... ...... ..... ..23

COMENTÁRIOS(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((%4

VCL............................................................................................................................................................................24

Objeto !orm "!ormul#rio$.............................................................................................................................2%Objeto &utton "&otão$....................................................................................................................................2'Objeto Edit "Caixa de edição$........................................................................................................................2( Objeto )abel "*+tulo de orientação$..............................................................................................................2, 

MAIS SO+RE A PALETA STANDART((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((%,Objeto -emo "-emorando$...........................................................................................................................2, Objeto Cec/&ox "Caixa de veriicação$.......................................................................................................21Objeto *adio&utton "&otão de radio$..........................................................................................................21Objeto )ist&ox "Caixa de lista4em$...............................................................................................................25Objeto Combo&ox "Caixa de lista4em em ormato de cortina$.....................................................................25Objeto 6roup&ox "Caixa de a4rupamento$...................................................................................................30Objeto *adio6roup "6rupo de bot7es radio$.................................................................................................30Objeto 8anel "8ainel$.....................................................................................................................................30Objetos -ain-enu e 8opup-enu "-enu principal e -enu r#pido$.............................................................39

A LINGUAGEM OJECT PASCAL......................................................................................................................31

O MÓDULO (DPR(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((4)AS UNITS((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((4%

%

Page 3: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 3/139

ATRI+UIÇÃO((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((45DECLARAÇÃO DE VARIÁVEIS((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((45TIPOS PARA MANIPULAÇÃO DE VARIÁVEIS(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((45FUNÇ2ES DE CONVERSÃO E MANIPULAÇÃO((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((4*E6PRESS2ES LÓGICAS(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((4*COMANDO IF(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((4*COMANDO CASE((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((4,COMANDO REPEAT((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((4,

COMANDO 70ILE((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((4,COMANDO FOR(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((4-COMANDO +REA1(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((4-COMANDO 7IT0((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((4-PROCEDURES E FUNÇ2ES(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((4/DECLARAÇÃO E ATIVAÇÃO DE PROCEDIMENTO((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((4/DECLARAÇÃO E ATIVAÇÃO DE FUNÇ2ES(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((4/DECLARAÇ2ES CRIADAS AUTOMATICAMENTE PELO DELP0I(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((5&CAI6AS DE DIÁLOGO((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((5&CAI6AS DE ENTRADA(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((5%

CHAMADA DE !ORMS..........................................................................................................................................44

COMPONENTES "VCL#.........................................................................................................................................45

Objeto &it&tn "&otão com i4uras opcionais$................................................................................................%'Objeto :peed&utton "&otão para barra de ;cones$........................................................................................%( Objeto -as/Edit "Caixa de edição com m#scara$.........................................................................................%( Objeto Ima4e "Ima4em$.................................................................................................................................%, Objeto < 8a4eControl........................................................................................................................................%, Objeto Open=ialo4 "Caixa de di#lo4o para abertura de ar>uivos$..............................................................%1Objeto Ima4e)ist ")ista de ima4ens$.............................................................................................................%1Objeto *icEdit "?exto com ormatação$.......................................................................................................%5Objeto 8ro4ress&ar "&arra de pro4resso$.....................................................................................................%5Objeto 6au4e "&arra de pro4resso$...............................................................................................................'0Objeto @nimate "@nimaç7es$..........................................................................................................................'0Objeto =ate?ime8ic/er "=ata e ora atravAs de uma Combobox$...............................................................'0

Objeto -ontCalendar "Calend#rio mensal$................................................................................................'9Objeto :tatus&ar "&arra de status$................................................................................................................'9Objeto ?ool&ar "&arra de ;cones$..................................................................................................................'2

UM POUCO MAIS SORE COMPONENTES "VCL#........................................................................................52

Objeto ?imer "?emporizador$.........................................................................................................................'2Objeto !ile)ist&ox "Caixa de lista4em de ar>uivos$.....................................................................................'3Objeto =irectorB)ist&ox "Caixa de lista4em de diret+rios$..........................................................................'3Objeto < =riveCombo&ox "Caixa de lista4em de drives$..................................................................................'3Objeto !ilterCombo&ox "Caixa de lista4em de iltros$.................................................................................'%

ANCO DE DADOS.................................................................................................................................................55

CONECÇÃO AO ANCO DE DADOS..................................................................................................................55

+DE((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((''COMPONENTES DE CONTROLE E ACESSO((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((''

 Exemplo................ .............. .............. .............. .............. .............. ............... .............. .............. .............. ....... ...... .'( O+.ETOS TFIELD(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((('-

APLICAÇÃO EM ANCO DE DADOS................................................................................................................6$

DATA+ASE DES1TOP(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((*&+DE 8 CRIAÇÃO DO ALIAS(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((*4APLICAÇÃO UTILI9ANDO +D EM DELP0I(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((*5

 !rm8rincipal............... .............. .............. .............. .............. ............... .............. .............. .............. ........... ...... ....(%

4

Page 4: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 4/139

DATA MODULE((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((*5FORMULÁRIO DE CADASTRO DE SETOR(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((**

 !rmCad:etor................. .............. .............. ............... .............. .............. .............. .............. .............. .......... ...... ...(( MÉTODOS E PROPRIEDADES PARA MANIPULAÇÃO DE DADOS((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((*/FUNÇ2ES DE CONVERSÃO((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((,)OS ESTADOS DE UM DATASET((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((,)FORMULÁRIO DE CADASTRO DE FUNCIONÁRIO((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((,5

 !rmCad!uncionario................. .............. .............. ............... .............. .............. .............. ............. ...... ..... ...... .....,%

MÁSCARA PARA ENTRADA DE DADOS((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((,*INTEGRAÇÃO DE DADOS ENTRE AS TA+ELAS(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((,,ATRI+UINDO VALORES ATRAVÉS DE ONNE7RECORD((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((,/CONSISTINDO DADOS ATRAVÉS DE ONVALIDADE(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((,/FORMULÁRIO DE CADASTRO DE DEPENDENTES(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((-&

 !rmCad=ependente.................. .............. .............. .............. .............. .............. ............... .............. ...... ...... ..... ....10ATRI+UINDO VALORES DEFAULT :ONNE7RECORD;((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((-5MÉTODOS DE PES<UISA((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((-5FORMULÁRIO DE CONSULTA DE FUNCIONÁRIOS(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((-5

 !rmCon!uncionario................. .............. .............. ............... .............. .............. .............. ............. ...... ..... ...... .....1%DEFININDO CAMPOS RE<UERIDOS E E6CEÇÃO LOCAL(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((-*E6CLUSÃO COM CONSIST=NCIA(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((-,E6CLUSÃO EM CASCATA(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((--

UM POUCO MAIS SO+RE CONSULTAS((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((-/ !rmCon:et!un................. .............. .............. .............. ............... .............. .............. .............. .............. ....... ...... ...15RELATÓRIOS((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((/)

 !rm*el!unc................ ............... .............. .............. .............. .............. .............. ............... ........... ...... ...... ...... .....59CAMPOS CALCULADOS((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((/4RELATÓRIO MESTRE3DETAL0E((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((/'

 !rm*el:et!un............... .............. ............... .............. .............. .............. .............. ............... ........... ...... ..... ...... ....5'CONSULTAS E IMPRESSÃO((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((/-

INSTALLSHIELD.....................................................................................................................................................98

:et te isual =esi4n.......................................................................................................................................900:peciB Components and !iles........................................................................................................................902:peciB Install:ield Objects or =elpi '......................................................................................................90'

:elect User Interace Components..................................................................................................................90, :peciB !olders and Icons...............................................................................................................................901 *un =is/ &uilder............. .............. .............. .............. .............. ............... .............. .............. ............. ...... ..... .....901

INSTALLSHIELD PAC%AGE!ORTHE&E....................................................................................................111

TRANSAÇÕES........................................................................................................................................................11'

DELP0I > TRANSAÇ2ES((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()),

DELPHI ( S)L......................................................................................................................................................121

T*CNICAS DE INTER!ACE...............................................................................................................................125

SPLAS0 SCREEN((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()%'CRIANDO E DESTRUINDO FORMS((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()%,MANIPULANDO CURSORES((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()%-

TOOLAR...............................................................................................................................................................129

APLICAÇÕES MDI...............................................................................................................................................132

Criando um lista das janelas abertas..............................................................................................................93(  -esclando -enus..................... .............. .............. .............. ............... .............. .............. .............. .............. ......93(  *eaproveitamento de c+di4o......... ............... .............. .............. .............. .............. .............. .............. ..... ...... ....93, 

RE!ER+NCIA ILIOGR,!ICA.......................................................................................................................138

5

Page 5: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 5/139

'

Page 6: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 6/139

VERSÕES

O De!?@i diBt$i#do e t$B e$BeBH

:tandart 

Ve$Bão #BicJ do ?$odto Ke diB?oni#i!iJ connto #e !iitJdo de co?onenteB(

 8roessional Te ?o$ o#etioB ?$o$JJdo$eB ?$oiBBionJiB( PoBBi todoB oB $ec$BoB #BicoB" B?o$te  ?$o$JJQão de #Jnco de dJdoB" B?o$te J Be$ido$eB 7e# e J!JB e$$JentJB ete$nJB(

 EnterpriseCon@ecidJ coo ClientD:erver  nJB e$BeB Jnte$io$eB enocJ ?$o$JJdo$eB Ke eBtão conBt$indoJ?!icJtioB e?$eBJ$iJiB( PoBBi o S<L LinB ?J$J coneeB C!ienteSe$ido$ +DE nJtiJB" $ioBco?onenteB ?J$J Inte$net" co?onenteB ADO e Inte$+JBe E?$eBB" B?o$te J J?!icJtioB!tiB$ioB" inte$nJcionJ!iJQão e J$Kitet$J de t$B cJJdJB(

TodJB JB e$BeB ?oBBe J eBJ deiniQão de J#iente inte$Jdo e J cJ?JcidJde de e?Jndi$ BJVCL o$iinJ!(

*

Page 7: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 7/139

IDE

O J#iente de deBeno!iento do De!?@i co?oBto de $iJB ?J$teBW co?ondo conntointe$Jdo de Jne!JBW Ke inte$Je ent$e Bi(

VJoB J#o$dJ$ cJdJ J Be?J$JdJenteH

O FORM DESIGN

 !orm  o te$o ti!iJdo ?J$J $e?$eBentJ$ JB janelas do 7indoXB Ke co?e J J?!icJQão( OBo$B Be$e coo #JBe ?J$J o ?oBicionJento doB componentes" Ke Bão $eB?onBeiB ?e!J inte$JQãoent$e B$io e KinJ(

PJ$J  selecionarmos  o o$ deeoB c!icJ$ :J e; e BJ $eJ inte$nJ o nJ o#ectinB?ecto$" e não Bi?!eBente e Be tt!o(

AB cJ$Jcte$BticJB iniciJiB do o$ coo tJJn@o" #oteB :iniiJ$" JiiJ$" ec@J$" cont$o!e; econe ?ode Be$ odiicJdJB Jt$JB de $ec$BoB Ke e$eoB JdiJnte(

,

Page 8: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 8/139

 

A BARRA DE MENU PRINCIPAL

Coo todo ?$o$JJ ?Jd$ão 7indoXB" @ J Jne!J onde eBtão BitJdoB oB menus dJ J?!icJQão" J #J$$J Ke conte oB enB tJ# J$?J ot$JB ?J$teB(

A PALETA DE COMPONENTES

A?!icJtioB o$ientJdoB J o#etoB t$J#J!@J co e!eentoB Ke denoinJoB componentes( No De!?@i"oB co?onenteB encont$J3Be e J ?J!etJ co $iJB 4uias(

Pode3Be coni$J$ J o$denJQão dJB  4uias  c!icJndo co o -/0 /  do oBe Bo#$e KJ!Ke$ co?onente e c!icJ$ nJ o?Qão P/(

-

Page 9: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 9/139

0 #JBicJente t$B Jnei$JB de 7 77/ no o$!$ioH

• C!icJ$ J e no co?onente" e c!icJ$ dent$o do o$!$io :não J$$JBtJ$ para o o$;(• C!icJ$ dJB eeB $J?idJente no co?onente deBeJdo(• Se$J$ J tec!J :it  e c!icJ$ no co?onente deBeJdo c!icJ$ no o$ $iJB eeB(

 NJ te$cei$J o?Qão" o co?onente Be$ travado  Jo oBe( PJ$J destrav#<loW c!iKe no cone dJ seta" o ?$iei$o cone dJ ?J!etJ(

A SPEEDBAR

A B?eed#J$ eBt ?oBicionJdJ Jo !Jdo eBKe$do dJ #J$$J ?$inci?J! do De!?@i( PoBBi die$BoB #oteB:coneB; Ke $e?$eBentJ coJndoB ito ti!iJdoB d$Jnte o deBeno!iento(

Pode3Be cBtoiJ$ J B?eed#J$ JdicionJndo o $eti$Jndo J! #otão Jt$JB do #otão di$eito eKJ!Ke$ cone :dJ B?eed#J$; e eBco!@e$ o coJndo :/;( NJ Jne!J J#e$tJ" Be!ecionJ3Be J iJC<7( NeBte oento ?ode3Be J$$JBtJ$ noB doiB BentidoB" ?J$J JdicionJ$ o $eti$J$ #oteB(

OBJECT INSPECTOR

UJ dJB ?J$teBW JiB i?o$tJnteB dJ o$ientJQão J o#eto J ?oBBi#i!idJde de deini$ cJ$Jcte$BticJB ?e$BonJ!iJdJB JoB co?onenteB(

 No De!?@i" ti!iJoB J Jne!J o#ect inB?ecto$ ?J$J $eJ!iJ$ eBtJ tJ$eJ(

/

Page 10: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 10/139

0 J caixa de lista4em9 Ke ?e$iteJ eBco!@J de KJ! co?onente dee$Be$ Be!ecionJdo(

DJB 4uiasH

 Properties 8 Deine JB ?$o?$iedJdeB eJ!o$eB do O#eto Be!ecionJdo(

 Events 8 Deine KJiB oB eentoB Be$ãoJni?!JdoB ?e!o deBeno!edo$(

A!JB propriedades t$Je o?QeBdie$enciJdJB ?J$J J!te$JQão(

Po$ ee?!oH

Caption 8 Pe$ite J inBe$Qão de JBt$in de cJ$Jcte$eB(

Color  8 Pe$ite J inBe$Qão de doBJ!o$eB prA<deinidos nJ cJiJ de !iBtJe(

 BorderIcons  8 TodJ ?$o?$iedJde Ke ?oBBi o BinJ! de Y te J cJ$Jcte$BticJ de oBt$J$  subpropriedades( Dee3Be c!icJ$ no BinJ! de Y ?J$J e?Jndi$ e no BinJ! de 8 ?J$J oc!tJ$(

 Icon 8 Ei#e #otão de $eticnciJB :(((; Ke dJ$ o$ie J J cJiJ de di!oo(

OB noeB deinidoB coo J!o$eB dJB ?$o?$iedJdeB nJ o#ect inB?ecto$ Be$ão oB noeB BJdoBnJ conBt$Qão do cZdio e O#ect PJBcJ!(

CODE EDITOR

O edito$ de cZdio $eB?onBe! ?o$ $ece#e$ todJB JB dec!J$JQeB c$iJdJB ?e!o De!?@i e andlers2

c$iJdoB ?e!o deBeno!edo$(

E no J#iente Code Edito$ Ke i?!eentJoB o J!o$ito nJ !inJe O#ect PJBcJ!(

) Co?onente Co#o+o(% MJni?!Jdo$ de eentoB(

)&

O#eto JtJ!Be!ecionJdo

P$o?$iedJde

VJ!o$ JtJ!deBtJ ?$o?$iedJde

Page 11: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 11/139

 NJ Jne!J do edito$  pode @Je$ J ot$J Jne!J denoinJdJ Code Explorer ( É J ?J$te eBKe$dJ dJ Jne!J" onde ?odeoB te$ J o$ientJQão Bo#$e oB o#etoB" ?$ocedientoB" nQeB e c!JBBeB ti!iJdJBnJ J?!icJQão( PJ$J deB!iJ$ o code explorer  c!iKe no ?eKeno 6 Jo !Jdo dJ iJ do code editor " ?J$JiBJ!iJ3!o c!iKe co o #otão di$eito dent$o do edito$ e eBco!@J V= E>?  o ?e!o tec!JdoCt$!YS@itYE(

UJ cJ$Jcte$BticJ ito i?o$tJnte do Code Explorer   Ke KJndo inBe$i$oB co?onenteB no o$"J BJ dec!J$JQão eitJ ?e!o =elpi de Jnei$J JtoticJ(

PodeoB conBide$J$ tJ# o Beinte JtoHTdo o Ke o =elpi eBc$ee$" ?$o#!eJ deleW(

Ao$J" Tdo o Ke voc eBc$ee$ ?$o#!eJ seuW(

))

CodeE?!o$e$ 

CodeEdito$ 

Page 12: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 12/139

P$o#!eJ no Bentido de JtJ!iJQão de cZdio" coo e$eoB JdiJnte( <Jndo J!te$JoB o noe doo#eto" dee3Be ti!iJ$ o eBo noe nJB $otinJB i?!eentJdJB( Ao$J" o Ke o De!?@i dec!J$o" e!eBe encJ$$eJ de JtJ!iJ$(

Pode3Be ?e$BonJ!iJ$ o Edito$ Jt$JB do en T? [ E/ O/7(

CODE INSIGHT

U $ec$Bo Ke Ji Jci!itJ$ noBBJ idJ no oento de deBeno!iento de cZdio o Code Insight 

do Code Editor do De!?@i("

E!e JtJ coo ajudante de complemento nto Jo cZdio do deBeno!edo$( Po$ ee?!o" Jo diitJ$ o noe de o#eto Beido de ?onto :(; J#$e3Be J !iBtJe de mAtodos  e ?$o?$iedJdeB Ke ?odeBe$ ti!iJdJB neBte o#eto(

EBtJ !iBtJ ?ode Be$ o$denJdJ ?o$ noe" c!icJndo co o botão direito dent$o dJ !iBtJe(

 No oento de c@JJdJ de ?$ocedientoB o todoBH

PJ$J o$QJ$ o code insight  e dete$inJdJ BitJQão" ti!iJ3BeH• Ct$! Y +J$$J de EB?JQo 3 PJ$J co?!eento de o#etoB BeB todoB e ?$o?$iedJdeB(

)%

Page 13: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 13/139

• Ct$! Y S@it Y +J$$J de EB?JQo 8 PJ$J co?!eento de ?J$\et$oB(

SPEED MENUS

S?eed MenB o MenB R?idoBW J cJ$Jcte$BticJ de ?ode$oB Be!ecionJ$ coJndoB $?idoBW Jt$JBdo #otão di$eito do oBe( E $iJB BitJQeB : citJdJB Jnte$io$ente; ti!iJoB o #otão di$eito

 ?J$J eBco!@e$ J! coJndo o JQão(

DESKTOPS TOOLBAR

EBte noo $ec$Bo ?e$ite $JJ$ $ioB !J]otB4 de te!J ?e$BonJ!iJndo Be J#iente de t$J#J!@o(EBtJB o?QeB :!J]otB; ?ode Be$ Jni?!JdJB ?e!oB coneB o ?e!o enH V= @ D/

CONFIGURAÇÕES DO AMBIENTE

O De!?@i ?e$ite Ke oc ?e$BonJ!ie o J#iente Jt$JB do en T? B E777/ O/7(

A!JB o?QeB dJ Jne!J Environment Options Ke J ?$inc?io" ?odeoB !J$ i?o$tJnteBH

4 DiB?oBiQeB dJB Jne!JB no onito$(

)4

Page 14: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 14/139

 Autosave Options

 Editor iles 8 G$JJ oB J$KioB onte :(PAS; no oento dJ co?i!JQão" eitJndo ?e$dJ de cZdio ecJBo de t$JJento dJ KinJ( Po$" não ?e$ite co?i!J$ dete$inJdo ?$oeto Be BJ!J3!oJnteB( 8roject =es/top 3 G$JJ J ?oBiQão dJB Jne!JB do ?$oeto JtJ!(

Compiling and running 

 -inimize on run 8 PJ$J iniiJ$ o De!?@i no oento dJ co?i!JQão e eeito de teBteB( EitJconBeB de Jne!JB(

Form designer 

 FeG orms as text  8PJ$J to$nJ$ compatível  oB J$KioB de deinição de ormul#rio ".=!-$ c$iJdoB no Delphi5 ?J$J o Delphi4" deB!ie eBtJ o?Qão(

TECLAS IMPORTANTES

ecla Fun!"o

F)% A!te$nJ ent$e o code editor  e o orm desi4ner.F)) A!te$nJ ent$e o code editor " orm desi4ner  e J object inspector.F)& To$nJ o oco ?J$J J Jne!J principal.

F/:RUN; Pe$ite compilar  e executar  o ?$oeto ?J$J teBteB( EBte ?$oceBBo e$Jautomaticamente o J$Kio (E6E no di$etZ$io onde oi $JJdo o J$Kio de ?$oeto :(DPR;(

CTRL Y F/ Pe$ite compilar  o ?$oeto sem eectJ$( IdeJ! ?J$J cone$nciJ de cZdio(

S0IFT Y F)% Pe$ite J!te$nJ$ ent$e oB o$!$ioB do ?$oeto(EKiJ!ente Jo cone V= ! nJ S?eed+J$(

CTRL Y F%Pe$ite deBt$JJ$W o De!?@i e cJBo de teBteB onde oco$$J exceç7es" cooe$eoB JiB JdiJnte(

PROJETO EM DELPHI

O conceito de ?$oeto e De!?@i #JBeJdo e connto de J$KioB neceBB$ioB ?J$J e$J$ JJ?!icJQão(

VJoB deBtJcJ$ oB ?$inci?JiB J$KioBH

 Extens"o ipo e descri!"o Cria!"o #ecess$rio para compilar%

(PAS

A$Kio PJBcJ!H o cZdio3ontede J nidJde PJBcJ!" o JnidJde $e!JcionJdJ J o$!$io o J nidJdeinde?endente(

DeBeno!iento Si(

)5

Page 15: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 15/139

(DPR A$Kio De!?@i P$oect(:Cont cZdio3onte ePJBcJ!(;

DeBeno!iento Si(

(DFM

De!?@i Fo$ Fi!eH J$Kio #in$io :nJ e$Bão ' ?ode Be$ cone$tido ?J$J teto; co J

deBc$iQão dJB ?$o?$iedJdeB de o$!$io e doBco?onenteB Ke e!e cont(

DeBeno!iento Si( Todo o$!$io J$JenJdo e J$KioPAS e e J$Kio DFM(

(DCU

De!?@i Co?i!ed UnitH o$eB!tJdo dJ co?i!JQão de J$Kio PJBcJ!(

Co?i!JQão A?enJB Be o cZdio3onte nãoeBtie$ diB?one!( OB J$KioBDCU ?J$J JB nidJdeB Keoc eBc$ee Bão ?JBBointe$edi$io ?o$tJnto" e!eBto$nJ J co?i!JQão JiB$?idJ(

(+MP"

(ICO"(CUR 

A$KioB de #itJ?" cone e

c$Bo$H J$KioB ?Jd$ão do7indoXB BJdoB ?J$JJ$JenJ$ iJenB de #itJ?(

DeBeno!ientoH

IJe Edito$ 

 No$J!ente não" JB e!eB

 ?ode Be$ neceBB$ioB ete?o de eecQão e ?J$JediQão JdicionJ!(

(CFGA$Kio de coni$JQão coo?QeB de ?$oeto( See!@JnteJoB J$KioB DOF(

DeBeno!iento NeceBB$io J?enJB Be o?QeB decompilação  eB?eciJiB o$Jconi$JdJB(

(DOFDe!?@i O?tion Fi!eH J$Kiode teto co JB coni$JQeBJtJiB ?J$J JB o?QeB de ?$oeto(

DeBeno!iento Eiido J?enJB Be o?QeB decompilação  eB?eciJiB o$Jconi$JdJB(

(DS1 

A$Kio de DeBto?H contino$JQeB Bo#$e J ?oBiQão dJB

 Jne!JB do De!?@i" oB J$KioBJ#e$toB no edito$ e ot$oB JBteBdJ $eJ de t$J#J!@o(

DeBeno!iento Não( Voc dee ec!3!o Beco?iJ$ o ?$oeto e noo

di$etZ$io(

(E6E

AKio eecte!H o J?!icJtio7indoXB Ke oc ?$odi(

Co?i!JQãoHLiJQão :!inin;

 Não( EBBe o J$Kio Ke ocJi diBt$i#i$( E!e inc!i todJBJB nidJdeB co?i!JdJB"o$!$ioB e $ec$BoB(

(^PA

 &ac/up do J$Kio PJBcJ!Pode Be$ JtiJdo o deBJtiJdoJt$JB do Men T? E/O/7 @  4uia displaB 8 IteH

C$eJte #Jc? i!e(

DeBeno!iento Não( EBBe J$Kio e$JdoJtoJticJente ?e!o De!?@i"KJndo oc BJ!J J noJe$Bão do cZdio3onte(

(TODOA$Kio dJ !iBtJ /3" contendooB itenB $e!JcionJdoB Jo ?$oetointei$o(

DeBeno!iento Não( EBBe J$Kio contnotJB ?J$J oB ?$o$JJdo$eB(

O De!?@i ?oBBi ecJniBo de 4erncia de ar>uivos de projeto ino$Jndo oB principais J$KioBe Be pat( C!iKe e V= P/ M<7<F(

)'

Page 16: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 16/139

A i$J JciJ ee?!o de ?$oeto iniciJ!" JindJ não BJ!o( O di$etZ$io ?Jd$ão ?J$J c$iJQãodoB J$KioB  projects" o#iJente deeoB deini$ nJ $JJQão ?JBtJ e noeB de J$KioB JiBeB?ecicoB(

.PAS E .DPR

PJ$J iBJ!iJ$oB o cZdio onte dJ nidJde :(PAS; e De!?@i #JBtJ Be!ecionJ$oB o code editor :F)%;(PJ$J iBJ!iJ$oB o cZdio onte no J$Kio de ?$oeto :(DPR; #JBtJ Be!ecionJ$oB o en P/  V= S:( O J$Kio de ?$oeto ei#ido e J 4uia no code editor (PJ$J ec@J$ J iJ #JBtJ c!icJ$ co o #otão di$eito e eBco!@e$ close pa4e(

 Não ec@e JB Jne!JB Jt$JB do X :#otão ec@J$ do 7indoXB;

SALVAR O PROJETO

Coo ioB Jnte$io$ente" o conceito de ?$oeto e De!?@i Be J Jt$JB de connto de J$KioB( No Men !? do De!?@i teoB KJt$o o?QeB ?J$J J $JJQão do ?$oetoH

OndeH

Comando O&'etivo

SJe SJ!J$ J?enJB J nidJde Be!ecionJdJSJe AB(((

SJ!J$ J nidJde Be!ecionJdJ coo((( ?ode3Be $enoeJ$ o t$ocJ$ de ?JBtJ :d?!icJndo; o J$Kio(

SJe P$oect AB(((SJ!J$ o ?$oeto coo_ ?ode3Be $enoeJ$ o t$ocJ$ de ?JBtJ:d?!icJndo; o J$Kio(

SJe A!! G$JJ todoB oB J$KioB do ?$oeto" e JtJ!iJ3oB cJBo BeJ BJ!oB(

Ao c!icJ$ e SJ!e A!! J#$e3Be J cJiJ de di!oo ?Jd$ão do 7indoXB onde dee Be$ ?$eenc@ido onoe do J$Kio e eBco!@idJ J ?JBtJ ?J$J J$JenJ$ o ?$oeto(

)*

Page 17: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 17/139

O#Be$e o tt!o dJ Jne!J" ?oiB J?ZB J $JJQão do J$Kio dJ nidJdeW" Be$ ei#idJ J eBJ cJiJ:co tt!o die$ente; ?J$J J $JJQão do J$Kio de ?$oetoW(

 

ABRIR O PROJETO

O ?$oeto e De!?@i dete$inJdo Jt$JB do J$Kio co etenBão (DPR( DeBtJ o$J" ?J$J J#$i$  ?$oeto" dee3Be J#$i$ o J$Kio (DPR( No en !? do De!?@i ?odeoB ti!iJ$ JiB de J o?QãoH

OndeH

Comando O&'etivo

O?en Pe$ite J#$i$ J$Kio (DPR" (PAS ent$e $?oB de ?$oeto(O?en P$oect((( Pe$ite J#$i$ J$Kio de ?$oeto(Reo?en Pe$ite $eJ#$i$ J$Kio :DPR o PAS; ti!iJdo Jnte$io$ente(

 Não J#$J J$Kio (PAS Jt$JB deBtJB o?QeB" J enoB Ke BJi#J o Ke eBt Jendo( OBJ$KioB (PAS dee Be$ J#e$toB Jt$JB do en V= B U7/ J?ZB J J#e$t$J do (DPR(

OPÇÕES DE PROJETO

O De!?@i ?e$ite J coni$JQão de $ioB itenB do BiBteJ Jt$JB do en P/ O/7(

),

EBco!@e$ J ?JBtJ(

 NoeJ$ oJ$Kio(

Page 18: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 18/139

Forms

• MJin o$ 3 NeBtJ iJ ?e$ite J eBco!@J do o$!$io principal  dJ J?!icJQão(• AJi!J#!e o$ 3 OB o$!$ioB available  :diB?oneiB; e cJBo de c$iJQão e te?o de

eecQão(

 Application

• Tit!e 3 Deine noe ?J$J J BJ J?!icJQão die$ente do noe do J$Kio de ?$oeto :(DPR;(• 0e!? i!e 8 Deine o noe do J$Kio de 0e!? :(0LP; JBBociJdo J?!icJQão(• Icon 8 Deine o cone ti!iJdo no J$Kio eecte!( :(E6E;

Compiler 

• EBtJB o?QeB ?e$ite eB?eciicJ$ J compilação personalizada o BeJ" cJdJ ?$oeto ?odeBe$ co?i!Jdo co J cJ$Jcte$BticJ(

 (in)er 

• EBtJB o?QeB inc!e ino$JQeB ?J$J J de?$JQão(

 Directories*Conditionals

•  NeBtJ iJ ?ode3Be coni$J$ o di$etZ$io de BJdJ ?J$J oB J$KioB e$JdoB ?e!J J?!icJQão(

+ersion In,o

• EBtJB ino$JQeB ?ode Be$ iBJ!iJdJB no 7indoXB Jt$JB do en $?ido do oBe noJ$Kio eecte!(

)-

Page 19: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 19/139

 Pac)ages

• OB ?JcJeB ?e$ite cont$o!e de diBt$i#iQão Jt$JB de DLLWB #BicJB externas  Joeecte! ent$e ot$oB $ec$BoB(

A LISTA TO-DO

O De!?@i Jdiciono $ec$Bo de cont$o!ee$enciJento de ?$oeto nJ e$Bão '" denoinJdo o< Do

 (ist ( Voc ?ode inc!i$ inc!i$ o odiicJ$ itenB J Be$e eitoB Jt$JB de di!ooB Ke ?ode te$ doiBeBtJdoB" prontos o  azer (PJ$J ti!iJ$ J T3D L/ c!iKe no en V= [ T@D L/(

C!iKe co o #otão di$eito dent$o dJ Jne!J e eBco!@J A(O J$Kio e$Jdo ?e!J !iBtJ $JJdo no di$etZ$io do ?$oeto co J etenBão .todo

TIPOS DE COMPONENTES

FJeoB J diBtinQão de dJB cJteo$iJB #BicJB KJndo t$JtJoB doB co?onenteB" BãoHCo?onenteB ViBeiB e Co?onenteB Não3ViBeiB(

+isíveis<Jndo co?onente ?ode Be$ iBto ?e!o B$io e te?o de eecQão( Ee?!o +tton e Edit(

 #"o-+isíveisA!nB co?onenteB J?J$ece no o$ d$Jnte o te?o de ?$oeto nJ J?J$nciJ de cone" JB não ?ode Be$ iBtoB ?e!o B$io e te?o de eecQão( Ee?!oH Tie$ e MJinMen(

CONVENÇÃO DE NOMEAÇÃO

A ?$o?$iedJde JiB i?o$tJnte de co?onente J ?$o?$iedJde  Fame( É e!J Ke deine o noeinterno co $e!JQão Jo cZdio eBc$ito e O#ect PJBcJ!( PJ$J o$JniJ$ e Jci!itJ$ o ?$oceBBo dedeBeno!ientoJntenQão do BiBteJ" $Jnde ?J$te doB deBeno!edo$eB JdotJ J noenc!Jt$J ?J$J to$nJ$ o cZdio JiB !ee! ?oBBe!(

)/

Page 20: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 20/139

O De!?@i JdotJ coo noenc!Jt$J ?Jd$ão o noe dJ c!JBBe dJ KJ! o co?onente instanciado e n`e$o c$eBcente de Jco$do co o n`e$o de oco$$nciJ deBte co?onente no o$( Ee?!oH+tton)" +tton%" etc((( Bão co?onenteB instanciados dJ c!JBBe T+tton (

 Não o#$iJtZ$iJ J ti!iJQão dJ conenQão de noeB ti!iJdoB neBtJ J?oBti!J" JB A muito importanteJe$ Bo de J conenQão JiB c!J$J ?oBBe!(

Ee?!oH

 #ome gerado pelo Delphi O&'etivo Conven!"o

+tton) SJi$ dJ J?!icJQão +tnSJi$  Edit) Rece#e$ noe do B$io EdtNoeLJ#e!) IndicJ$ co?onente Edit L#!Noe

MANIPULANDO COMPONENTES

PodeoB JdicionJ$ oB co?onenteB Jo o$!$io de t$B Jnei$JB" :citJdJB Jnte$io$ente; e ti!iJ$ e$$JentJB e tcnicJB de J!in@Jento ?J$J JentJ$ noBBJ ?$odtiidJde(

PJ$J Be!ecionJ$ co?onente" #JBtJ c!ic3!o J e o nJ o#ect inB?ecto$ Be!ecion3!o nJ cJiJ de!iBtJe(Pode3Be então J$$JBt3!o co o MoBe o ti!iJ$ JB tec!JB CTRLYSETAS ?J$J oe$ o co?onente(AB tec!JB S0IFTYSETAS J!te$J J !J$$J e J!t$J(

PJ$J Be!ecionJ$ JiB de co?onente Jo eBo te?o" ti!iJ3Be J tec!J S0IFT" ?ode3Be oe$ oJ!te$J$ o connto(

O $ec$Bo de arrastar e selecionar   :PJint" ?o$ ee?!o; !ido KJndo J #JBe o Fo$(<Jndo inBe$i$oB co?onenteB e ciJ de ot$o o#eto :PJne!" ?o$ ee?!o; neceBB$ioBe$J$ J tec!J CTRL no ?$oceBBo de J$$JBtJ$(

PJ$J deini$ $ioB co?onenteB #JBeJdoB e J ?$o?$iedJde de ot$o" J!te$e o co?onentemodeloW" Be!ecione3o ?$iei$o e co S0IFT Be!ecione oB ot$oB( NJ o#ect inB?ecto$ Be!ecioneJ ?$o?$iedJde J Be$ deinidJ ?J$J todoB 7idt@ :!J$$J" ?o$ ee?!o; e J?e$te J tec!J ESC(

O De!?@i diB?e de J e$$JentJ ?J$J J!io Jo J!in@Jento doB co?onenteB( C!iKe no enV= A?F77/ P<?//

%&

Page 21: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 21/139

UJ ot$J o?Qão c!icJ$ Bo#$e o co?onente Be!ecionJdo e no S?eed Men :Men $?ido; Be!ecionJ$ A?F7(

.tili/ando o O&'ect Inspector 

O o#ect inB?ecto$ J Jne!J i?o$tJntBBiJ nJ ?$o$JJQão o$ientJdJ J o#etoB" Jt$JB de!J Ke ?odeoB J!te$J$ JB ?$o?$iedJdeB e deini$ oB eentoB de Jco$do co o o#etio dJ J?!icJQão(

%)

Page 22: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 22/139

 NJ ?J$te B?e$io$ dJ Jne!J @ J cJiJ de !iBtJe Ke ?e$ite J Be!eQão de co?onenteB inBe$idoB no o$!$io( DJB iJB : 8roperties e Events; Be?J$J JB !iBtJB de ?$o?$iedJdeB e eentoB(

AB ?$o?$iedJdeB Bão deinidJB Jt$JB de ti?oB( PodeoB citJ$ no ee?!o co o o#eto o$H

?ipos :imples

São ti?oB St$in o J!o$eB n$icoB deinidoB Jo diitJ$ J!o$ nJ $ente dJ ?$o?$iedJde( Ee?!oH NJe" CJ?tion" 0ei@t e 7idt@ ent$e ot$oB(

?ipos EnumeradosSão ti?oB deinidoB ?o$ J KJntidJde !iitJdJ de o?QeB Ke dee Be$ ?$eiJente Be!ecionJdJB"não Bi?!eBente deinidJB ?e!o B$io(Ee?!oH C$Bo$" +o$de$St]!e e 7indoXStJte ent$e ot$oB(

?ipo :et A!JB ?$o?$iedJdeB ?ode conte$ `!ti?!oB J!o$eB( U ee?!o J ?$o?$iedJde +o$de$IconB coo BinJ! Y indicJndo B#?$o?$iedJdeB(

?ipos com Editor de 8ropriedadesAB ?$o?$iedJdeB Ke Bão Jco?Jn@JdJB de cone de $eticnciJB :(((; indicJ Ke J Jne!J dedi!oo i$ Ji!iJ$ nJ eBco!@J de Be:B; J!o$:eB;( Ee?!oH Icon(

%%

Page 23: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 23/139

Manip!an"# E$%n&#'

A iJ  Events ?e$ite o deBeno!edo$ deini$ handler 4  e O#ect PJBcJ! ?J$J dete$inJdoeento Ke ?ode Be$ diB?J$Jdo ?e!o B$io o ?e!o BiBteJ(

U eento J a!"o diB?J$JdJ dent$o de J J?!icJQão o$ientJdJ J O#eto( PodeoB citJ$ JB

oco$$nciJB doB ?$inci?JiB eentoB Ke Bão diB?oni#i!iJdoB nJ Jio$iJ doB co?onenteB e De!?@iH

 Evento Ocorr0ncia

OnC!ic <Jndo o B$io c!icJ$ J e co o #otão eBKe$do do oBe Bo#$e oco?onente(

OnD#!C!ic <Jndo o B$io d d?!o c!iKe no co?onente co o #otão eBKe$do dooBe(

OnEnte$ <Jndo o co?onente $ece#e o oco(OnEit <Jndo o co?onente ?e$de o oco(On1e]P$eBB <Jndo ?$eBBionJ J `nicJ tec!J de cJ$Jcte$e(

Constru!"o de um manipulador de evento para o o&'eto &utton1

• InBi$J um co?onente #tton no Fo$" não neceBB$io dJ$ nen@J ?$o?$iedJde(• Se!ecione J o#ect inB?ecto$ J iJ events e !ocJ!ie o eento OnClic/ (• D d?!o c!iKe no eB?JQo e #$Jnco do eento(

OB co?onenteB ?oBBe eento <0W ?J$J J conBt$Qão do cZdio" ?o$ iBBo ?oBBe!c!icJ$ no componente dJB eeB ?J$J J#$i$ eento(

5 MJni?!Jdo$ de eento

%4

Uti!ie ooBe e d d?!oc!iKe noeB?JQo e

 #$Jnco" ?J$JJ#$i$ o eentodeBeJdo(

Se!ecione JiJ eentB

Page 24: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 24/139

 No Code Editor   c$iJdJ J dec!J$JQão do eento nJ c!B!J  Interace  e J i?!eentJQão do ?$ocediento nJ c!B!J Implementation(

Coo e$eoB co JiB detJ!@eB noB ?$ZioB cJ?t!oB" todo cZdio e o#ect ?JBcJ! de!iitJdo ?e!JB ?J!J$JB $eBe$JdJB a-F7b e a7b(

DeinJ J?enJB JB dJB !in@JB de cZdio dent$o doB de!iitJdo$eB( procedure TForm1.Button1Click(Sender: TObject); begin

  Form1.Caption := ‘Curo de !elp"i#;  S"o$mea%e(‘&'emplo de cai'a de dilo%o#);end ;

O#Be$e J conBt$Qão do ?$ocediento c$iJdo ?e!o ?$Z?$io De!?@iH

 procedure TForm1.Button1Click(Sender: TObject); begin

end ;

 Executando a aplica!"oPJ$J eectJ$ o ?$o$JJ e iBJ!iJ$ oB doiB coJndoB codiicJdoB no eento OnClic/  #JBtJ tec!J$ !9o o cone R:7(

COMENT(RIOS

OB coent$ioB no cZdio onte Bão i?o$tJnteB e ?ode Be$ eitoB Jt$JB doB BeinteB B#o!oBH

//Comentário de linha

{ Comentário de bloco }

(*Comentário de bloco *)

%5

 Fame do o#eto

 Fame do o$Ke deine JnoJ c!JBBe

Eento Jni?!Jdo

Page 25: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 25/139

VCL

VJoB conBide$J$ J!nB o#etoB e BJB ?$inci?JiB propriedades e mAtodos(

O&'eto 2 Form 3Formul$rio

PJ!etJ 8 StJndJ$t

I?o$t\nciJH É o ?$inci?J! co?onente container   ?oiB ?e$ite ?oBicionJ$ oB deJiB co?onenteB e BieBo(É !ite$J!ente J i?!eentJQão do conceito de Jne!JBWdo BiBteJ o?e$JcionJ! 7indoXB(

 Propriedades

ActieCont$o! Pe$ite deini$ KJ! o  primeiro  co?onente J $ece#e$  ,oco  JBBi Ke oo$!$io c$iJdo(

A!in A!te$J o J!in@Jento e ?$eenc@iento do o#eto(AtoSc$o!! Pe$ite @J#i!itJ$ JB #J$$JB de $o!Je(AtoSie Dete$inJ Be o cont$o!e Be$ JtoJticJente $edienBionJdo(+o$de$IconB Dete$inJ oB coneB J Be$e ei#idoB nJ #J$$J de tt!o do o$!$io(+o$de$St]!e Deine o eBti!o dJ #o$dJ do o$!$io(

 #BDiJ!o 8 +o$dJ não $edienBione!" co e cJiJ de di!oo #BSin!e 8 +o$dJ Bi?!eB e $edienBione!(

 #BNone 8 +o$dJ iniBe!" não $edienBione!" Be #oteB de cont$o!e( #BSieJ#!e 8 +o$dJ ?Jd$ão $edienBione!(+o$de$7idt@ Deine J eB?eBB$J dJ #o$dJ(CJ?tion IndicJ o $Zt!o ei#ido ?J$J o co?onente(C!ient0ei@t C!ient7idt@

Deine J J!t$J e !J$$J dJ $eJ c!iente(

Co!o$ Deine J co$ de ndo de co?onente(C$Bo$ IndicJ J iJe ei#idJ ?e!o ?ontei$o do oBe KJndo eBte icJ$ Bo#$e o

o#eto(DeJ!tMonito$ 

ABBociJ o o$ J onito$ eB?ecico e J J?!icJQão Ke ti!iJ $ioBonito$eB(

EnJ#!ed Deine Be o co?onente eBt @J#i!itJdo o não(Font Pe$ite cont$o!J$ oB Jt$i#toB do teto ei#ido e co?onente(Fo$St]!e Dete$inJ o eBti!o do o$!$io(

BNo$J! 8 DeiniQão ?Jd$ão do o$!$io(BMDIC@i!d 8 O o$!$io Be$ J Jne!J3i!@J de J J?!icJQão MDI(BMDIFo$ 8 O o$!$io Be$ o o$!$io3?Ji de J J?!icJQão MDI(BStJ]OnTo? 8 O o$!$io ?e$Jnece sobre todoB oB ot$oB o$!$ioB do ?$oeto" eceto JKe!eB Ke tJ# t J ?$o?$iedJde Fo$St]!e iJ! JBStJ]OnTo?(

%'

Page 26: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 26/139

0ei@t Deine J J!t$J do o#eto(0e!?Contet Deine o tZ?ico do J$Kio @e!? Ke Be$ ei#ido Jo ?$eBBionJ$ J tec!J F)(0e!?Fi!e Deine J$Kio de @e!? eB?ecico(0int Pe$ite ei#i$ teto de J!io no oento e Ke o ?ontei$o do oBe

 ?e$Jnece Bo#$e o cont$o!e(0o$Sc$o!!+J$ Deine o co?o$tJento de J #J$$J de $o!Je @o$iontJ!(

Icon Deine o cone Ke Be$ BJdo ?e!o o$!$io(1e]P$eieX Deine Be o o$!$io dee o não $eB?onde$ J ?$eBBionJento de tec!J"Jt$JB do eento On1e]P$eBB" ?o$ ee?!o(

Let Deine J coo$denJdJ dJ et$eidJde eBKe$dJ de co?onente(Men Pe$ite eBco!@e$ ent$e JiB de co?onente MJinMen(N< Deine o noe interno Ke identiicJ o co?onente dent$o dJ J?!icJQão(Po??Men Deine o co?onente Po??Men J Be$ ti!iJdo ?e!o o#eto(PoBition Pe$ite deini$ o tJJn@o e ?oBiQão de o$!$io no oento e Ke

e!e J?J$ece nJ BJ J?!icJQão(S@oX0int Deine Be J Bt$in de J!io dee o não Be$ ei#idJ KJndo o B$io

Jnt o ?ontei$o do oBe Bo#$e cont$o!e(

TJ A ?$o?$iedJde TJ J J$ie! do ti?o Lonint Ke o De!?@i co!ocJ diB?oBiQão do B$io" Ke ?ode Jt$i#i$ o BiniicJdo JiB coneniente(

To? Deine J coo$denJdJ dJ et$eidJde B?e$io$ de co?onente(Ve$tSc$o!!+J$ Deine o co?o$tJento de J #J$$J de $o!Je e$ticJ!(ViBi#!e Deine Be o co?onente J?J$ece o não nJ te!J(7idt@ Deine J !J$$J do o#eto(7indoXMen Pe$ite deini$ KJ! o en $eB?onBe! ?o$ Jni?!J$ JB Jne!JB3i!@JB de

J J?!icJQão MDI(7indoXStJte Deine o eBtJdo de ei#iQão de o$!$io(

 6todos

S@oX Ei#e o o$!$io de Jni?!JQão não3odJ!(S@oXModJ! Ei#e o o$!$io de Jni?!JQão odJ!(C!oBe Pe$ite ec@J$ o o$!$io(

O&'eto 2 Button 3Bot"o

PJ!etJ 8 StJndJ$t

I?o$t\nciJH É doB o#etoB JiB ti!iJdoB ?J$J coni$J$ e diB?J$J$ $otinJB JBBociJdJB(

%*

Page 27: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 27/139

 Propriedades

Action Ree$enciJ J JQão deinidJ e o#eto TActionLiBt(Anc@o$B Pe$ite Jnte$ J ?oBiQão $e!JtiJ do o#eto Jo o#eto ?J$enteW KJndo eBte

$ediencionJdo(C<7? ABBociJ o eento OnC!ic do o#eto Jo ?$eBBionJento dJ tec!J EBc(D<:?/ ABBociJ Jo eento OnC!ic do o#eto Jo ?$eBBionJento dJ tec!J Ente$(

ModJ!ReB!t P$o?$iedJde ti!iJdJ ?J$J ence$$J$ J eecQão de o$!$io ModJ! KJndoBe!ecionJdo J!o$ die$ente de $None(PJ$ent((( AB ?$o?$iedJdeB  8arent   ?e$ite Ke o co?onente $ece#J J eBJ

o$JtJQão do o#eto ?$o?$iet$io(TJ#O$de$ Deine J o$de nJ ?JBBJe de oco no oento de ?$eBBionJento dJ tec!J

TA+(TJ#Sto? Deine Be o oco p#ra no co?onente(

 6todos

SetFocB EniJ o oco do XindoXB ?J$J o co?onente(

O&'eto 2 Edit 3Caixa de edi!"o

PJ!etJ 8 StJndJ$t

I?o$t\nciJH U doB ?$inci?JiB co?onenteB ?J$J J ent$JdJ de dJdoB do B$io do BiBteJ(

 Propriedades

AtoSe!ect Deine Be o teto ei#ido ?e!o cont$o!e Be$ Be!ecionJdo KJndo eBte$ece#e$ o oco dJ J?!icJQão(

AtoSie PJ$J co?onenteB TEdit J ?$o?$iedJde dete$inJ Be J J!t$J do cont$o!eBe$ $edienBionJdJ KJndo o tJJn@o dJ onte  J!te$Jdo(

+o$de$St]!e Dete$inJ o ti?o dJ #o$dJ do co?onente(C@J$CJBe Dete$inJ o Be ti?o dJ onte Be$ Ji Bc!J" in`Bc!J o no$J!(0ideSe!ection Deine Be o teto ?e$de J Be!eQão Jo ?e$de$ o oco(MJ!ent@ Deine !iite ?J$J J inBe$Qão de cJ$Jcte$eB(PJBBXo$dC@J$ Deine KJ! cJ$Jcte$e Be$ BJdo ?J$J oc!tJ$ o teto inBe$ido no

co?onente(T>/ Pe$ite Jni?!J$ oB cJ$Jcte$eB inBe$idoB no co?onente ?e!o B$io(

 6todos

C!eJ$ Li?J o conte`do dJ ?$o?$iedJde tet(SetFocB EniJ o oco do XindoXB ?J$J o co?onente(

%,

Page 28: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 28/139

O&'eto 2 (a&el 378tulo de orienta!"o

PJ!etJ 8 StJndJ$t

I?o$t\nciJH O$ientJ$ o B$io eBco!@J deco?onenteB #e coo BJ ti!iJQão(

 Propriedades

A!inent Deine o J!in@Jento dJ Bt$in nJ $eJ do co?onente(AtoSie PJ$J co?onenteB TD+Tet e TLJ#e!" eBtJ ?$o?$iedJde deine Be o cont$o!e

Be$ JtoJticJente $edienBionJdo ?J$J JcoodJ$ o teto(FocBCont$o! Deine KJ! o co?onente $ece#e$ oco KJndo o B$io Be!ecionJ$ J

co#inJQão de tec!JB Jce!e$Jdo$JB :JtJ!@o; Be eiBti$(LJ]ot Deine o J!in@Jento e$ticJ! do teto nJ $eJ do co?onente(S@oXAcce!C@J$ Deine Be o cJ$Jcte$ >W Be$ !ite$J! o tec!J de Jce!e$Jdo$J :JtJ!@o;(T$JnB?J$ent Deine Be o ndo do co?onente Be$ t$JnB?J$enteW o não(7o$d7$J? Deine Be o teto ?ode$ ti!iJ$ o $eto$no JtoticoW e cJBo de

!t$J?JBBJ$ J !J$$J deinidJ e Be J ?$o?$iedJde @uto:ize eBtie$ J!BJ(

MAIS SOBRE A PALETA STANDART

O&'eto 2 emo 3emorando

PJ!etJ 8 StJndJ$t

I?o$t\nciJH Pe$ite o B$io ent$J$ co dJdoBdo ti?o TSt$inB" co?J$J3Be ncionJ!idJdedo BotXJ$e #!oco de notJB(

 Propriedades

L7 P$o?$iedJde do ti?o TSt$inB Ke cont JB !in@JB de teto doco?onente(

MJLent@ Deine o !iite io de cJ$Jcte$eB no co?onente e BJ ?$o?$iedJdeLineB(

ReJdOn!] Deine Be o co?onente do ti?o Boente !eit$J(Sc$o!!+J$B Deine Be o co?onente ?ode t$J#J!@J$ co #J$$JB de $o!Je(7JntRet$nB Deine Be J tec!J ENTER Be$ ti!iJ ?J$J Ke#$J de !in@JW(

%-

Page 29: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 29/139

7JntTJ#B Deine J tec!J TJ# coo tJ#!JQão o dJnQJ de oco( CJBo J!Bo ?ode3Be ti!iJ$ CTRLYTA+ ?J$J ?$odi$ o eeito deBeJdo(

 6todos

LoJdF$oFi!e Pe$ite cJ$$eJ$W J$Kio ?J$J J ?$o?$iedJde LineB(SJeToFi!e Pe$ite BJ!J$ o conte`do dJ ?$o?$iedJde LineB e J$Kio

eB?eciicJdo(

O&'eto 2 Chec)Box 3Caixa de veri,ica!"o

PJ!etJ 8 StJndJ$t

I?o$t\nciJH Pe$ite e$iicJ$ o?QeB #oo!enJB ?$3deinidJB o $e3deinidJB ?e!o B$io(

 Propriedades

A!!oXG$J]ed Deine cJBo e$dJdei$o" t$B eBtJdoB ?oBBeiB ?J$J o c@ec#oH c@eced:!iJdo;" nc@eced :deB!iJdo; e $J]ed :?J$ciJ!;( CJBo J!Bo" doiBeBtJdoBH c@eced :!iJdo; e nc@eced :deB!iJdo;(

C Deine Be o co?onente eBt !iJdo o não" cJBo ten@J J?enJB doiBeBtJdoB(

StJte Pe$ite deini$ t$B eBtJdoB Be A!!oXG$J]ed  e$dJdei$o(

O&'eto 2 7adioButton 3Bot"o de 9radio:

PJ!etJ 8 StJndJ$t

I?o$t\nciJH Pe$ite eBco!@e$ ent$e $?o" pelo menos J o?Qão(

 Propriedades

C Deine Be o co?onente eBt !iJdo o deB!iJdo(

%/

Page 30: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 30/139

O&'eto 2 (istBox 3Caixa de listagem

PJ!etJ 8 StJndJ$t

I?o$t\nciJH Pe$ite o B$io ent$J$ oJni?!J$ J !iBtJ de dJdoB(

 Propriedades

I/ Deine J !iBtJ de St$inB Ke J?J$ece no co?onente(M!tiSe!ect Pe$ite Be!ecionJ$ $ioB itenB :St$inB; no co?onente(So$ted Deine Be J !iBtJ de St$inB Be$ o$denJdJ o não(

 6todosC!eJ$ Pe$ite !i?J$ o conte`do dJ ?$o?$iedJde IteB(LoJdF$oFi!e Pe$ite cJ$$eJ$W J$Ko ?J$J J ?$o?$iedJde IteB(SJeToFi!e Pe$ite BJ!J$ o conte`do dJ ?$o?$iedJde IteB ?J$J J$Kio(

O&'eto 2 Com&oBox 3Caixa de listagem em ,ormato de cortina

PJ!etJ 8 StJndJ$t

I?o$t\nciJH Pe$ite o B$io ent$J$ o

Jni?!J$ J !iBtJ de dJdoB(

 Propriedades

I/ Deine J !iBtJ de St$inB Ke J?J$ece no co?onente(So$ted Deine Be oB dJdoB Be$ão o$denJdoB(T>/ Deine o teto JtJ! dJ Co#o#o(

 6todos

C!eJ$ Pe$ite !i?J$ o conte`do dJ ?$o?$iedJde IteB(LoJdF$oFi!e Pe$ite cJ$$eJ$W J$Ko ?J$J J ?$o?$iedJde IteB(SJeToFi!e Pe$ite BJ!J$ o conte`do dJ ?$o?$iedJde IteB ?J$J J$Kio(

4&

Page 31: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 31/139

O&'eto 2 ;roupBox 3Caixa de agrupamento

PJ!etJ 8 StJndJ$t

I?o$t\nciJH Pe$ite J$?J$ co?onenteB eeBtJ#e!ece$ tt!o nJ ?$o?$iedJde CJ?tion(

 Propriedades

A!in Peite deini$ J!in@Jento no o#eto ?$o?$iet$io(CJ?tion Deine o teto ino$Jtio nJ ?J$te B?e$io$ do co?onente(

O&'eto 7adio;roup 3;rupo de &ot<es 9radio:

PJ!etJ 8 StJndJ$t

I?o$t\nciJH Pe$ite eBtJ#e!ece$ $?o de #oteB de $Jdio e Jni?!J3!oB ?e!J ?$o?$iedJde IteInde(

 Propriedades

I/ Deine oB itenB diB?oneiB Jo B$io(I/I7> Deine KJ! doB itenB eBt Be!ecionJdo(Co!nB Deine o n`e$o de co!nJB ?J$J o$JniJQão doB co?onenteB(

O&'eto 2 Panel 3Painel

PJ!etJ 8 StJndJ$t

I?o$t\nciJH Pe$ite J$?J$ ot$oB o#etoB eeBtJ#e!ece$ eeito iBJ! nJB J?!icJQeB(

4)

Page 32: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 32/139

 Propriedades

A!in Deine o J!in@Jento do co?onente e $e!JQão Jo Be ?$o?$iet$io(+ee!((( Deine J cJ$Jcte$BticJ dJB #o$dJB :inte$nJ e ete$nJ; #e coo BJ eB?eBB$J(+o$de$St]!e Deine o ti?o dJ #o$dJ(

O&'etos 2 ainenu e Popupenu 3enu principal e enu r$pido

PJ!etJ 8 StJndJ$t

I?o$t\nciJH Deine oB MenB ti!iJdoB ?e!oB$io ?e!o #otão eBKe$do :MJinMen; o ?e!o #otão di$eito :Po??Men; do MoBe(

 Propriedades

IteB Deine noo ite de Men(IJeB Deine o#eto do ti?o IJeLiBtW(

O o#eto MJinMen ?e$ite J conBt$Qão de  sub<menus Jt$JB de Be construtor  c!icJndo noite co o #otão di$eito e eBco!@endo J o?Qão Create submenu( Pode3Be tJ# ec!i$ o inc!i$ iteB J!eJto$iJente Jt$JB do #otão di$eito no ite deBeJdo(PJ$J c$iJ$ Be?J$Jdo$ de enB" ti!ie o o?e$Jdo$ de B#t$JQão :3; e coni$e co J

tec!J Ente$(

A LINGUAGEM OBJECT PASCAL

Po$ JiB $ec$BoB $icoB Ke JB !inJenB o$ientJdJB J o#etoB ?oBBJ" e dete$inJdo oentonão @ coo i$ do c+di4o( A ?$o$JJQão e De!?@i deinidJ Jt$JB dJ LinJe O#ectPJBcJ!" J etenBão do PJBcJ! ?$o?oBto ?o$ Ni!JB 7i$t@(

ConBide$JoB J J?!icJQão e De!?@i #JBeJdJ e connto de J$KioB" :citJdoBJnte$io$ente (DPR (PAS e (DFM; #BicoB( VJoB eJinJ$ J!nB J$KioB de ndJentJ!i?o$t\nciJH

O M)DULO .DPR

Todo ?$o$JJ e O#ect PJBcJ! ?oBBi J$Kio (DPR" conBide$Jdo coo ar>uivo de projeto" o Beo$Jto co?oBto iniciJ!ente dJ Beinte deiniQãoH

 program roject1;

uses

4%

Page 33: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 33/139

  Form*  +nit1 in ,+nit1.pa, -Form1;

{$R *.RES}

 begin

  /pplication.0nitialie;  /pplication.CreateForm(TForm1* Form1);

  /pplication.2un;end .

A ?J!J$J  pro4ram  deine o noe do ?$o$JJ" eBte noe Be$ J!te$Jdo KJndo o$ $JJdo oJ$Kio (DPR do ?$oeto( NJ c!B!J uses" Bão !iBtJdJB JB units BJdJB ?e!o Zd!o ?$inci?J!( AB units :Ke Be$ão iBtJB JdiJnte;Bão $eB?onBeiB ?e!J cJ?JcidJde de diidi$ o ?$o$JJ e J iBão modularizada( E cJdJ "dec!J$JoB J B$ie de o#etoB :nQeB" J$ieiB" ?$ocediento" etc(((; Ke ?ode Be$ BJdoB ?o$ ot$JB units e ?e!o Zd!o ?$inci?J!(E BeidJ e connto de coJndoB :denoinJdo comando composto; Jt$JB de doiBde!iitJdo$eB &egin e end (

AS UNITS

U ?$o$JJ e O#ect PJBcJ! conBtitdo de Zd!o ?$inci?J! :(DPR; e de J o JiBnidJdeB de co?i!JQão :(PAS;( O co?i!Jdo$ e$J J$Kio co o cZdio o#eto co$$eB?ondente" econBide$J o eBo noe do J$Kio (PAS co J etenBão (DCU(

AB units  Bão entidJdeB inde?endenteB" o BeJ" no oento dJ c$iJQão não @ nc!o !Zico :neBico; ent$e J unit  e ?$o$JJ ?$inci?J! Ke J ti!iJ( Co eBtJ cJ$Jcte$BticJ" ?odeoB ti!iJ$ JB units e KJ!Ke$ ?$oeto(A ?$inci?J! cJ$Jcte$BticJ do conceito de unit   Ke ?oBBi#i!itJ eBt$t$J$ o ?$o$JJ e Zd!oB

ncionJiB" co cJdJ unit   ?$oendo connto de nQeB e ?$ocedientoB( CJdJ o$!$ioco$$eB?onde J J unit ( MJB" ?odeoB c$iJ$ units inde?endenteB" não JBBociJdJB J  orm(

Se conBide$J$oB o cZdio J unit  co co?onente &utton e Jni?!Jdo$ de eento" te$eoBo Beinte cZdioHunit +nit1;

interface

uses  3indo$* 4ea%e* S5+til* Clae* 6rap"ic* Control* Form*!ialo%* StdCtrl* &'tCtrl* ComCtrl;

type  TForm1 = cla(TForm)  Button1: TButton;  procedure Button1Click(Sender: TObject);  private

  - ri7ate declaration   public

  - ublic declaration   end ;

var

44

Page 34: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 34/139

  Form1: TForm1;

implementation

{$R *.DFM}

 procedure TForm1.Button1Click(Sender: TObject); begin

  Form1.Caption := ,Curo de !elp"i,;  S"o$mea%e(,&'emplo de cai'a de dilo%o,);end ;

end .

UJ unit  ?oBBi cinco ?J$teBH

Ca&e!alhoCont J ?J!J$J $eBe$JdJ unit  BeidJ de identiicJdo$ Ke o noe dJ unit ( EBte noe o eBo noe do J$Kio co etenBão (PAS

unit +nit1;

 Inter,aceCont tdo o Ke J unit  e?o$tJH conBtJnteB" ti?oB" J$ieiB" ?$ocedientoB" nQeB" etc((( NJdec!J$JQão doB ?$ocedientoB e nQeB Ke J unit  e?o$tJ" dee conBtJ$ J?enJB o cJ#eQJ!@o:noe e ?J$\et$oB;( A dec!J$JQão co?!etJ icJ nJ ?J$te dJ implementação(

interfaceuses  3indo$* 4ea%e* S5+til* Clae* 6rap"ic* Control* Form*!ialo%* StdCtrl* &'tCtrl* ComCtrl;

type

  TForm1 = class(TForm)  Button1: TButton;  procedure Button1Click(Sender: TObject);  private

  - ri7ate declaration   public

  - ublic declaration   end ;var

  Form1: TForm1;

 Implementa!"oCont J deiniQão co?!etJ dJB  unç7es e  procedimentos Ke conBtJ nJ interace( Se nJ

i?!eentJQão Bão BJdoB identiicJdo$eB deinidoB e ot$J unit " o noe deBtJ ot$J unit  deeBe$ inc!do nJ !iBtJ de units dJ c!B!J uses dJ i?!eentJQão(

implementation{$R *.DFM}

 procedure TForm1.Button1Click(Sender: TObject); begin  Form1.Caption := ,Curo de !elp"i 8 S&9/C 46,;  S"o$mea%e(,&'emplo de cai'a de dilo%o,);end ;

45

Page 35: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 35/139

Page 36: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 36/139

SJ!!int 34%,*-((4%,*, )*Lonint 3%)5,5-4*5-(( %)5,5-4*5, 4%Int*5 3%*4((%*43) *5+]te &((%'' - #itB" Be BinJ!7o$d &((*''4' )* #itB" Be BinJ!LonXo$d &((5%/5/*,%/' 4% #itB" Be BinJ!

ipos de n=meros 7eais

ipo Faixa de +alores

ReJ! %(/)&E34/(()(,)&E4-Sin!e )(')&E35'((4(5)&E4-Do#! '(&)&E34%5(()(,)&E4&-Etended 4(5)&E35/4%(()())&E5/4%Co? 3%)&E*4Y)((%)&E*43)C$$enc] 3/(%%)&E)5((/(%%)&E)5

ipos de vari$veis &ooleanas

ipo Faixa de +alores+oo!eJn FJ!Be o T$e+]te+oo! 7o$d+oo! Lon+oo!

ipos de vari$veis de caracteres

ipo +alores

C@J$ Pe$ite J$JenJ$ cJ$Jcte$e ASCII(S@o$tSt$in Pe$ite J$JenJ$ J cJdeiJ de Jt %'' cJ$Jcte$eB(

St$in Pe$ite J$JenJ$ J cJdeiJ i!iitJdJW de cJ$Jcte$eB(ipo gen6rico 3+ariantO#etoB J$iJnt Bão eBBenciJ!ente J$ieiB  sem tipo  ?odendo JBBi$ die$enteB ti?oB"JtoJticJente( EBtJ JntJe J?J$ente te J cJ$Jcte$BticJ de Be$ ineiciente Be ti!iJdJindiBc$iinJdJente(

4*

Page 37: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 37/139

FUNÇÕES DE CONVERSÃO E MANIPULAÇÃO

OB o#etoB do De!?@i ?J$J ent$JdJ eo ei#iQão de dJdoB ti!iJ ?$o?$iedJdeB do ti?o St$in" JB ?$o?$iedJdeB Tet e CJ?tion Bão #onB ee?!oB( O ?$o#!eJ oco$$e KJndo tentJoB $eJ!iJ$ c!c!oBJteticoB co oB dJdoB Ke dee Be$ Jni?!JdoB ?o$ eBtJB ?$o?$iedJdeB(

DeBtJ Jnei$J ?$eciBJoB de nQeB ?J$J cone$te$ dJdoB St$in e ti?oB Intei$oB o ReJiB o DJtJB" ?o$ ee?!o(

Fun!"o O&'etivo

St$ToInt:conBt SH St$in; Cone$te dJdo St$in e ti?o Intei$o(IntToSt$:J!eH Intee$; Cone$te dJdo Intei$o e ti?o St$in(St$ToF!oJt:conBt SH St$in; Cone$te dJdo St$in e ti?o Ponto F!tJnte(F!oJtToSt$:VJ!eH Etended; Cone$te dJdo Ponto F!tJnte e ti?o St$in(DJteToSt$:DJteH TdJteTie; Cone$te dJdo TDJteTie e St$in(DJteTieToSt$:DJteTieHTDJteTie;

Cone$te dJdo TDJteTie e St$in(

St$ToDJte :conBt SH St$in; Cone$te dJdo St$in e ti?o TDJteTie(St$ToDJteTie:conBt SHSt$in;

Cone$te dJdo St$in e ti?o TDJteTie

Fo$JtF!oJt:conBt Fo$JtHBt$in VJ!eH Etended;HBt$in

Pe$ite o$JtJ$ ti?o ?onto !tJnte $eto$nJndo J Bt$in(&dit<.Te't := FormatFloat(,*.>>,*oma);

Sendo BoJ J J$ie! $eJ!(

O ti?o TDJteTie inte$nJente Jni?!Jdo coo ti?o Ponto F!tJnte(

E*PRESSÕES L)GICAS

São e?$eBBeB Ke $eto$nJ J!o$ booleano :J!Bo o e$dJdei$o;(Operador Opera!"o

 Not NeJQãoAnd E !ZicoO$ OU !Zico6o$ OU E6CLUSIVO !Zico

O o?e$Jdo$ not   n$io" ?o$ ee?!oH if not (? @) then

DeeoB BJ$ ?J$nteBeB Jo co?J$J$oB e?$eBBeB !ZicJB" ?o$ ee?!oH

if (? @) or (3 A) then

COMANDO IF

O comando condicional i,  pode ser composto de uma ou mais condiç7es de processamento porexemploJ

• if (/ B) then

B := B 1; // ou !C(")#

4,

Page 38: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 38/139

• if (/ B) then  B := B 1else  / := / 8 1; // ou DEC()#

• if (/ B) then begin  B := B 1;

? :% B /;  end else  begin  / := / 8 1;

A :% A B;  end ;

 No `!tio ee?!o ?J$J $e?$eBentJ$ #!oco de coJndoB e cJBo e$dJdei$o o J!Bo" ti!iJ3Be doBde!iitJdo$eB &egin e end (O coJndo i, <then<else  conBide$Jdo coo `nico" ?o$tJnto" não @ ?onto e $!J :;W;JnteB dJ

 ?J!J$J $eBe$JdJ ?(

COMANDO CASE

O coJndo case..o  oe$ece J J!te$nJtiJ ?J$J coJndoB i, <then<else co $JndeW n`e$o deteBteB( Po$ ee?!oH

case e5 of

  ‘/#..‘#: Dabel1.Caption := ‘Detra#;  ‘>#..‘E#: Dabel1.Caption := ‘9mero#;  ‘#* ‘8#* ‘G#* ‘H#: Dabel1.Caption := ‘Operador#

else  Dabel1.Caption := ‘Caracter epecial#;end; //&im do ca'e

COMANDO REPEAT

O coJndo repeat..until   J o?Qão ?J$J eBt$t$JB de $e?etiQão( A $Jnde die$enQJ co o coJndoGile  o Jto do coJndo repeat  Be$ eectJdo ?e!o enoB J e(

repeat  ? := ? 1;  09C(@*I); //euiale a +% , -#

  !&C(/+?*<);until ? = <>>;

COMANDO +HILE

O coJndo Gile..do tJ# ?e$ite J conBt$Qão de eBt$t$JB de $e?etiQão" co die$enQJ de nãoeectJ$ o !JQo no incio do teBte !Zico(

 while ? = <>> do

4-

Page 39: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 39/139

  begin  ? := ? 1;  09C(@*I);  !&C(/+?*<);  end;

COMANDO FOR

O coJndo or..do eBtJ#e!ece J eBt$t$J de $e?etiQão conBide$Jndo cont$o!e iniciJ! e inJ!( PodeBe$ conBt$do de Jnei$J c$eBcente o dec$eBcente(

for i:=> to J>> do

  Dabel1.Caption := 0ntToStr(i);

for i:=J>> downto 1>> do  begin  Dabel1.Caption := 0ntToStr(i);  &dit1.Caption := 0ntToStr(i);  end ;

COMANDO BREAK

O coJndo brea/   BJdo ?J$J J!te$J$ o !o no$J! de coJndoB de $e?etiQão" o cont$o!e deBiJdo ?J$J o coJndo Beinte Jo coJndo $e?etitio(Krae := &dit1.Te't;for i:=1 to len%t"(Krae) do  begin  iK KraeL0M = ,/, t"en   break;

  au' := au' KraeL0M;  end;

Dabel1.caption := au'; //abel recebe o conteudo de &ra'e at0 a letra 12

COMANDO +ITH

O coJndo Git..do  BJdo ?J$J J#$eiJ$ J $ee$nciJ J cJ?oB de $eiBt$o" o J todoB" e propriedades de o#eto(

 begin  Form1.Caption := ‘Senac#;  Form1.Color := ClBlue;  Form1.Top := EJ;  end;

//Euialente 3+

 with Form1 do  begin

  Caption := ‘Senac#;  Color := ClBlue;  Top := EJ;  end;

4/

Page 40: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 40/139

PROCEDURES E FUNÇÕES

P$ocedientoB e nQeB Bão #!ocoB de cZdio :$otinJB; e O#ect PJBcJ! Ke ?ode o não $ece#e$  ?J$\et$oB :J!o$eB; ?J$J ?$oceBBJento( UJ e deinidJ J $otinJ ?ode3Be JtiJ3!J de die$BJB ?J$teBdo ?$o$JJ Jt$JB de Be noe(

A $Jnde die$enQJ ent$e JB o$JB de deiniQão deBtJB $otinJB :Be ?$ocedientoB o nQeB; eBt noJto de KeH

•   8rocedimento 8 NÃO $eto$nJ J!o$(•   !unção 8 Reto$nJ J!o$(

DECLARAÇÃO E ATIVAÇÃO DE PROCEDIMENTO

PodeoB dec!J$J$ ?$ocediento dJ Beinte Jnei$J Jnei$JHDent$o dJ c!B!J </ ou :-?" deinJ J dec!J$JQão do ?$ocedientoH

 procedure Soma(?* A: Strin%);

Co o c$Bo$ ?oBicionJdo nJ eBJ !in@J" ?$eBBioneH CTRLSHI!TC  e ?e$ce#J Ke o ?$Z?$io De!?@i $eJ!iJ J conBt$Qão do ?$ocediento dent$o dJ c!B!J ?7/</7( EBBe$ec$Bo c@JJdo C?< C?/7. NoBBJ tJ$eJ J?enJB deini$ o cZdio J Be$ $eJ!iJdo ?e!o ?$ocediento(

 procedure TForm1.Soma(?* A: Strin%); begin

  Dabel1.Caption := FloatToStr(StrToFloat(?)StrToFloat(A));end;

S?ondo J eiBtnciJ de doiB co?onenteB Edit " co?onente &utton e co?onente )abel " eBtecZdio ?ode Be$ JtiJdo dJ Beinte o$JH

 procedure TForm1.Button1Click(Sender: TObject); begin

  Soma(&dit1.Te't* &dit<.Te't);end;

DECLARAÇÃO E ATIVAÇÃO DE FUNÇÕES

A conBt$Qão de nQeB te o eBo $Jciocnio die$indo nJ cJ$Jcte$BticJ de $eto$no dJ nQão(

PodeoB dec!J$J$ ?$ocediento dJ Beinte Jnei$J Jnei$JHDent$o dJ c!B!J </ ou :-?" deinJ J dec!J$JQão dJ nQãoH

  function Subtrai(?* A: Strin%): Strin%;

O#Be$e Ke Jo$J" de?oiB doB ?J$\et$oB @ ti?o de deiniQão de $eto$no dJ nQão:St$in;(

5&

Page 41: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 41/139

Pode3Be ti!iJ$ J eBJ dicJ de conBt$Qão do ?$ocediento" nJ !in@J dJ dec!J$JQão tec!eCTRLSHI!TC :C!JBB Co?!etion; e ?e$ce#J Ke o ?$Z?$io De!?@i $eJ!iJ J conBt$Qão dJ nQãodent$o dJ c!B!J ?7/</7(

 NoBBJ tJ$eJ J?enJB deini$ o cZdio J Be$ $eJ!iJdo ?e!J nQão(

function TForm1.Subtrai(?* A: Strin%): Strin%; begin  reult := FloatToStr(StrToFloat(?)8StrToFloat(A));end ;

A ?J!J$J $eBe$JdJ result   o $ec$Bo BJdo ?e!J O#ect PJBcJ! ?J$J eBtJ#e!ece$ o $eto$nodJ $otinJ( Não Be dee dec!J$J$ eBtJ J$ie!" e!J dec!J$JdJ no oento dJ ti!iJQão dJ ,un!"o(S?ondo J eiBtnciJ de doiB co?onenteB Edit " W co?onente &utton e co?onente )abel " eBtJ nQão ?ode Be$ JtiJdJ dJ Beinte o$JH

  function TForm1.Button<Click(Sender: TObject); begin

  Dabel1.Caption := Subtrai(&dit1.Te't* &dit<.Te't);end;

 NeBte cJBo" o LJ#e! $ece#e o :?/ de B#t$Ji" o BeJ" J B#t$JQão doB dJdoB ?JBBJdoB noB ?J$\et$oB(

DECLARAÇÕES CRIADAS AUTOMATICAMENTE PELO DELPHI

Se oc #o o#Be$Jdo$" ?e$ce#e Ke o De!?@i tJ# e$J JB dec!J$JQeB e BeB $eB?ectioB ?$ocedientoB KJndo oc deBeJ Jni?!J$ dete$inJdo eento(

CAI*AS DE DI(LOGO

PodeoB ti!iJ$ J!nB ti?oB de cJiJB de di!oo ?$3deinidJB ?e!o De!?@i Jci!itJndo e ito odeBeno!iento ?e!J e$$JentJH

 >ho?essage

A cJiJ de di!oo S@oXMeBBJe dec!J$JdJ inte$nJente ?e!o De!?@i deBtJ o$JH procedure S"o$4ea%e(cont 4%: trin%);

Onde o ?J$\et$o MB dJdo St$in( Ee?!oH

S"o$4ea%e(‘+m te'to ou propriedade trin% er e'ibida.#);

5)

Page 42: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 42/139

 essageDlg 

A cJiJ de di!oo MeBBJeD! dec!J$JdJ inte$nJente ?e!o De!?@i deBtJ o$JH

function 4ea%e!l%(cont 4%: trin%; !l%T5pe: T4%!l%T5pe;Button: T4%!l%Button; NelpCt': Don%int): 3ord;

OndeH

conBt MBH Bt$in É J conBtJnte Bt$in o ?$o?$iedJde deBte ti?o(

D!T]?eH TBD!T]?e

t7J$ninContAm um ;cone exclamação amarelo.tE$$o$ ContAm um ;cone vermelo de parada.tIno$JtionContAm um ;cone i azul.tConi$JtionContAm uma interro4ação verde.tCBto Fão contAm &it-ap.

+ttonBH TMBD!+ttonB#eB #No #O1 #CJnce! #A#o$t #Ret$]#Ino$e #A!! #NoToA!! #eBToA!! #0e!?

0e!?CtH Lonint Deine n`e$o ?J$J o @e!? de conteto( Po$ ?Jd$ão" e$o &W(

O retorno dJ nQão o ti?o do #otão coo mr

DeBtJ Jnei$J ?ode3Be Je$ teBteB !ZicoB coo no ee?!oH

if 4ea%e!l%(‘!eeja air#* mtConKirmation* LmbAe* mb9oM* >)=mrAe then

 Application1essageBox 

UJ ot$J cJiJ de di!oo o todo MeBBJe+o do o#eto A??!icJtion( EBtJ nQão eBt deinidJdJ Beinte Jnei$JH

function 4ea%eBo'(cont Te't* Caption: C"ar; Fla%: Don%int): 0nte%er;

OndeH

conBt Tet É J conBtJnte Bt$in o ?$o?$iedJde deBte ti?o(CJ?tionH PC@J$ Deine J Bt$in ?J$J o tt!o dJ Jne!J(F!JB Deine oB #oteB" coneB e J ?oBBi#i!idJde de ocJ$ dete$inJdo

 #otão(

5%

Page 43: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 43/139

Page 44: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 44/139

conBt ACJ?tion Deine o tt!o dJ Jne!JAP$o?t Deine $Zt!o ?J$J o$ientJQão dent$o dJ cJiJ(ADeJ!t Deine J!o$ deJ!t ?J$J J cJiJ(

Ee?!oH

0nputBo'(,TPtulo da janela,*,!ecriRo,*,alor adro,)

 Input@uer

A nQão In?t<e$] $eto$nJ ti?o +oo!eJno" o dJdo diitJdo ?e!o B$io Be$ co!ocJdo e JJ$ie! do ti?o Bt$in previamente dec!J$JdJ(SJ deiniQão inte$nJ J BeinteH

function 0nputUuer5(cont /Caption* /rompt: trin%; 7ar alue: trin%): Boolean;

Ee?!oH

if 0nputUuer5(,TPtulo,* ,!ecriRo,* au') and (au' ,,) then

 NeBte ee?!o JciJ" J Jne!J BZ $eto$nJ$ e$dJde  @oe$ J! J!o$ diitJdo  o B$io c!icJ$ no #otão O1" cJBo cont$$io o $eto$no Be$ J!Bo(

 Exemplo

VJoB eJinJ$ J unit  e ee?!icJ$ oB ?$inci?JiB conceitoBHtype

  TForm1 = class(TForm)  Button1: TButton;  &dit1: T&dit;  &dit<: T&dit;  Dabel1: TDabel;   procedure Button1Click(Sender: TObject);  function Soma(?* A: Strin%): 0nte%er; HHde&inida 4elo de'enoledor 

55

Page 45: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 45/139

  private  { 5riate declaration' }

  au': 0nte%er; HHariáel 4riada  public  { 5ublic declaration' }

  Krae: Strin%; HHariáel 46blica  end ;var

  Form1: TForm1;implementation

{$R *.DFM}

const 4/? = J>; HHde&ini78o de con'tante

 procedure TForm1.Button1Click(Sender: TObject);var titulo: Strin%; HHariael local  i: 0nte%er;

 begin  if (&dit1.Te't ,,) and (&dit<.Te't ,,) then  //atribui 3 ariael 4riate 9 au: o retorno da &un78o 'oma

  au' := Soma(&dit1.Te't*&dit<.Te't);  titulo := ,Curo de !elp"i,; //atribui 3 ari3el local

  Krae := titulo, V ero J,; //atribui 3 ariael 4ublic

  Form1.Caption := Krae; //atribui 3 4ro4riedade Ca4tion do &orm

  S"o$4ea%e(,/ oma do 7alore W: ,0ntToStr(/u'));  for i:=> to 4/? do  Dabel1.Caption := 0ntToStr(i);end ;

function TForm1.Soma(?* A: Strin%): 0nte%er; begin

  reult := StrTo0nt(?)StrTo0nt(A);end ;

end .

CHAMADA DE FORMS

UJ cJ$Jcte$BticJ i?o$tJnte dJ J?$eBentJQão doB o$!$ioB e J J?!icJQão" o Jto de Be$ J?$eBentJdo coo MODAL  o NÃO@MODAL( 0 doiB todoB ?J$J eectJ$ J iBJ!iJQão" JBJnteB JoB entende$ coo iBBo ncionJ(

• MODAL 8 O oco icJ  preso no o$!$io e não !i#e$Jdo ?J$J ot$o o$ Jt Ke e!e BeJec@Jdo( O B$io ?ode JtiJ$ ot$J J?!icJQão do 7indoXB" JB não ?ode$ t$J#J!@J$ e ot$J Jne!J dJKe!e ?$o$JJ cJ Jne!J oi J#e$tJ coo odJ! :Jt Ke BeJ ec@JdJ;(

•  NÃO MODAL 8 O oco ?ode Be$ t$JnBe$ido ?J$J ot$J Jne!J Be Ke eBtJ ?$eciBe Be$ ec@JdJ(

Entendido eBte conceito" oB todoB Ke o De!?@i ti!iJ ?J$J J?$eBentJ$ oB o$B BãoHS= ?J$J J?$eBentJ$ o$B NÃO3MODAIS" o S=M<? ?J$J J?$eBentJ$ o$B MODAIS(

5'

Page 46: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 46/139

COMPONENTES ,VCL

O&'eto 2 BitBtn 3Bot"o com ,iguras opcionais

PJ!etJ 8 AdditionJ!

I?o$t\nciJH Pe$ite inBe$i$ i$JB ?J$J Je!@o$ o$ientJQão do B$io" J! de nQeB ?$3deinidJB(

 Propriedades

G?K Deine +itJ? ?J$J o co?onente( :A$Kio co etenBão (+MP;

1indDeine o ti?o de +itJ? ei#ido ?e!o B$io( #CBto &itmap deinido pelo usu#rio. #O  &otão OK padrão com uma marca de veriicação na cor verde e propriedade =eault i4ual a ?rue. #CJnce! &otão Cancel padrão com um LxM na cor vermela e propriedadeCancel i4ual a ?rue. #eB &otão Nes padrão com uma marca de veriicação na cor verde e

 propriedade =eault i4ual a ?rue. #No &otão Fo padrão com uma marca vermela representando um c;rculocortado e propriedade Cancel i4ual a ?rue. #0e!? &otão de aux;lio padrão com uma interro4ação na cor cBan. uando ousu#rio clica sobre o botão uma tela de aux;lio deve ser exibida"baseada no c+di4o do desenvolvedor$. #C!oBe &otão Close padrão com o deseno de uma porta. uando o usu#rioclica sobre o botão o ormul#rio a >ue ele pertence se eca.

 #A#o$t &otão @bort padrão com um LxM na cor vermela e propriedade Canceli4ual a ?rue. #Ret$] &otão *etrB padrão com uma seta circular verde. #Ino$e &otão i4nore padrão com o deseno de um omem verde se aastando. #A!! &otão @ll padrão com uma marca de veriicação dupla na cor verde e

5*

Page 47: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 47/139

 propriedade deault i4ual a ?rue.ModJ!ReB!t Pe$ite ence$$J$ J eecQão de o$!$io -odal  KJndo o Be J!o$

o$ die$ente de mrFone(

O&'eto 2 >peedButton 3Bot"o para &arra de ícones

PJ!etJ 8 AdditionJ!

I?o$t\nciJH Pe$ite Jo B$io Jni?!J$ oB #oteB indiidJiB o Jt$JB do conceitode $?o(

 Propriedades

G?K Deine +itJ? ?J$J o co?onente(G$o?Inde Pe$ite a4rupar   connto de S?eed+ttonB KJndo Jo Be$e

Be!ecionJdoB" tie$e J ?$o?$iedJde die$ente de e$o(A!!oXA!!U? Pe$ite Ke o co?onente ?oBBJ te$ o $e!eo BB?enBo Jo Be$ c!icJdo( SZ

 ?ode Be$ ti!iJdo nto Jo conceito de J$?Jento(!?</ Deine eeito iBJ! inte$eBBJnte(DoXn Pe$ite dete$inJ$ KJ! co?onente oi ?$eBBionJdo( SZ ?ode Be$

ti!iJdo nto Jo conceito de J$?Jento(

O&'eto as)Edit 2 3Caixa de edi!"o com m$scara

PJ!etJ 8 AdditionJ!

I?o$t\nciJH Pe$ite eBtJ#e!ece$ J BcJ$J ?J$J J ent$JdJ de dJdoB no co?onente( PodeBe$ conBide$Jdo !ite$J!ente co?onenteEdit co BcJ$JW(

 Propriedades

C@J$CJBe Deine o ti?o doB cJ$Jcte$eB(E/M<  Pe$ite deini$ J BcJ$J ?J$J ent$JdJ de dJdoB(P<=C< Deine cJ$Jcte$ ?J$J oc!tJ$ J ent$JdJ de dJdoB(

5,

Page 48: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 48/139

O&'eto 2 Image 3Imagem

PJ!etJ 8 AdditionJ!

I?o$t\nciJH Pe$ite inBe$i$ J i$J ?J$J

Bo e$J! nJ J?!icJQão(

 Propriedades

AtoSie Pe$ite J!te$J$ o tJJn@o do componente #JBeJdo no tJJn@o dJ i$J(P/: Deine J i$J J Be$ ei#idJ(St$etc@ Pe$ite J!te$J$ o tJJn@o dJ i4ura #JBeJdo no tJJn@o do co?onente(

 6todos

LoJdF$oFi!e Pe$ite cJ$$eJ$W J$Kio de i$J nJ ?$o?$iedJde Pict$e(

PJ$J t$J#J!@J$ co iJenB ?" neceBB$io Jc$eBcentJ$ nJ c!B!J BeB dJ inte$Jce J #i#!iotecJ F(

O&'eto - PageControl 

PJ!etJ 8 7in4%

I?o$t\nciJH Pe$ite deini$ iJB ?J$J J$?J$ oBdeJiB co?onenteB(CJdJ iJ $e?$eBentJ co?onente TJ#S@eet doti?o TTJ#S@eet" J eB?cie de B#3o#etoW doPJeCont$o!(

 Propriedades

ActiePJe Pe$ite dete$inJ$ KJ! J iJ oi Be!ecionJdJ ?e!o B$io(

PJ$J c$iJ$ noJB ?inJB" c!iKe co o #otão di$eito no co?onente  8a4eControl e eBco!@J NeX PJe(

5-

Page 49: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 49/139

O&'eto 2 OpenDialog 3Caixa de di$logo para a&ertura de aruivos

PJ!etJ 8 DiJ!oB

I?o$t\nciJH Pe$ite ti!iJ$ J cJiJ dedi!oo ?$ontJ co $ec$BoB ?Jd$oniJdoB

 ?e!o BiBteJ o?e$JcionJ!(

 Propriedades

DeJ!tEt EB?eciicJ J etenBão J Be$ JdicionJdJ Jo noe de J$Kio KJndo oB$io diitJ o noe de J$Kio Be J BJ etenBão(

Fi!eNJe Deine o J$Kio Be!ecionJdo no co?onente(Fi!te$ Pe$ite deini$ JB BcJ$JB de i!t$o de J$Kio J Be$e ei#idJB(

Fi!te$Inde Deine o i!t$o deJ!t J Be$ ei#ido nJ !iBtJ d$o?3doXn Ke deine oB ti?oBde J$KioB Be!ecioneiB(

InitiJ!Di$ Deine o di$etZ$io deJ!t KJndo J cJiJ de di!oo J#e$tJ(O?tionB NeBte co?onente" o?tionB deine J B$ie de J!o$eB #oo!eJnoB(Tit!e Deine o tt!o dJ cJiJ de di!oo(

OB co?onenteB dJ ?J!etJ diJ!oB Bão eectJdoB Jt$JB do todo execute1 EBte todo J nQão Ke $eto$nJ J!o$ #oo!eJno" JBBi ?J$J ei#i$ J cJiJ de di!oo" ?odeoBeBc$ee$H

  if Open!ialo%1.&'ecute then

Se o B$io eBco!@e$ J! J$Kio e coni$J$ J cJiJ" execute  $eto$nJ e$dJdei$o" cJBo

cont$$io" J!Bo(

O&'eto 2 Image(ist 3(ista de imagens

PJ!etJ 8 7in4%

I?o$t\nciJH Pe$ite deini$ connto deconeB ?J$J Be$e $e3ti!iJdoB ?o$ die$BoBco?onenteB de $ece#e eBte o#eto coo ?$oedo$ de J !iBtJ de iJenB(

PJ$J inc!i$ iJenB no co?onente IJeLiBt" c!iKe % eeB $J?idJente no co?onente ec!iKe no #otão Add(

5/

Page 50: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 50/139

O De!?@i ?oBBi connto de coneB e iJenB e J ?JBtJ ?Jd$ão'HC:\Arquivos de programas\Arquivos comuns\orland !hared\"mages

O&'eto 2 7ichEdit 3exto com ,ormata!"o

PJ!etJ 8 7in4%

I?o$t\nciJH Pe$ite o$JtJ$ o teto:Ne$ito" It!ico" S#!in@Jdo" FonteB" etc(((; ?J$J J !eit$J de ot$oB edito$eB co?JteiBco o ?Jd$ão RTF(

 Propriedades

LineB Deine o teto ei#ido no co?onente(

7JntRet$nB Deine J tec!J Ente$ coo Ke#$J de !in@J(7JntTJ#B Deine J tec!J TJ# coo tJ#!JQão o dJnQJ de oco( CJBo J!Bo ?ode3Be ti!iJ$ CTRLYTA+ ?J$J ?$odi$ o eeito deBeJdo(

7o$d7$J? Deine J Ke#$J de !in@J JtoticJ de teto(

 6todos

C!eJ$ Pe$ite !i?J$ o conte`do do co?onente(LoJdF$oFi!e Pe$ite cJ$$eJ$W J$Kio ?J$J J ?$o?$iedJde LineB(SJeToFi!e Pe$ite BJ!J$ o conte`do dJ ?$o?$iedJde LineB e J$Kio(

O&'eto 2 ProgressBar 3Barra de progresso

PJ!etJ 8 7in4%

I?o$t\nciJH Pe$iti$ Jo B$io te$ Jco?Jn@Jento de J $otinJ deo$JdJ(

 PropriedadesMJ Pe$ite deini$ o J!o$ io ?J$J J JiJ de J!o$eB no co?onente(Min Pe$ite deini$ o J!o$ nio ?J$J J JiJ de J!o$eB no co?onente(O$ientJtion Deine Be o co?onente dee$ Be$ e$ticJ! o @o$iontJ!(PoBition Deine J ?oBiQão co$$ente do cont$o!e no co?onente(Ste? Deine o inc$eento BJdo nJ J$iJQão do J!o$ dJ ?$o?$iedJde ?oBition(

' CJBo oc ten@J inBtJ!Jdo o BotXJ$e noB di$etZ$ioB Be$idoB coo ?Jd$ão(

'&

Page 51: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 51/139

O&'eto 2 ;auge 3Barra de progresso

PJ!etJ 8 SJ?!eB

I?o$t\nciJH Pe$iti$ Jo B$io te$ Jco?Jn@Jento de J $otinJ deo$JdJ(

 Propriedades

1ind Pe$ite deini$ J?J$nciJB die$enciJdJB no co?onente(P$o$eBB Deine J ?oBiQão co$$ente do cont$o!e no co?onente(

O&'eto 2 Animate 3Anima!<es

PJ!etJ 8 7in4%

I?o$t\nciJH Pe$ite ei#i$ i!eW (AVI ?J$J i!Bt$J$ tJ$eJB :$otinJB; e JndJento(

 Propriedades

CoonAVI Deine o AVI J Be$ ei#ido(Actie LiJ e deB!iJ J ei#iQão do AVI(Re?etitionB Deine n`e$o intei$o co$$eB?ondente Jo n`e$o de $e?etiQeB( 9e$o

deine $e?etiQeB indeinidJB(

O&'eto 2 DateimePic)er 3Data e hora atrav6s de uma Com&o&ox

PJ!etJ 8 7in4%

I?o$t\nciJH Pe$ite Jo B$io eBco!@e$ J dJtJ Jt$JB de co?onente Ke ?oBBi i?o$tJnte i?Jcto iBJ! eJci!idJde o?e$JcionJ!(

')

Page 52: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 52/139

 Propriedades

CJ!Co!o$B Deine JB co$eB do cJ!end$io(DJte Deine J dJtJ Be!ecionJdJ no co?onente(DJteFo$Jt Deine o o$Jto dJ J?$eBentJQão dJ dJtJ(DJteMode Deine o eBti!o dJ cJiJ de !iBtJe(1ind Deine Be o co?onente dee t$J#J!@J$ co dJtJ o @o$J(

MJDJte Deine J dJtJ iJ ?J$J J JiJ de J!o$eB(MinDJte Deine J dJtJ niJ ?J$J J JiJ de J!o$eB(

O&'eto 2 onthCalendar 3Calend$rio mensal

PJ!etJ 3 7in4%

I?o$t\nciJH Pe$ite Jo B$io eBco!@e$ JdJtJ Jt$JB de co?onente Ke ?oBBi i?o$tJnte i?Jcto iBJ! e Jci!idJdeo?e$JcionJ!(

 Propriedades

DJte Deine J dJtJ Be!ecionJdJ no co?onente(Fi$BtDJ]O7ee Deine KJ! o ?$iei$o diJ dJ BeJnJ(7eeN#e$B Pe$ite ne$J$ JB BeJnJB(

O&'eto 2 >tatusBar 3Barra de status

PJ!etJ 8 7in4%

I?o$t\nciJH U doB ?$inci?JiB co?onenteBde ino$JQeB Bo#$e o?e$JQeB e$JiB noBiBteJ(

 PropriedadesAto0int Pe$ite ei#i$ o @int do co?onente JtoJticJente nJ #J$$J de BtJtB(

Se não @oe$ ?JiniB" J #J$$J dee te$ J ?$o?$iedJde Si?!ePJne! !iJdJ(Si?!ePJne! Deine Ke J #J$$J de BtJtB Be$ sem diiBeB(Si?!eTet Deine o teto J Be$ ei#ido ?e!J #J$$J de BtJtB(PJne!B Pe$ite J c$iJQão e ediQão de painAis nJ #J$$J de BtJtB(

A ?$o?$iedJde Si?!ePJne! dee eBtJ$ deB!iJdJ(Pode3Be tJ# dJ$ d?!o c!iKe nJ #J$$J de BtJtB(

'%

Page 53: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 53/139

Ao ti!iJ$ J ?$o?$iedJde Ato0int" ?ode3Be deini$ o @int doB o#etoB co dJB Bt$inBBe?J$JdJB ?o$ pipe :[W;(A ?$iei$J Bt$in Be$ ti!iJdJ coo @int !ocJ!" J BendJ coo @int nJ #J$$J de BtJtB(

O&'eto 2 oolBar 3Barra de ícones

PJ!etJ 8 7in4%I?o$t\nciJH Pe$ite c$iJ$ #J$$JB de coneB deJnei$J $?idJ e Bi?!eB(

 Propriedades

F!Jt Deine eeito iBJ! co $e!eo Jt$JB do oBe noB #oteB(IJeB Pe$ite deini$ o#eto do ti?o Ima4e)ist (0otIJeB Pe$ite deini$ o#eto do ti?o  Ima4e)ist  J Be$ BJdo no oento e

Ke o oBe ?JBBJ :o c!icJ; Bo#$e o co?onente(S@oXCJ?tionB Pe$ite ei#i$ J ?$o?$iedJde caption doB #oteB(

PJ$J JdicionJ$ #oteB o Be?J$Jdo$eB nJ Too!+J$" c!iKe co o #otão di$eito Bo#$e oco?onente e eBco!@J NeX +tton o NeX Se?J$Jto$(

UM POUCO MAIS SOBRE COMPONENTES ,VCLO&'eto 2 imer 3empori/ador

PJ!etJ 8 S]Bte

I?o$t\nciJH Pe$ite J eecQão de $otinJB e!oo?" e inte$J!o ?$3deinido(

 Propriedades

EnJ#!ed Pe$ite !iJ$W o tie$" o BeJ" e!e ent$J e !oo? eectJndo o eentoOnTie$ Jt Ke BeJ Jt$i#do J!Bo o te$inJdJ J J?!icJQão(

Inte$J! Deine e i!iBendoB o inteJ!o de $e?etiQão do eento OnTie$(

'4

Page 54: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 54/139

O&'eto 2 File(istBox 3Caixa de listagem de aruivos

PJ!etJ 8 7in 4()

I?o$t\nciJH Pe$ite !iBtJ$ J$KioB de

dete$inJdo di$etZ$io(

 Propriedades

Fi!eEdit Deine J cJiJ de ediQão :TEdit; Ke ei#i$ o J$Kio JtJ!enteBe!ecionJdo(

Fi!eNJe Deine o noe do J$Kio Be!ecionJdo( V!ido e te?o de eecQão(

MJB Deine BcJ$JB de i!t$o :Be?J$JdJB ?o$ ?onto e $!J; ?J$J J ei#iQãodoB J$KioB(

O&'eto 2 Director(istBox 3Caixa de listagem de diret8rios

PJ!etJH 7in 4()

I?o$t\nciJH Pe$ite !iBtJ$ oB di$etZ$ioB dod$ie deBeJdo(

 Propriedades

Di$LJ#e! Pe$ite ei#i$ o di$etZ$io co$$ente co J ?$o?$iedJde CJ?tion de co?onente do ti?o TLJ#e!(

Fi!eLiBt Pe$ite J coneão co co?onente TFi!eLiBt+o(

O&'eto - DriveCom&oBox 3Caixa de listagem de drivesPJ!etJH 7in 4()

I?o$t\nciJH Pe$ite !iBtJ$ oB d$ieBdiB?oneiB no co?tJdo$(

'5

Page 55: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 55/139

 Propriedades

Di$LiBt Pe$ite J coneão co co?onente TDi$ecto$]LiBt+o(

O&'eto 2 FilterCom&oBox 3Caixa de listagem de ,iltrosPJ!etJH 7in 4()

I?o$t\nciJH Pe$ite eBtJ#e!ece$ i!t$oB ?J$JiBJ!iJQão de J$KioB(

 Propriedades

Fi!eLiBt Pe$ite J coneão co co?onente TFi!eLiBt+o(Fi!te$ Pe$ite deini$ JB BcJ$JB de i!t$o de J$Kio J Be$e ei#idJB(

''

Page 56: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 56/139

BANCO DE DADOS

 NJ Jio$iJ doB cJBoB" JB J?!icJQeB Ke JoB conBt$i$ co o De!?@i" o ot$J e$$JentJ iBJ!"dee Jni?!J$ #Jnco de dJdoB(U #Jnco de dJdoB ?ode Be$ iBto de die$enteB ?e$B?ectiJB" ?ode Be$ J$Kio o ?ode Be$

di$etZ$io co $ioB J$KioB( VJoB entende$ eBBJB die$enQJB ?oco JiB JdiJnte(

CONECÇÃO AO BANCO DE DADOS

O De!?@i ti!iJ J eBt$t$J de cJJdJB ?J$J Je$ co Ke o  ront<end   :o$!$io; Jni?!Jdo ?e!o B$io en@J inte$Ji$ co J base de dados( O cJin@o dee Be$ ?e$co$$ido ?o$ J B$ie deco?onenteB coni$JdoB ent$e Bi" ?o$" @ J cJJdJ inte$edi$iJ Ke não icJ dentro  doJ#iente De!?@i" ne di$etJente ?$eBo Jo banco" o +DE(

BDE

O +DE connto de DLLB Ke dee Jco?Jn@J$ JB J?!icJQeB Ke Je Bo de BeB $ec$BoB deJceBBo Jo #Jnco( É neBtJ cJJdJ Ke Bão deinidJB cJ$Jcte$BticJB eB?ecicJB de cJdJ #Jnco de dJdoB" #e coo BJ !ocJ!iJQão" o BeJ" o  ront<end  não JceBBJ di$etJente J base de dados" o +DE $eB?onBe! ?J$J eBtJ#e!ece$ eBte ncionJento(

EiBte ot$JB Jnei$JB de JceBBJ$oB #Jnco de dJdoB SEM O +DE" J ?J!etJ Inte$+JBediB?one! J ?J$ti$ do De!?@i ' #o ee?!o(

COMPONENTES DE CONTROLE E ACESSO

O BiBteJ ?J$J coneão co o #Jnco de dJdoB ti!iJ J! do +DE connto de co?onenteBdenoinJdoBH SeBBion" DJtJ+JBe" =ata:et " =ata:ource e =ata<@Gare( O co?onente SeBBion não Be$o oco de noBBo eBtdo(

UJ iBão e$J!W Bo#$e eBteB co?onenteB ?ode Be$ iBtJ dJ Beinte Jnei$JH

 

'*

A?!icJQão De!?@i"!ront<End ;

+o$!Jnd DJtJ+JBe Enine :+DE;

+JncoB de DJdoB LocJiB S<L LinB D$ie$B OD+C

SeBBion DJtJ+JBe DJtJSet DJtJSo$ce DJtJ3AXJ$e

Page 57: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 57/139

•  >essionH A?!icJQeB Bi?!eB" t$J#J!@J co J?enJB #Jnco de dJdoB( Po$ o De!?@i ?e$ite JiB de J coneão Bi!t\neJ #JncoB de dJdoB diBtintoB" e tJ# JiB de Jconeão co o eBo #Jnco de dJdoB( O cont$o!e  4lobal  dJB coneeB eito Jt$JB doco?onente dJ c!JBBe TSeBBion" c$iJdo automaticamente ?e!o De!?@i nJ eecQão do ?$o$JJ(EBBe co?onente $e?$eBentJ J BeBBão deault  dJ J?!icJQão(

• DataBaseH O co?onente DJtJ+JBe $eB?onBe! ?e!J coneão dJ J?!icJQão J #Jnco dedJdoB co J inJ!idJde Jio$ de i?!eentJ$ Be$JnQJ :transaç7es; e deini$ cJ$Jcte$BticJB deconicJQão ent$e J J?!icJQão De!?@i3C!ientSe$e$( E#o$J e J?!icJQeB !ocJiB" BJti!iJQão explicita $ecoendJdJ(

•  Data>et H EiBte t$B co?onenteB Ke deBcende de J c!JBBe c@JJdJ TDJtJSet ei?!eentJ i?o$tJnteB todoB de Jni?!JQão de #Jnco de dJdoB J! de BJBcJ$Jcte$BticJB eB?ecicJB( De Jto" não ti!iJoB J c!JBBe TDJtJSet di$etJente" JB Jt$JBdoB co?onenteB TTJ#!e" T<e$]:S<L; e TSto$eP$oc( EBteB co?onenteB eBtão nJ ?J!etJDJtJAcceBB

•  Data>ourceH O co?onente DJtJSo$ce $eB?onBe! ?o$ conectJ$ oB co?onenteB DJtJ3AXJ$e J dete$inJdJ tJ#e!J $e?$eBentJdJ ?e!o DJtJSet( EBte co?onente eBt nJ ?J!etJ

DJtJAcceBB(•  Data-A?areH OB co?onenteB DJtJ3AXJ$e Bão $eB?onBeiB ?e!J iBJ!iJQão e Jni?!JQão

di$etJ doB dJdoB( Todo co?onente DJtJ3AXJ$e te J ?$o?$iedJde ?J$J conectJ$3Be JoDJtJSo$ce co$$eB?ondente tJ#e!J deBtino( EBteB co?onenteB eBtão nJ ?J!etJ DJtJCont$o!B(

 Exemplo

VJoB ee?!iicJ$ J ti!iJQão de co?onenteB #BicoB de acesso e controle Jt$JB de ee?!o #JBeJdo e J tJ#e!J :J$Kio de dJdoB; ?$ontJ" c$iJdJ nJ inBtJ!JQão do De!?@i( O o#etio entende$oB o ncionJento deBteB co?onenteB(

)( C$ie J noJ J?!icJQão e BJ!e3J nJ ?JBtJ eB?eciicJdJ ?e!o inBt$to$(

O Fo$!$ioH UF$PeieBP$oetoH PeieB

%( InBi$J doiB co?onenteBH U DJtJSo$ce e TJ#!e( Coni$e BJB ?$o?$iedJdeB de Jco$do co Jo$ientJQão J#JioH

  ob#ect Tbei'e: TTable  !atabae9ame = ,!B!&4OS,  Table9ame = ,bioliKe.db,  /cti7e = True  9ame = Tbei'e  end 

  ob#ect !ei'e: T!ataSource  /uto&dit = Fale  !ataSet = Tbei'e  9ame = !ei'e  end 

4( InBi$J co?onente D+G$id e coni$e3oH

',

Page 58: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 58/139

  ob#ect !B6rid1: T!B6rid  /li%n = alBottom  !ataSource = !ei'e  end 

5( InBi$J co?onente D+IJe e coni$e3oH

  ob#ect !B0ma%e1: T!B0ma%e  !ataField = ,6rap"ic,  !ataSource = !ei'e  Stretc" = True  end 

'( InBi$J co?onente D+Meo e coni$e3oH

  ob#ect !B4emo1: T!B4emo  !ataSource = !ei'e  !ataField = ,9ote,  end 

*( InBi$J co?onente D+NJiJto$ e coni$e3oH

  ob#ect !B9a7i%ator1: T!B9a7i%ator  !ataSource = !ei'e  end 

UJ BeBtão do iBJ! ?ode Be$ J BeinteH

,( SJ!e noJente e eecte J J?!icJQão(

PodeoB ?e$ce#e$ Ke J J?!icJQão ncionJJni?!Jndo J tJ#e!J g#io!ie(D+g Be JneceBBidJde de nen@J !in@J de cZdioe?!citJ(

É c!J$o Ke eBte J?enJB ee?!o ?J$Jentende$oB o ecJniBo de co?onenteB deJceBBo e cont$o!e( DeBBe odo" e$eoB JBei$ Ke !in@JB de cZdio Be$ão neceBB$iJB ?J$J i?!eentJ$ ncionJ!idJdeB eB?ecicJB:?eBKiBJB;" o eBo #BicJB coo inc!Bão"ediQão e $eoQão(

Po$ `!tio" JoB ?e$BonJ!iJ$ o co?onente  =&6rid   ?J$J não  ei#i$ oB cJ?oB 6raic  e  Fotes:cJ?oB +LO+;(

Pode3Be BJ$ J ?$o?$iedJde C?:7 o d?!o c!iKe no co?onente =&6rid " O Edito$ de co!nJB ei#ido" c!iKe no cone A A?? !? oB cJ?oB diB?oneiB Be$ão ei#idoB" Be!ecione o cJ?odeBeJdo :G$Jic; e c!iKe e D?/ S?/

'-

Page 59: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 59/139

OBJETOS TFIELD

VJoB c$iJ$ J ot$J J?!icJQão e ee?!iicJ$ $ec$Bo ito i?o$tJnte nJ conBt$Qão de

J?!icJQeB #JBeJdJB e #Jnco de dJdoB oB campos persistentes()( C$ie J noJ J?!icJQão e BJ!e3J nJ ?JBtJ eB?eciicJdJ ?e!o inBt$to$( OB ?ode Be$H

O Fo$!$ioH UF$PJiBeBP$oetoH PJiBeB

%( InBi$J doiB co?onenteBH U DJtJSo$ce e TJ#!e( Coni$e BJB ?$o?$iedJdeB de Jco$do co Jo$ientJQão J#JioH

  ob#ect Tbaie: TTable  !atabae9ame = ,!B!&4OS,

  Table9ame = ,countr5.db,  /cti7e = True  9ame = Tbaie  end 

  ob#ect !aie: T!ataSource  /uto&dit = Fale  !ataSet = Tbaie  9ame = !aie  end 

'/

Page 60: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 60/139

4( Ao$J" Jo inB de co!ocJ$oB co?onenteB data<aGare :?J!etJ DJtJCont$o!B; di$etJente no o$"JoB deini$ oB cJ?oB ?e$BiBtenteB Jt$JB de d?!o c!iKe co?onente TJ#!e B$i$ o edito$ decJ?oB:!? E/;(C!iKe co #otãodi$eito no edito$ e eBco!@J

Add J!! ie!dB(A ?J$ti$ de Jo$J" cJdJ cJ?o nJtJ#e!J conBide$Jdo o&'eto Field   co BJB propriedadesindiidJ!iJdJB nJ O#ectInB?ecto$(

MJB" o e!@o$ de tdo o Jtode ?ode$oB <</< oBcJ?oB TFie!d di$etJente<< :?" e ?e$ce#e$ Ke o De!?@i BeencJ$$eJ de conBt$i$ oco?onente data<aGare neceBB$io J cJdJ cJ?o(IBBo $eJ!ente ?o?J ito te?o no deBeno!iento de J?!icJQeB e #Jnco de dJdoB( Po$ @ J ?oBBi#i!idJde de c$iJ$ J?!icJtioB Ke ti!ie JceBBo #Jnco Be dJtJ3JXJ$e" noBBo eBtdo não JienocJ$ eBtJ etodo!oiJ(

5( InBi$J co?onente D+NJiJto$ e coni$e3oH

  ob#ect !B9a7i%ator1: T!B9a7i%ator

  !ataSource = !aie  end 

UJ BeBtão ?J$J J diB?oBiQão doB co?onenteB ?ode Be$H

'( SJ!e noJente e eecte J J?!icJQão(

A ?$inci?J! JntJe doB cJ?oB ?e$BiBtenteB JJci!idJde de c$iJQão e J deiniQão de ?$o?$iedJdeB i?o$tJnteB coo EditMJB eReKi$ed ?o$ ee?!o(

*&

Page 61: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 61/139

APLICAÇÃO EM BANCO DE DADOS

VJoB iniciJ$ ?eKeno ?$oeto Ke ee?!iicJ$ J conBt$Qão de J J?!icJQão de #Jnco de dJdoBco todoBW oB ?JBBoB #BicoB" Ke ão deBde J conBt$Qão dJB tJ#e!JB Jt J e$JQão de $e!JtZ$ioB einBtJ!JQão do J?!icJtio(

O ?$oetoW Be$ de #Jnco de dJdoB !ocJ! e ?oBBi t$B tJ#e!JB co J Beinte deiniQão de cJ?oB e$e!JcionJentoBH

PJ$J c$iJ$oB JB tJ#e!JB deeoB ti!iJ$ e$enciJdo$ de #Jnco de dJdoB :PJ$Jdo" AcceBB; oJ! ?$o$JJ eB?ecico ?J$J eBtJ tJ$eJ( O De!?@i inBtJ!J J?!icJtio ?J$J eBtJ inJ!idJdedenoinJdo DataBase Des)op( Po$ o#Be$e Ke Bão itenB distintosH O De!?@i 70 c$iJ JB tJ#e!JB"e!e J?enJB :< o #Jnco de dJdoB(

DATABASE DESKTOP

SJ ti!iJQão ito Bi?!eB( PJ$J c$iJ$ JB tJ#e!JB" #JBtJ c!icJ$ no coJndo !? B N= B T<-?(

UJ Jne!J ?J$J deiniQão do tipo do #Jnco de dJdoB Be$ ei#idJ( VJoB t$J#J!@J$ co o #Jnco dedJdoB P<<>(

*)

Page 62: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 62/139

CJdJ tJ#e!J e PJ$Jdo" BiniicJ J$Kio e diBco co etenBão (D+( NeBte cJBo o conceito de #Jnco de dJdoB deinido ?e!o diret+rio onde eBtão JB tJ#e!JB e não o noe do J$Kio Ke o cJBo deot$oB #JncoB coo AcceBB" ?o$ ee?!o(

A deiniQão doB cJ?oB dee Be$ eitJ nJ ?$ZiJ te!J" ondeH

•   !ield FameH Deine o noe do cJ?o dJ tJ#e!J(•   ?BpeH Deine o ti?o de dJdoB do cJ?o( Tec!e J #J$$J de $o!Je ?J$J o#te$ J !iBtJ doB

 ?oBBeiB ti?oB(•   :izeH TJJn@o do ti?o de dJdoB deinido no ite Sie( A!nB cJ?oB Bão ?Jd$oniJdoB não

 ?e$itindo J J!te$JQão(•   KeBH Deine Be o cJ?o c@Je ?$i$iJ( Tec!e J #J$$J de eB?JQo ?J$J !iJ$ o deB!iJ$( U

JBte$iBco ei#ido ?J$J coni$JQão dJ c@Je !iJdJ(•   ?able propertiesH Deine J B$ie de itenB coo alidaç7es Inte4ridade reerencial e ite

ito i?o$tJnte 8 Pndices :ecund#rios(

PJ$J deini$ ndiceB Becnd$ioB" c!iKe e ?able properties e eBco!@J :econdarB Indexes e c!iKe e =eine( NJ Jne!J ei#idJ Be!ecione o cJ?o deBeJdo ?J$J c$iJ$ o ndice Becnd$io" neBte ee?!o SetNoe(At$JB dJ BetJ" Be!ecione3o ?J$J J !iBtJ Indexed ields(

*%

Page 63: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 63/139

Page 64: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 64/139

BDE CRIAÇÃO DO ALIAS

VJoB e?!o$J$ co JiB detJ!@eB o conceito e ncionJento dJ cJJdJ +DE( O +DE JBBi coo oDJtJ+JBe DeBTo? inBtJ!Jdo nto co o De!?@i*( Eecte o ?$o$JJ e eJine J te!J iniciJ!(

A te!J diididJ e dJB ?J$teB #BicJBH A !iBtJe de  Aliases do !Jdo eBKe$do e JB coni$JQeB de

cJdJ @lias no !Jdo di$eito(

U conceito i?o$tJntBBio J deiniQão de  Alias( CJdJ noe do !Jdo eBKe$do do +DE $e?$eBentJJ coni$JQão ?J$J JceBBo J dete$inJdo #Jnco( Ee?!oH O  Alias +DDEMOS $e?$eBentJ odi$etZ$io CJQ@r>uivos de pro4ramasQ@r>uivos comunsQ&orland :aredQ=ata o d$ie$ ?J$J JceBBo Jo de #Jnco :PJ$Jdo; ent$e ot$JB coni$JQeB(

DeBBJ Jnei$J o deBeno!edo$ ti!iJ o noe D+DEMOS dent$o do De!?@i ?o$ o di$etZ$io ?odeBe$ J!te$Jdo no +DE Be Jio$eB ?$o#!eJB(

O Alias  J Bt$in Ke deine o ?Jt@ e coni$JQeB ?J$J JceBBo Jo #Jnco de dJdoB(

* Ve$eoB JdiJnte Ke BJ inBtJ!JQão nJ KinJ do B$io tJ# Be$ neceBB$iJ" cJBo J J?!icJQão e De!?@i ti!ieJceBBo J #Jnco de dJdoB(

*5

Page 65: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 65/139

PJ$J c$iJ$ J!iJBH

• C!iKe no en O-/ e eBco!@J N=( :CTRLYN;(• Coni$e o ti?o de d$ie$ :PJ$Jdo;(• DeinJ noe ?J$J o A!iJB :!Jdo eBKe$do;(• DeinJ o pat Jt$JB do #otão $eticnciJB(• C!iKe no en O-/ e eBco!@J A?K" ?J$J coni$J$ JB J!te$JQeB(• Coni$e J $JJQão(

APLICAÇÃO UTILI/ANDO BD EM DELPHI

O ?$Zio ?JBBo conBt$i$ J J?!icJQão no De!?@i" JceBBJndo o #Jnco de dJdoB Jt$JB do ALIAS do+DE( O ?$oeto te$ J nQão #BicJ de Jni?!J$ oB dJdoB dJB tJ#e!JB" !ocJ!iJ3!oB Jt$JB deconB!tJB Bi?!eB e eiti$ $e!JtZ$ioB Bi?!eB e co?oBtoB(

FrmPrincipal 

Ao J#$i$ J noJ J?!icJQão" $Je o ?$oeto dent$o de J ?JBtJH  Empresa

A ?$iei$J nidJde coo Urm8rincipal E o ?$oeto coo Empresa

 No o$!$io inBi$J co?onente MJinMen e c$ie oB itenB de Men J#Jio(

DATA MODULE

A deiniQão doB co?onenteB de JceBBo JoB dJdoB Be$ão centralizados e o$!$ioeB?eciJ! c@JJdo  Data odule( EBte o$!$io te J cJ$Jcte$BticJ #e eB?ecicJH o$iniBe! e BZ $ece#e co?onenteB invis;veis, " o BeJ" o B$io ne Ji iJinJ$ o DJtJMod!e e oBco?onenteB Ke e!e $ece#e( A BJ inJ!idJde cent$J!iJ$ oB co?onenteB ?J$J Ke >ual>uer 

 ormul#rio ?oBBJ te$ JceBBo JoB dJdoB" Be J neceBBidJde de repetir  oB co?onenteB de JceBBo e cJdJo$!$io(

PJ$J c$iJ$ o$!$io DJtJMod!e" c!iKe e !? B N=.

 NJ iJ NeX" c!iKe no ;cone DJtJMod!e e coni$e O1(

, Co $e!JQão Jo B$io(

*'

Page 66: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 66/139

SJ!e o noo o$!$io co o noe de U!rm=mEmpresa(

InBi$J doiB co?onenteBH U DJtJSo$ce e co?onente TJ#!e(

AB ?$o?$iedJdeB ?ode Be$ coni$JdJB cooH

  ob#ect TbSetor: TTable  !atabae9ame = ,&mprea,  Table9ame = ,Setor.db,  /cti7e = True  9ame = TbSetor

  end 

  ob#ect !Setor: T!ataSource  /uto&dit = Fale  !ataSet = TbSetor  9ame = !Setor  $nd 

**

Page 67: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 67/139

D</<S:AtoEdit Pe$ite @J#i!itJ$ oB cont$o!eB ?J$J editJ$ oB dJdoB JtoJticJente(DJtJSet Pe$ite deini$ o co?onente DJtJSet :TJ#!e o <e$] o Sto$eP$oc;

T<-?Actie Pe$ite J#$i$W J tJ#e!J ?J$J ?e$iti$ BJ Jni?!JQão(

DJtJ+JBeNJe Pe$ite  pat io o ALIAS ?J$J JceBBo Jo #Jnco de dJdoB(TJ#!eNJe Pe$ite eBco!@e$ J tJ#e!J J?ZB J deiniQão dJ ?$o?$iedJdeDJtJ+JBeNJe(

O eBo ?$ocediento ?ode Be$ eito ?J$J JB ot$JB dJB tJ#e!JB(U ?J$ de co?onenteB de JceBBo e JB $eB?ectiJB ?$o?$iedJdeB !iBtJdJB JciJ(

FORMUL(RIO DE CADASTRO DE SETOR

FrmCad>etor 

C$ie 7 :? e inBi$J doiB co?onenteB PJne!" J!in@Jdo nJ ?J$te ine$io$ e ot$o nJ$eJ c!iente(

SJ!e o o$( O noe do J$Kio Be$H U!rmCad:etor ( A ?$o?$iedJde NJe do o$ Be$H !rmCad:etor 

UJ cJ$Jcte$BticJ i?o$tJnte nJ conBt$Qão de J?!icJQeB ti!iJndo #Jnco de dJdoB J ?oBBi#i!idJdede t$J#J!@J$oB co cJ?oB TFIELD ee?!iicJdoB Jnte$io$ente" o BeJ" cJ?oB Ke BãoconBide$JdoB coo o#etoB dent$o dJ J?!icJQão" Bendo JBBi eBteB cJ?oB ?oBBe ?$o?$iedJdeB eeentoB indiidJiB Jt$JB dJ o#ect inB?ecto$ o ?o$ Jt$i#iQeB Jni?!Jndo cZdio(VJoB e?!o$J$ ?oco JiB dJ ncionJ!idJde deBte $ec$Bo( CJ?oB TFIELD Bão c@JJdoB decJ?oB ?e$BiBtenteB e BJ c$iJQão et$eJente Bi?!eB(

•  No DJtJMod!e" !ocJ!ie o o#eto TJ#!e $ee$ente tJ#e!J deBeJdJ(• U d?!o c!iKe no o#eto TJ#!e" ei#i$ J Jne!J de Jni?!JQão doB cJ?oB• U c!iKe dentro da janela co o #otão di$eito ei#i$ o B?eed en(• EBco!@J J o?Qão A A?? !?(

A?ZB J c$iJQão doB cJ?oB ?e$BiBtenteB" ?ode3Be Be!ecionJ3!o e e$iicJ$ ?$o?$iedJdeB eB?ecicJB nJO#ect InB?ecto$( AB ?$o?$iedJdeB Be$ão die$enteB de?endendo do ti?o de dJdoB do cJ?o" neBteee?!o ti?o TSt$inFie!d(

*,

Page 68: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 68/139

MJB o e!@o$ eBt ?J$J i$( PoBicione J Jne!J doB cJ?oB ?e$BiBtenteB e !Jdo dJ te!J e co oo$!$io F$CJdSeto$ :c$iJdo Jnte$io$ente; iBe!" Be!ecione oB cJ?oB e J$$JBte3oB ?J$J dent$odo Fo$( UJ ?e$ntJ do ti?oH

Se$ ei#idJ( Coni$e co eB" o BeJ" o De!?@i eBt KeBtionJndo Be no o$!$io  !rmCad:etor Wdee @Je$ J $ee$nciJ Jo o$!$io  =mEmpresaW :DJtJMod!e;( Ao coni$J$ o De!?@i JdicionJJ $ee$nciJ no C E/ dJ nidJde U!rmCad:etor  nJ Beinte eBt$t$JH

implementation

uses +!4&mprea;

E#o$J o De!?@i JQJ eBtJ tJ$eJ de Jnei$J JtoticJ" i?o$tJnte BJ#e$ diBtoh C!J$o Seoc ?o$ J!tJ de cidJdoW" eectJ$ $ioB o$B Be BJ!J$ Jendo $ee$nciJB ent$e e!eB"eBtJ c!B!J ti!iJ$ oB noeB ?Jd$eB :Unit)" Unit%" etc(((; e KJndo oc $eBo!e$ BJ!J$((( o De!?@i ?JBBJ J não encont$J$ JiB eBtJB $ee$nciJB de noeB JntioB( NeBte cJBo ?ode3Be Jni?!J$ o Code Edito$ e e J!JB BitJQeB" J?enJB J?JJ$ o noe e$$Jdo" J$ee$nciJ co$$etJ Be$ $eeitJ(

Pode3Be ec@J$ o edito$ de cJ?oB ?e$BiBtenteB( UJ die$enQJ iBJ! Ke te deBtJKe Jo$J Bão oBcont$o!eB de Jni?!JQão de dJdoB Ke o$J inBe$idoB JtoJticJente ?e!o De!?@i(

*-

Page 69: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 69/139

E#o$J Be ?J$eQJ co co?onente iBto Jnte$io$ente :Edit; eBteB co?onenteB Bão ?$oenienteB dJ ?J!etJ DJtJ Cont$o!B e te o noe de D+Edit" o BeJ" cont$o!e eB?ecico ?J$JJni?!JQão de dJdoB ?$oenienteB de #Jnco de dJdoB( . noB $ee$ioB J eBteB cont$o!eB noB ?$iei$oB ee?!oB do cJ?t!o de +Jnco de DJdoB(

DE/DJtJSo$ce Pe$ite conectJ$W o cont$o!e onte de dJdoB(DJtJFie!d Pe$ite eB?eciicJ$ cJ?o dJ tJ#e!J $ee$enciJdJ e DJtJSo$ce(

InBi$J co?onente DN<F</ e odiiKe BJB ?$o?$iedJdeBH

  ob#ect !B9a7i%ator1: T!B9a7i%ator  !ataSource = !m&mprea.!Setor  iibleButton = LnbFirt* nbrior* nb9e't* nbDatM  end 

InBi$J BeiB co?onenteB +it+tn" e coni$e J?enJB JB ?$o?$iedJdeB NJe" CJ?tion e G!]?@( UJBeBtão iBJ! ?ode Be$ iBtJ J Bei$H

*/

Page 70: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 70/139

M0TODOS E PROPRIEDADES PARA MANIPULAÇÃO DE DADOS

PJ$J  oB $eiBt$oB de J tJ#e!J ?odeoB ti!iJ$ oB BeinteB mAtodosH

Fi$Bt Moe o c$Bo$ ?J$J o ?$iei$o $eiBt$o do dJtJBet(P$io$ Moe o c$Bo$ ?J$J o $eiBt$o Jnte$io$ :Be @oe$;(

 Net Moe o c$Bo$ ?J$J o ?$Zio $eiBt$o :Be @oe$;(LJBt Moe o c$Bo$ ?J$J o !tio $eiBt$o do dJtJBet(Moe+]:N; Moe o c$Bo$ ?J$J $ente o ?J$J t$B" cono$e o J!o$ do ?J$\et$o N"

Ke J!o$ intei$o" ?oBitio o neJtio(

PJ$J 7/?< o incio e i dJ tJ#e!J ?odeoB ti!iJ$ JB propriedadesH

+OF H +oo!eJn   &e4in O !ile( IndicJ T$e Be o c$Bo$ eBtie$ no ?$iei$o $eiBt$o dJtJ#e!J(

EOF H +oo!eJn   End O !ile( IndicJ T$e Be o c$Bo$ eBtie$ no `!tio $eiBt$o dJ tJ#e!J(

Po$ ee?!oH

Table1.Firt; %hile not Table1.&OF do begin

  comando1;  comando<;  ...  Table1.9e't;end;

U incoeniente co $e!JQão Jo cZdio JciJ Ke oB cont$o!eB data<aGare  :dJtJ cont$o!B; Be$ão

JtJ!iJdoB no onito$ edidJ e Ke o todo Net ?e$co$$e J tJ#e!J" e$Jndo J iBJ!iJQãoindeBeJdJ e ?e$dJ de te?o co J BJ JtJ!iJQão( NeBte cJBo" ?ode3Be ti!iJ$ oB todoB  =isableControls e EnableControls(

Table1.!iableControl;try

 Table1.Firt; while not Table1.&OF do begin  comando1;  comando<;  ...  Table1.9e't;

 end;finally Table1.&nableControl;end;

E noBBo ee?!o JtJ!" no o$!$io de CJdJBt$o de Seto$eB" oB cZdioB ?J$J ?e$co$$e$ o dataset o$J i?!eentJdoB de Jnei$J JtoticJ Jt$JB do co?onente DN<F</( Po$ nJdJi?ede J c$iJQão de #oteB inde?endenteB e J deiniQão de andlers de cont$o!e ?J$J nJeJQão$eti$Jndo o D+NJiJto$(

,&

Page 71: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 71/139

PJ$J <?/< :editJ$; oB J!o$eB de dataset  ?odeoB ti!iJ$ o Beinte todoH

Edit Pe$ite editJ$ o dJtJ Bet ?J$J J!te$JQão doB J!o$eB JtJiB ?J$J nooBJ!o$eB(

Ee?!oH  Table1.&dit;

PJ$J 7  noo $eiBt$o e dataset  ?odeoB ti!iJ$ doiB todoBH

A??end C$iJ noo $eiBt$o J?ZB o Hltimo $eiBt$o do dJtJBet(InBe$t C$iJ noo $eiBt$o J?ZB o $eiBt$o co$$ente(

Ee?!oH  Table1./ppend;Ou  Table1.0nert;

PJ$J   $eiBt$o e dataset  ?odeoB ti!iJ$ o todoH

De!ete Reoe o $eiBt$o co$$ente(

Ee?!oHif 4ea%e!D6(‘&t certo ditoX#*mtConKirmation*LmbAe*mb9oM*>) = mrAe  then Table1.!elete;

PJ$J 7< :$JJ$; JB J!te$JQeB- no dataset  ?odeoB ti!iJ$ o todoH

PoBt Coni$J JB J!te$JQeB e dJtJBet(

Ee?!oHTable1./ppend;...Table1.ot;

Table1.&dit;...Table1.ot;

PJ$J << o J!o$ e cJ?o Jt$JB de ?!ield  ?odeoB ti!iJ$ J ?$o?$iedJde !ields o otodo !ield&BFame(

Fie!dB FJ $ee$nciJ J cJ?o eB?ecico Jt$JB de arraB(Fie!d+]NJe FJ $ee$nciJ J cJ?o Jt$JB de Be noe(

PJ$J <7?< J! coJndo eniJdo Jo #Jnco de dJdoB" ti!iJ3Be o todo cJnce!(

CJnce! Coni$J JB J!te$JQeB e dJtJBet(

Ee?!oHTable1./ppend;...Table1.Cancel;

Table1.&dit;...Table1.Cancel;

- InBe$QeB Bão conBide$JdJB J!te$JQeB(

,)

Page 72: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 72/139

FUNÇÕES DE CONVERSÃO

TJnto J ?$o?$iedJde !ields coo o todo !ield&BFame ti!iJ unç7es de conversão ?J$J JceBBoJoB cJ?oB(

Ee?!oH  Dabel1.Caption := Table1.FieldL>M./Strin%;  Dabel<.Caption := Table1.FieldB59ame(‘Set9ome#)./Strin%;  &dit1.Te't := Table1.FieldB59ame(‘SetDocal#).alue;

OS ESTADOS DE UM DATASET

OB datasets  t$J#J!@J co eBtJdoBW( E cJdJ eBtJdo J dete$inJdJ o?e$JQão ?ode Be$ !idJ"ot$JB não( A Jni?!JQão do dataset  Jt$JB de todoB e nQeB Je neBteB eBtJdoB e todo ote?o ?$oocJndo dJnQJB(

UJ iBão e$J! Bo#$e oB eBtJdoB/ de dataset   ?ode Be$ iBtJ J Bei$H

VJoB ti!iJ$ no o$!$io !C<S/ J ?$ticJ deBteB conceitoB( AnteB" t$oKe o D+Edit)$ee$ente Jo cZdio ?J$J co?onente D+Tet coni$e JB ?$o?$iedJdeB =ata:ource ?J$J JtJ#e!J Seto$ e =ata!ield  ?J$J o cJ?o SetCodio(

O +it+tn $ee$ente BJdJ do o$ ?ode te$ BJ ?$o?$iedJde Cancel  e$dJdei$J(

/ O eBtJdo de ?eBKiBJ não oi conBide$Jdo neBte ee?!o(

,%

Edit

+$oXBe

InJtio

InBe$t

InBe$tA??end

PoBtCJnce!

C!oBe O?en

EditCJnce!

PoBt

Page 73: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 73/139

O +it+tn $ee$ente coni$JQão dJB o?e$JQeB ?ode te$ BJ ?$o?$iedJde  =eault  e$dJdei$J e J ?$o?$iedJde Enabled  coo J!Bo(

O +it+tn $ee$ente Jo cJnce!Jento dJB o?e$JQeB ?ode te$ BJ ?$o?$iedJde  Enabled   cooJ!Bo(

unit +FrmCadSetor;{ inter&ace n8o &oi im4re''a}

implementation

uses +!4&mprea;

{$R *.DFM}

 procedure TFrmCadSetor.BbtSairClick(Sender: TObject); begin

  FrmCadSetor.Cloe;end;

{5ara criar o 4rocedimento ;rata"otoe'< di=ite 'ua declara78o('em ;FrmCadSetor) na cláu'ula 4riate e utili>e C;R,S?F;,C 

5ara todo' o' demai'< 'elecione o ob@eto e utili>e a ob@ect in'4ector}

 procedure TFrmCadSetor.TrataBotoe; begin  Bbt0nerir.&nabled := not Bbt0nerir.&nabled;  Bbt&ditar.&nabled := not Bbt&ditar.&nabled;  Bbt2emo7er.&nabled := not Bbt2emo7er.&nabled;  BbtCancelar.&nabled := not BbtCancelar.&nabled;  BbtConKirmar.&nabled := not BbtConKirmar.&nabled;  BbtSair.&nabled := not BbtSair.&nabled;  !b9a7i%ator1.&nabled := not !b9a7i%ator1.&nabled;end;

 procedure TFrmCadSetor.FormCloeUuer5(Sender: TObject;  var CanCloe: Boolean);

 begin  if !m&mprea.TbSetor.State in Ld&dit* d0nertM then

  if 4ea%e!D6(,&'item dado pendente*,1I,deeja %ra78lo,*  mtConKirmation* LmbAe*mb9oM* >) = mrAe then

  CanCloe := Fale  else

   begin

,4

Page 74: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 74/139

  !m&mprea.TbSetor.Cancel;  TrataBotoe;  CanCloe := True;  end;end;

 procedure TFrmCadSetor.Bbt0nerirClick(Sender: TObject);var ro'9um: 0nte%er;

 begin  TrataBotoe;  !m&mprea.TbSetor.Dat;  ro'9um := !m&mprea.TbSetor.FieldB59ame(,SetCodi%o,)./0nte%er 1;  !m&mprea.TbSetor./ppend;  !m&mprea.TbSetor.FieldB59ame(,SetCodi%o,)./0nte%er := ro'9um;  !b&dit<.SetFocu;end;

 procedure TFrmCadSetor.Bbt&ditarClick(Sender: TObject); begin  !m&mprea.TbSetor.&dit;  TrataBotoe;end;

 procedure TFrmCadSetor.Bbt2emo7erClick(Sender: TObject); begin  if !m&mprea.TbSetor.2ecordCount = > then

  S"o$4ea%e(,Tabela 7aiaX,)  else

  if 4ea%e!D6(,Tem certea Yue deeja remo7er o etor: ,1I  !m&mprea.TbSetor.FieldB59ame(,Set9ome,)./Strin% , ,*  mtConKirmation* LmbAe* mb9oM* >) = mrAe then

  !m&mprea.TbSetor.!elete;end;

 procedure TFrmCadSetor.BbtCancelarClick(Sender: TObject);

 begin  !m&mprea.TbSetor.Cancel;  TrataBotoe;end;

 procedure TFrmCadSetor.BbtConKirmarClick(Sender: TObject); begin

  !m&mprea.TbSetor.ot;  TrataBotoe;end;

end&

AnteB de ?$oBBei$ co o ?$Zio o$!$io" neceBB$io inBe$i$ J +i#!iotecJ D  nJc!B!J : dJ 7/<( ConB!te J dicJ Coo BJ#e$W ?J$J JiB ino$JQeB(

,5

Page 75: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 75/139

FORMUL(RIO DE CADASTRO DE FUNCION(RIO

FrmCadFuncionario

VJoB iniciJ$ J conBt$Qão do o$!$io de CJdJBt$o de Fncion$io(

 No en !? eBco!@J o coJndo N= !(0 cone ?J$J o eBo coJndo nJ S?eed+J$(

G$Je eBte noo o$!$io co o noe deH U!rmCad!uncionario A ?$o?$iedJde NJe do o$ dee$ Be$ !rmCad!uncionario

C@Je o DJtJMod!e( C$ie oB cJ?oB ?e$BiBtenteB :TFie!dB; ?J$J J tJ#e!J Fncion$io( A$$JBte3oB ?J$Jdent$o do o$!$io( Coni$e o di!oo :ES; Bo#$e BJ$ o DJtJMod!e e ?oBicione oB o#etoB eJ BeKjnciJ BJ eBco!@J( UJ BeBtão ?ode Be$ iBtJ J Bei$H

ABBocie o co?onente o co?onente D+Tet) tJ#e!J Jt$JB dJ ?$o?$iedJde  =ata:ource J?ontJndo ?J$J J tJ#e!J FncinJ$io e =ata!ield  J?ontJndo ?J$J o cJ?o FnCodio(

ABBocie o co?onente D+NJiJto$ tJ#e!J Fncion$io Jt$JB dJ ?$o?$iedJde =ata:ource(

I?!eente oB andlers de cJdJ #otão cono$e o $Jciocnio do o$!$io Jnte$io$(

VJoB deini$ ot$oB co?onenteB e cJ$Jcte$BticJB Ke no o$!$io Jnte$io$ não eiBtiJ(Po$ ee?!o" o cJ?o :exo oi deinido nJ tJ#e!J coo St$in de cJ$Jcte$( PodeoB eitJ$ Keo B$io ent$e co J Bt$in die$ente de M o F ?o$ ee?!o" eBte $Jciocnio ?ode Be$ eito iJcZdio o iJ co?onente(VJoB o?tJ$ ?e!J BendJ o?Qão ?o$ J B$ie de JntJenB(

InBi$J co?onente DR<G: no o$!$io e não Be ?$eoc?e co o J!in@Jento :?o$ enKJnto;(

ModiiKe JB ?$o?$iedJdeB do co?onenteH

,'

Page 76: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 76/139

  ob#ect !B2adio6roup1: T!B2adio6roup  Caption = ,Se'o,  Column = <  !ataSource = !m&mprea.!Funcionario  !ataField = ,FunSe'o,  0tem.Strin% =

Fem

  4a  alue.Strin% =

F  4  end 

Co!nB Deine e KJntJB co!nJB oB dJdoB dJ ?$o?$iedJde items  Be$ãoo$denJdoB(

IteB Deine oB itenB J Be$e ei#idoB no co?onente(VJ!eB Deine oB J!o$eB J Be$e J$JenJdoB nJ tJ#e!J(

Pode3Be ec!i$ o D+Edit $eB?onBe! ?e!o cJ?o Seo e J!in@J$ o D+RJdioG$o? e Be !J$(

U ot$o co?onente Ke ?ode ei#i$ connto de dJdoB ?$3deinidoB o DC->(InBi$J o co?onente no o$!$io e odiiKe BJB ?$o?$iedJdeBH

  ob#ect !BComboBo'1: T!BComboBo'  !ataSource = !m&mprea.!Funcionario  !ataField = ,Fun&tado,  0tem.Strin% =

/C/D//4

B/C&!F&S6O4/4T4S46/B2&02Z292S2O22SCSS&TO

end 

,*

Page 77: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 77/139

Ec!J o D+Edit $eB?onBe! ?e!o EBtJdo e J!in@e o D+Co#o+o e Be !J$(

M(SCARA PARA ENTRADA DE DADOS

PodeoB deini$ m$scaras ?J$J J ent$JdJ doB dJdoB noB cJ?oB  =ata de Fascimento e

CE8 ( Po$" eBtJ deiniQão não eitJ di$etJente no co?onente data<aGare e Bi noo#eto T!?.

• Se!ecione o DJtJMod!e(• D?!o c!iKe no co?onente T#FncionJ$io(• Se!ecione o cJ?o ?e$BiBtente FnDJtJNJBc•  NJ o#ect inB?ecto$ Be!ecione J ?$o?$iedJde EditMJB(• Coni$e J BcJ$J deBeJdJ(

Ee?!oH

0 J B$ie de ee?!oB ?$3deinidoB" eBco!@J o ti?o DJte e o#Be$e Ke o$J Jc$eBcentJdoB doiBe$oB :?e!o deBeno!edo$; ?J$J ei#i$ o Jno dJ dJtJ(

É neceBB$io coni$J$ no 7indoXBH PJine! de Cont$o!e [ Coni$JQeB ReionJiB [DJtJ0o$J ?J$J ei#i$ oB KJt$o ditoB no Jno(

ConB!te o #otão 0e!? ?J$J e$iicJ$ J Bi#o!oiJ de cJdJ cJ$Jcte$ nJ BcJ$J(

A BcJ$J ?J$J o cJ?o CEP ?ode Be$ J BeinteH EE[.EEE[8EEE;>;Q O CEP ?ode icJ$  J o?Qão de BJ!J$ oB cJ$Jcte$eB !ite$JiB( A dJtJ / eBtJ o?Qão(

:ave )iteral Caracters ?e$ite BJ!J$ o não" :neBte cJBo do CEP; oB Be?J$Jdo$eB .W e 8 nJtJ#e!J(

,,

Page 78: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 78/139

INTEGRAÇÃO DE DADOS ENTRE AS TABELAS

VJoB Jc$eBcentJ$ J!J ncionJ!idJde ?J$J Ke o B$io não ?$eciBe de BJ#e$ o cZdio do Beto$"e!e ?ode$ Be!ecionJ$ J cJiJ de !iBtJe Jt$JB do noe do Beto$ ?o$ ee?!o(

Ac$eBcente DL:C-> Jo Fo$ e JQJ JB odiicJQeB neceBB$iJB" J BeBtão iBJ! J BeinteH

Coni$e o D+Loo?Co#o+o co JB ?$o?$iedJdeB J Bei$H

  ob#ect !BDookupComboBo'1: T!BDookupComboBo'

  DitSource = !m&mprea.!Setor  DitField = ,Set9ome,  e5Field = ,SetCodi%o,

  !ataSource = !m&mprea.!Funcionario  !ataField = ,SetCodi%o,  end 

OndeHLiBtSo$ce Pe$ite conectJ$W o cont$o!e onte F doB dJdoB(LiBtFie!d Pe$ite eB?eciicJ$ cJ?o dJ tJ#e!J $ee$enciJdJ e LiBtSo$ce(1e]Fie!d Pe$ite eB?eciicJ$ o cJ?o c@Je dJ tJ#e!J o$ie doB dJdoB(

DJtJSo$ce Pe$ite conectJ$W o cont$o!e onte /7 doB dJdoB(DJtJFie!d Pe$ite eB?eciicJ$ o cJ?o c@Je eBt$Jnei$J dJ tJ#e!J deBtino(UJ BeBtão de i?!eentJQão ?J$J o cZdio onte do o$!$io ?J$J CJdJBt$o de Fncion$io oBeinteH

unit +FrmCadFuncionario;

{ inter&ace n8o &oi im4re''a}

implementation

,-

Page 79: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 79/139

uses +!4&mprea;

{$R *.DFM}

 procedure TFrmCadFuncionario.FormCloeUuer5(Sender: TObject;  7ar CanCloe: Boolean);

 begin

  if !m&mprea.TbFuncionario.State in Ld&dit* d0nertM then  if 4ea%e!D6(,&'item dado pendente*,1I,deeja %ra78lo,*  mtConKirmation* LmbAe*mb9oM* >) = mrAe then  CanCloe := Fale  else   begin

  !m&mprea.TbFuncionario.Cancel;  TrataBotoe;  CanCloe := True;  end;end;

{5ara criar o 4rocedimento ;rata"otoe'< di=ite 'ua declara78o

('em ;FrmCadFuncionario) na cláu'ula 4riate e utili>e C;R,S?F;,C 

5ara todo' o' demai'< 'elecione o ob@eto e utili>e a ob@ect in'4ector}

 procedure TFrmCadFuncionario.TrataBotoe; begin

  Bbt0nerir.&nabled := not Bbt0nerir.&nabled;  Bbt&ditar.&nabled := not Bbt&ditar.&nabled;  Bbt2emo7er.&nabled := not Bbt2emo7er.&nabled;  BbtCancelar.&nabled := not BbtCancelar.&nabled;  BbtConKirmar.&nabled := not BbtConKirmar.&nabled;  BbtSair.&nabled := not BbtSair.&nabled;  !b9a7i%ator1.&nabled := not !b9a7i%ator1.&nabled;end;

 procedure TFrmCadFuncionario.Bbt0nerirClick(Sender: TObject);7ar ro'9um: 0nte%er;

 begin

  TrataBotoe;  !m&mprea.TbFuncionario.Dat;  ro'9um := !m&mprea.TbFuncionario.FieldB59ame(,FunCodi%o,)./0nte%er 1;  !m&mprea.TbFuncionario./ppend;  !m&mprea.TbFuncionario.FieldB59ame(,FunCodi%o,)./0nte%er := ro'9um;  !b&ditI.SetFocu;end;

 procedure TFrmCadFuncionario.Bbt&ditarClick(Sender: TObject); begin

  !m&mprea.TbFuncionario.&dit;  TrataBotoe;end;

 procedure TFrmCadFuncionario.Bbt2emo7erClick(Sender: TObject); begin

  if !m&mprea.TbFuncionario.2ecordCount = > then  S"o$4ea%e(,Tabela 7aiaX,)  else  if 4ea%e!D6(,Tem certea Yue deeja remo7er o Kuncionrio: ,1I  !m&mprea.TbFuncionario.FieldB59ame(,Fun9ome,)./Strin% , ,*

,/

Page 80: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 80/139

  mtConKirmation* LmbAe* mb9oM* >) = mrAe then

  !m&mprea.TbFuncionario.!elete;end;

 procedure TFrmCadFuncionario.BbtCancelarClick(Sender: TObject); begin

  !m&mprea.TbFuncionario.Cancel;  TrataBotoe;

end;

 procedure TFrmCadFuncionario.BbtConKirmarClick(Sender: TObject); begin

  !m&mprea.TbFuncionario.ot;  TrataBotoe;end;

 procedure TFrmCadFuncionario.BbtSairClick(Sender: TObject); begin

  FrmCadFuncionario.Cloe;end;

end&

ATRIBUINDO VALORES ATRAV0S DE ONNE+RECORD

AindJ no CJdJBt$o de Fncion$ioB" o#Be$e Ke o co?onente  =&*adio6roup não te J ?$o?$iedJde ItemIndex ?J$J iniciJ$ o cJdJBt$o co J dJB o?QeB :Fe o MJB; Be!ecionJdJ(

IBBo oco$$e ?o$Ke oB co?onenteB data<aGare $e!ete o conte`do dJ tJ#e!J(

 NeBte cJBo" ?J$J deini$ J!o$ ?Jd$ão" Jt o D</< M:? selecione a tabela :FncionJ$io" neBteee?!o; e nJ O-/  I7/ nJ iJ E7/  Be!ecione o eento O7N=R o BeJ" J cJdJ

noo $eiBt$o" JoB Jt$i#i$ J!o$ di$eto ?J$J tJ#e!J" Be o co?onente $e!ete o conte`do dJ tJ#e!J"e!e Ji indicJ$ o J!o$ deJ!tW(

 procedure T!m&mprea.TbFuncionario9e$2ecord(!ataSet: T!ataSet); begin

  TbFuncionario.FieldB59ame(,FunSe'o,)./Strin% := ,F,;end;

CONSISTINDO DADOS ATRAV0S DE ONVALIDADE

U ee?!o de conBiBtnciJ ?ode Be$ ti!iJdo no cJ?o !:7D</<N< co o Beinte $JciocnioH Be

J dJtJ diitJdJ ?e!o B$io o$ Jio$ do Ke J dJtJ JtJ!" B#tende3Be Ke o ncion$io cJdJBt$JdoJindJ não nJBce(((

PJ$J c$iJ$ eBtJ $e$J de J!idJQão Jt o D</< M:? e c!iKe dJB eeB nJ tJ#e!J :FncionJ$io"neBte ee?!o; c@JJndo oB TFie!dB( Se!ecione o TFie!d !:7D</<N<  e nJ O#ect InB?ecto$ Be!ecione o eento O7V<?<( C$ie o Beinte cZdio ?J$J o eentoH

 procedure T!m&mprea.TbFuncionarioFun!ata9acalidate(Sender: TField); begin

  if TbFuncionarioFun!ata9ac.alue !ate then

-&

Page 81: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 81/139

  raise &'ception.Create(,!ata menor do Yue a atualX,);end;

 NeBte ee?!o J eceQão eBt Bendo JtiJdJ ?e!o coJndo raise" ?ode$JoB t$JtJ$ eBtJ BitJQão co ocoJndo @bort  Ke e$J J eceQão Bi!encioBJW" o BeJ" J eceQão Be enBJe(

O eento Onalidade oco$$e KJndo J!o$ Jt$i#do Jo cJ?o( Po$ ee?!o J Jt$i#iQão

di$etJH

TbFuncionarioFun9ome.alue := ‘&dileumar#;

diB?J$J o eento Onalidade ?J$J o TFie!d co$$eB?ondente Jo cJ?o FnNoe dJ tJ#e!J FncionJ$io(<Jndo ti!iJoB cont$o!eB data<aGare  eBBe eento oco$$e KJndo o  oco sai do componente e oB$io e J!J J!te$JQão enKJnto o oco eBtJJ no co?onente(O eento tJ# ?ode oco$$e$ d$Jnte o ?$oceBBJento do todo PoBt" se eiBti$ J!J J!te$JQão ?endente J Be$ eitJ ?e!oB co?onenteB data<aGare(

FORMUL(RIO DE CADASTRO DE DEPENDENTES

VJoB c$iJ$ ot$o o$!$io co J inJ!idJde de cJdJBt$J$ oB de?endenteB do ncion$io(Uti!iJ$eoB o eBo $Jciocnio iBto Jt JKi embora este processo possa ser bem dierente do KeJoB Je$( O o#etio Jio$ iJ$oB oB conceitoB iBtoB Jnte$io$ente(

FrmCadDependente

C!iKe no en !? B N= !... 

G$Je J nit co o noeH U!rmCad=ependente A ?$o?$iedJde NJe do o$ Be$H !rmCad=ependente

Coni$e o co?onente D+NJiJto$H

  ob#ect !B9a7i%ator1: T!B9a7i%ator  !ataSource = !m&mprea.!!ependente  iibleButton = LnbFirt* nbrior* nb9e't* nbDatM  end 

-)

Page 82: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 82/139

C$ie J BcJ$J ?J$J o cJ?o DJtJ de NJBciento Jt$JB do o#eto TFie!d co$$eB?ondente(

InBi$J doiB co?onenteB DR<G:" ?J$J o Seo e ot$o ?J$J o PJ$enteBco(

A coni$JQão do D+RJdioG$o? ?J$J o cJ?o Seo ?ode Be$ J BeinteH

  ob#ect !B2adio6roup1: T!B2adio6roup  Caption = ,Se\'o,  Column = <  !ataSource = !m&mprea.!!ependente  !ataField = ,!epSe'o,  0tem.Strin% =

Feminino  4aculino  alue.Strin% =

F  4  end 

A coni$JQão do D+RJdioG$o? ?J$J o cJ?o PJ$enteBco ?ode Be$ J BeinteH

  ob#ect !B2adio6roup<: T!B2adio6roup  Caption = ,\areteco,  Column = ]  !ataSource = !m&mprea.!!ependente  !ataField = ,!eparenteco,  0tem.Strin% =

C^nju%e  Fil"o(a)  ai  4e  alue.Strin% =

1  <  I  ]  end 

Le#$e3Be Ke nJ deiniQão dJ tJ#e!J" o cJ?o ?J$enteBco oi deinido coo Intee$(((Po$Kh A$JenJ$ n`e$o oc?J enoB eB?JQo do Ke J Bt$in e oco?onente ?ode exibir  JW Bt$in e armazenar   ot$o ti?o de dJdoB(

VJoB entende$ JiB JdiJnte Ke o ine$Bo tJ# e$dJdei$o" ?o$ ee?!oH <Jndo o$ neceBB$io eiti$ $e!JtZ$io JoB !e$ n`e$o e i?$ii$ J Bt$in(

InBi$J  D+Tet e J!te$e BJB ?$o?$iedJdeB =ata:ource e =ata!ield.

U de!eB dee ei#i$ o c+di4o do dependente Ke Be$ e$Jdo ?e!o J!o$ito( O ot$o :D+Tet%; dee ei#i$ o nome do uncion#rio dJ tJ#e!J ncion$io( O S?eed+tton Be$ ti!iJdo JdiJnte" e!e dee icJ$ co J ?$o?$iedJde EnJ#!ed J!BJ e dee$

Be$ inc!do no ?$ocediento t$JtJ#otoeB(

UJ BeBtão iBJ! ?ode Be$ iBtJ J Bei$H

-%

Page 83: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 83/139

O cZdio ?J$J i?!eentJ$ JB nQeB doB +it+tnB ?ode Be$ iBto J Bei$H

unit +FrmCad!ependente;

{ inter&ace n8o &oi im4re''a}implementation

uses +!4&mprea;

{$R *.DFM}

 procedure TFrmCad!ependente.Bbt0nerirClick(Sender: TObject);7ar ro'9um: 0nte%er;

 begin  TrataBotoe;  !m&mprea.Tb!ependente.Dat;  ro'9um := !m&mprea.Tb!ependente.FieldB59ame(,!epCodi%o,)./0nte%er 1;  !m&mprea.Tb!ependente./ppend;  !m&mprea.Tb!ependente.FieldB59ame(,!epCodi%o,)./0nte%er := ro'9um;  !b&dit<.SetFocu;end;

{5ara criar o 4rocedimento ;rata"otoe'< di=ite 'ua declara78o

('em ;FrmCadFuncionario) na cláu'ula 4riate e utili>e C;R,S?F;,C 

5ara todo' o' demai'< 'elecione o ob@eto e utili>e a ob@ect in'4ector}

 procedure TFrmCad!ependente.TrataBotoe; begin  Bbt0nerir.&nabled := not Bbt0nerir.&nabled;  Bbt&ditar.&nabled := not Bbt&ditar.&nabled;  Bbt2emo7er.&nabled := not Bbt2emo7er.&nabled;

  BbtCancelar.&nabled := not BbtCancelar.&nabled;  BbtConKirmar.&nabled := not BbtConKirmar.&nabled;  BbtSair.&nabled := not BbtSair.&nabled;  !b9a7i%ator1.&nabled := not !b9a7i%ator1.&nabled;  SpeedButton1.&nabled := not SpeedButton1.&nabled;end;

 procedure TFrmCad!ependente.Bbt&ditarClick(Sender: TObject); begin

  !m&mprea.Tb!ependente.&dit;  TrataBotoe;

-4

Page 84: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 84/139

end;

 procedure TFrmCad!ependente.Bbt2emo7erClick(Sender: TObject); begin

  if !m&mprea.Tb!ependente.2ecordCount = > then  S"o$4ea%e(,Tabela 7aiaX,)  else  if 4ea%e!D6(,Tem certea Yue deeja remo7er o Kuncionrio: ,1I

  !m&mprea.Tb!ependente.FieldB59ame(,!ep9ome,)./Strin% , ,*  mtConKirmation* LmbAe* mb9oM* >) = mrAe then

  !m&mprea.Tb!ependente.!elete;end;

 procedure TFrmCad!ependente.BbtCancelarClick(Sender: TObject); begin

  !m&mprea.Tb!ependente.Cancel;  TrataBotoe;end;

 procedure TFrmCad!ependente.BbtConKirmarClick(Sender: TObject); begin

  !m&mprea.Tb!ependente.ot;  TrataBotoe;end;

 procedure TFrmCad!ependente.BbtSairClick(Sender: TObject); begin  FrmCad!ependente.Cloe;end;

 procedure TFrmCad!ependente.FormCloeUuer5(Sender: TObject;  7ar CanCloe: Boolean);

 begin

  if !m&mprea.Tb!ependente.State in Ld&dit* d0nertM then  if 4ea%e!D6(,&'item dado pendente*,1I,deeja %ra78lo,*  mtConKirmation* LmbAe*mb9oM* >) = mrAe then

  CanCloe := Fale  else

   begin  !m&mprea.Tb!ependente.Cancel;  TrataBotoe;  CanCloe := True;  end;end;

 procedure TFrmCad!ependente.!B&dit<&'it(Sender: TObject);

 begin  if FrmCad!ependente.!B&dit<.Te't ,, then

  if not !m&mprea.TbFuncionario.Finde5(LFrmCad!ependente.!B&dit<.Te'tM) then

   begin

  S"o$4ea%e(,C_di%o in7lido,);  FrmCad!ependente.!B&dit<.SetFocu;  end;end;

end&

-5

Page 85: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 85/139

ATRIBUINDO VALORES DEFAULT ,ONNE+RECORD

PJ$J iniciJ!iJ$ oB cJ?oB Seo e PJ$enteBco co J!o$eB ?$3deinidoB deeoB c@JJ$ o  =ata -odule e Be!ecionJ$ J tJ#e!J :De?endente;" nJ O#ect InB?ecto$ Be!ecione o eento O7N=R edeinJ o cZdio neceBB$io(

 procedure T!m&mprea.Tb!ependente9e$2ecord(!ataSet: T!ataSet); begin  //?á di&eren7a entre 1&2 e 1F2

  Tb!ependente.FieldB59ame(,!epSe'o,)./Strin% := ,F,;  Tb!ependente.FieldB59ame(,!eparenteco,)./0nte%er := <;end;

VJoB deini$ o$!$io ?J$J localizar  o ncion$io cJBo o o?e$Jdo$ do ic$o não BJi#J :e ?$oJe!ente não BJ#e$; o cZdio do ncion$io(

M0TODOS DE PES1UISA

Uti!iJ$eoB todoB de ?eBKiBJ ?J$J encont$J$ oB dJdoB dJ tJ#e!J Fncion$io( +JBicJente oBtodoB !7%K  e !7N</( EBteB todoB Je ?$oc$J e cJ?oB indeJdoB" o BeJ" ocJ?o J Be$ ?eBKiBJdo dee te$ ndice dee eBtJ$ o$denJdo ?o$ e!e( A die$enQJ #BicJ Ke!7%K $eJ!iJ J ?eBKiBJ eJtJ" enKJnto !7N</ $eJ!iJ J ?eBKiBJ ?J$ciJ!" !7%K J nQão Ke $eto$nJ J!o$ #oo!eJn e !7N</ ?$ocediento(

PJ$J odiicJ$ J eBt$t$J de ndiceB dJ tJ#e!J" ti!iJ3Be J ?$o?$iedJde I7>N< dJ tJ#e!J deBeJdJ(Ee?!oH

//utili>a o Andice 'ecundário

  !m&mprea.TbFuncionario.0nde'9ame := ,0ndSet9ome,;

!m&mprea.TbFuncionario.Find9earet(L&dit<.Te'tM);

//utili>a o Andice 4rimário

  !m&mprea.TbFuncionario.0nde'9ame := ,,;!m&mprea.TbFuncionario.Finde5(L&dit1.Te'tM);

FORMUL(RIO DE CONSULTA DE FUNCION(RIOS

FrmConFuncionario

C!iKe e !? B N= ! 

G$Je o noJ nit coo U!rmCon!uncionario  A ?$o?$iedJde NJe do o$ Be$H !rmCon!uncionario

InBi$J oB co?onenteB neceBB$ioB" J!te$e BJB ?$o?$iedJdeB( FJQJ J $ee$nciJ Jo DJtJ Mod!e JnJ!ente Jt$JB do coJndo !? B U U7/...

Coni$e o DG  ?J$J JceBBJ$ J tJ#e!J FncionJ$io e ei#i$ J?enJB o cZdio e o noe doncion$io" dJnQJB iBJiB ?ode Be$ eitJB nJB ?$o?$iedJdeB Ti!eFont e O?tionB(

-'

Page 86: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 86/139

U ee?!o de al4umas ?$o?$iedJdeB Ke ?ode Be$ J!te$JdJBH

  ob#ect !B6rid1: T!B6rid  Curor = crNandoint  TabStop = Fale

  /li%n = alBottom  BorderSt5le = b9one  !ataSource = !m&mprea.!Funcionario  2eadOnl5 = True  TitleFont.St5le = LKBoldM  end 

A ?$o?$iedJde NJe doB +it+tnWB Be$ão o ?$eio +#t Y o cJ?tion :Be eB?JQo e Be Jcento;(

A i?!eentJQão do cZdio do o$!$io F$ConFncionJ$io ?ode Be$ iBtJ !oo J Bei$H

unit +FrmConFuncionario;

{ inter&ace n8o &oi im4re''a}implementation

uses +!4&mprea;

{$R *.DFM}

 procedure TFrmConFuncionario.BbteYuiaCodi%oClick(Sender: TObject); begin  if &dit1.Te't ,, then

  !m&mprea.TbFuncionario.Finde5(L&dit1.Te'tM);end;

 procedure TFrmConFuncionario.&dit1&nter(Sender: TObject); begin  &dit<.Clear;  !m&mprea.TbFuncionario.0nde'9ame := ,,;end;

 procedure TFrmConFuncionario.&dit<&nter(Sender: TObject); begin

  &dit1.Clear;  !m&mprea.TbFuncionario.0nde'9ame := ,0ndFun9ome,;

-*

Page 87: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 87/139

end;

 procedure TFrmConFuncionario.&dit<C"an%e(Sender: TObject); begin

  if &dit<.Te't ,, then  !m&mprea.TbFuncionario.Find9earet(L&dit<.Te'tM);end;

 procedure TFrmConFuncionario.&dit1e5re(Sender: TObject; 7ar e5: C"ar); begin

  if e5 = 1I then  BbteYuiaCodi%o.Click  else  if ( (e5 in L,>,..,E,M = F/DS&) and (3ord(e5) QB/C) ) then

  e5 := >;end;

 procedure TFrmConFuncionario.BbtSairClick(Sender: TObject); begin  FrmConFuncionario.Cloe;end;

 procedure TFrmConFuncionario.FormCloe(Sender: TObject;  var /ction: TCloe/ction);

 begin  !m&mprea.TbFuncionario.0nde'9ame := ,,;  !m&mprea.Tb!ependente.FieldB59ame(,FunCodi%o,)./0nte%er :=  !m&mprea.TbFuncionario.FieldB59ame(,FunCodi%o,)./0nte%er;  FrmCad!ependente.!B&dit<.SetFocu;end;

end&

DEFININDO CAMPOS RE1UERIDOS E E*CEÇÃO LOCAL

PodeoB deini$ J!nB cJ?oB Ke dee" o#$iJto$iJente" Be$e ?$eenc@idoB ?e!o B$io" ?o$ ee?!oH No o$!$io de Cadastro de =ependentes oB cJ?oB !unCodi4o  e  =epFome Bão itoi?o$tJnteB e ?ode$iJ" nJ BJ JBnciJ to$nJ$ o #Jnco inconBiBtente( VJoB ti!iJ$ ee?!o coJ tJ#e!J De?endente(

PJ$J deini$ cJ?oB $eKe$idoB e eitJ$ inconBiBtnciJ de cJ?oB e #$JncoH

• C@Je o DJtJ Mod!e(• EBco!@J J tJ#e!J deBeJdJ :T#De?endente; e c!iKe dJB eeB ?J$J c@JJ$ oB TFie!dB(• EBco!@J o cJ?o TFie!d deBeJdo :FnCodio" neBte ee?!o; e nJ Object Inspector   deinJ

R: coo T:(

DeinJ o eBo $ec$Bo ?J$J o noe do De?endente(

 NeBte oento" Be o B$io tentJ$ $JJ$ o $eiBt$o  sem diitJ$ o cZdio do ncionJ$io o o noe dode?endente Be$ !eJntJdJ J eceQão dJ c!JBBe EDJtJ#JBeE$$o$ Ke dee$ Be$ t$JtJdJ ?e!oBconceitoB iBtoB no c$Bo(

-,

Page 88: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 88/139

O eento OnClic/  do #otão coni$J$ no cJdJBt$o de de?endenteB ?ode Be$ :JtJ!iJdo; i?!eentJdocoo o ee?!o J#JioH

 procedure TFrmCad!ependente.BbtConKirmarClick(Sender: TObject); begin  try

  !m&mprea.Tb!ependente.ot;  TrataBotoe;  e'cept

  on &: &!ataBae&rror do  S"o$mea%e(,Campo obri%at_rio em preenc"erX , 1I1I &.4ea%e);  end;end; 

O o#eto E dJ c!JBBe Exception $ece#e o J!o$ do o#eto de eceQão( EBte o#eto não ?$eciBJ Be$ dec!J$Jdo e ?e$ite co?J$J$ KJ! o e$$o JtJ!" ?J$J toJdJ de deciBeB(

E*CLUSÃO COM CONSIST2NCIA

AnteB de ec!i$ e cJBcJtJ" JoB ee?!iicJ$ J BitJQão e KeH @Jendo J c@Je ?$i$iJ cooc@Je eBt$Jnei$J nJ ot$J tJ#e!J" não Be ?ode ec!i$ o $eiBt$o(

 NeBte ?$oeto" o ee?!o o BeinteH Se @oe$ J oco$$nciJ do cZdio do Beto$ :c@Je ?$i$iJ;dJ tJ#e!J Beto$ nJ tJ#e!J ncion$io :c@Je eBt$Jnei$J; 70 JoB de!etJ$ o Beto$(

A nQão ?</ Ji !ocJ!iJ$ nJ tJ#e!J uncion#rio no cJ?o SetCodio o J!o$ do cJ?o SetCodiodJ tJ#e!J  setor   ?JBBJdo coo ?J$\et$o( CJBo encont$e" J nQão $eto$nJ J!o$ #oo!eJnoe$dJdei$o(

A J!te$JQão no cZdio do #otão $eoe$ do o$ CJdJBt$o de Seto$ ?ode Be$ iBto J Bei$H

 procedure TFrmCadSetor.Bbt2emo7erClick(Sender: TObject); begin

  if !m&mprea.TbSetor.2ecordCount = > then  S"o$4ea%e(,Tabela 7aiaX,)  else if !m&mprea.TbFuncionario.Docate(,SetCodi%o,*  !m&mprea.TbSetor.FieldB59ame(,SetCodi%o,)./0nte%er*LM) then  S"o$4ea%e(,&te etor poui Kuncionrio*,1I

,Ka7or realoc8lo ante de deletar.,)  else if 4ea%e!D6(,Tem certea Yue deeja remo7er o etor: ,1I  !m&mprea.TbSetor.FieldB59ame(,Set9ome,)./Strin% , ,*  mtConKirmation* LmbAe* mb9oM* >) = mrAe then

  !m&mprea.TbSetor.!elete;end;

A nQão !ocJte dec!J$JdJ inte$nJente dJ Beinte o$JH

function Docate(cont e5Field: trin%; cont e5alue: ariant;Option: TDocateOption): Boolean; 7irtual;

OndeH

--

Page 89: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 89/139

1e]Fie!dB Pe$ite deini$ o:B; cJ?o:B; J Be$e ?eBKiBJdoB(1e]VJ!eB Pe$ite deini$ o:B; J!o$e:B; J Be$e ?eBKiBJdoB(O?tionB Pe$ite deini$ Be oB J!o$eB J Be$e ?eBKiBJdoB Be$ão ?J$ciJiB eo

die$enciJdoB de Ji`Bc!J e in`Bc!J( k!oCJBeInBenBitie" !oPJ$tiJ!1e]l

  if !m&mprea.TbFuncionario.Docate(,SetCodi%o,*!m&mprea.TbSetor.FieldB59ame(,SetCodi%o,)./0nte%er*LM) then

 NeBte ee?!o JciJ" eBtJoB ?eBKiBJndo nJ tJ#e!J T#FncionJ$io o cJ?o SetCodio o J!o$ KeeBt nJ tJ#e!J T#Seto$ no cJ?o SetCodio( A ?eBKiBJ eJtJ(

E*CLUSÃO EM CASCATA

PenBe neBtJ BitJQãoH Ao ec!i$ ncionJ$io" o cZdio co$$eB?ondente nJ tJ#e!J de?endente nãoBe$ JiB !ido" o BeJ" o de?endente te$ cZdio :FnCodio; Ke não eiBte JiB(

 NoBBo o#etio então Be$ de!etJ$ o:B; de?endente:B; do ncion$io de!etJdo( procedure T!m&mprea.TbFuncionarioefore!elete(!ataSet: T!ataSet); begin  if Tb!ependente.Docate(,FunCodi%o,*  TbFuncionario.FieldB59ame(,FunCodi%o,)./0nte%er*LM) then  begin//de'abilitar o' controle' data aBare

  Tb!ependente.!iableControl;

{4licar e li=ar o &iltro 4ara ue a tabela con'idere a4ena' o' re=i'tro' ue tem

a chae e'tran=eira com o cdi=o do &uncionario a 'er deletado}

  Tb!ependente.Filter :=,FunCodi%o=,TbFuncionario.FieldB59ame(,FunCodi%o,)./Strin%;  Tb!ependente.Filtered := True;

//Enuanto nao e o &im da tabela< delete o' re=i'tro' &iltrado'

   while not Tb!ependente.&oK do  Tb!ependente.!elete;

//Retirar o &iltro 4ara ue a tabela 4o''a con'iderar o' outro' re=i'tro'

  Tb!ependente.Filter := ,,;  Tb!ependente.Filtered := Fale;  end;end;

 procedure T!m&mprea.TbFuncionario After!elete(!ataSet: T!ataSet); begin//?abilitar o' controle' data aBare a4' a dele7ao do &uncionario

  Tb!ependente.&nableControl;end;

AB ?$o?$iedJdeB !?/ e !?/ ncionJ dJ Beinte o$JH

Dee3Be Jt$i#i$ J!o$ :c$it$io; ?$o?$iedJde i!te$(  Tb!ependente.Filter := ‘!epSe'o=F#;

-/

Page 90: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 90/139

De?oiB !iJ$ o i!t$o ?J$J Ke o c$it$io ten@J eeito(  Tb!ependente.Filtered := True;

A ?J$ti$ deBte oento J tJ#e!J :T#De?endente; BZ Ji Jni?!J$ oB $eiBt$oB Ke Jtente Jo c$it$io"o BeJ" todJB JB ?eBBoJB do Beo einino( CJBo o i!t$o não BeJ deB!iJdo" J tJ#e!J não Ji conBide$J$ oB deJiB $eiBt$oB(

OB todoB E7<-?C7/? e D<-?C7/? Be$e ?J$J @J#i!itJ$ e deBJ#i!itJ$ oB cont$o!eB dataaGare(

IBto ti!iJdo e noBBo ee?!o ?o$Ke @ o eento OnCan4e  no D+Edit% do CJdJBt$o deDe?endenteB" o BeJ" KJndo oB $eiBt$oB dJ tJ#e!J de?endenteB o$e de!etJdoB" o cZdiodo ncion$io J Be$ de!etJdo não eiBti$ nJ tJ#e!J de?endenteB" o eento OnCan4e  dodata aGare D+Edit% Be$ diB?J$Jdo e dJ$ o $eiBt$o dJ tJ#e!J ncion$io de ?oBiQão(<Jndo o cZdio o$ de!etJ$ o ncion$io" de!etJ$ o ncion$io e$$Jdo(

PJ$J eitJ$ iBBo" deBJ#i!itJoB oB cont$o!eB no oento dJ de!eQão doB de?endenteB e @J#i!itJoB nooento ap+s J de!eQão do ncion$io(

UM POUCO MAIS SOBRE CONSULTAS

VJoB c$iJ$ J conB!tJ ?J$J BJ#e$ KJiB ncion$ioB t$J#J!@J e dete$inJdo Beto$ e te$ J o?Qãode i?$ii$ Be $eB!tJdo(

FrmCon>etFun

C$ie noo o$!$io e $Je3o co o noe de U!rmCon:et!un InBi$J oB co?onenteB neceBB$ioBH

PJ$J JceBBJ$ JB tJ#e!JB neceBB$iJB" Be o coJndo !? B U U7/ e Be!ecione o DJtJMod!e(

O co?onente D+Loo?Co#o+o Be$ BJdo apenas para listar   o conte`do de cJ?o dedete$inJdJ tJ#e!J( NeBte ee?!o JB ?$o?$iedJdeB J!te$JdJB Be$ãoH

  ob#ect !BDookupComboBo'1: T!BDookupComboBo'

/&

Page 91: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 91/139

  DitSource = !m&mprea.!Setor  DitField = ,Set9ome,  e5Field = ,SetCodi%o,  end 

Ao cont$$io do Ke ?ode$JoB ?enBJ$" JB ?$o?$iedJdeB DJtJSo$ce e DJtJFie!d neBteco?onente 70  Be$ão J!te$JdJB( E!JB $e?$eBentJ J tJ#e!J /7 ?J$J o enio dedJdoB dJ tJ#e!J F" J tJ#e!J o$ie oi coni$JdJ Jt$JB dJB 4 ?$o?$iedJdeB JciJ(

Então oB noeB doB Beto$eB Be$ão !iBtJdoB no D+Loo?Co#o+o e oB $eB?ectioBncion$ioB Be$ão !iBtJdoB no D+G$id" eBtJ J idiJ #BicJ(

Coni$e o D+G$id nJB BJB ?$o?$iedJdeBH

  ob#ect !B6rid1: T!B6rid  /li%n = alBottom  !ataSource = !m&mprea.!Funcionario  end 

 NJ ?$o?$iedJde Column deinJ J?enJB dJB co!nJBH FnCodio e FnNoe(

O ?$ocediento ?J$J i?$ii$ Be$ iBto J?ZB J conBt$Qão doB $e!JtZ$ioB(OB deJiB ?$ocedientoB Be$ão oB BeinteBH

unit +FrmConSetFun;{ inter&ace n8o &oi im4re''a}

implementation

uses +!4&mprea* +Frm2elSetFun;

{$R *.DFM}

 procedure TFrmConSetFun.!BDookupComboBo'1Click(Sender: TObject); begin

  with !m&mprea do  begin  TbFuncionario.Filter := ,SetCodi%o=,  TbSetor.FieldB59ame(,SetCodi%o,)./Strin%;  TbFuncionario.Filtered := True;  end;

  !B6rid1.!ataSource := !m&mprea.!Funcionario;end;

 procedure TFrmConSetFun.FormCloe(Sender: TObject;  var /ction: TCloe/ction);

 begin

  with !m&mprea do

  begin  TbFuncionario.Filter := ,,;  TbFuncionario.Filtered := Fale;  end;  !B6rid1.!ataSource := nil;end;

 procedure TFrmConSetFun.BbtSairClick(Sender: TObject); begin

  FrmConSetFun.Cloe;end;

/)

Page 92: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 92/139

end&

A ?$o?$iedJde DJtJSo$ce do D+G$id oi ?$eenc@idJ e te?o de ?$oeto ?J$J Ji!iJ$ nJBconi$JQeB" ?o$ dee$ icJ$ JiJ J?ZB J conBtQão e teBteB inJiB( E!J Be$ ?$eenc@idJe te?o de eecQão ?J$J Ke não !iBte oB ncion$ioB JBBi Ke o o$ ei#ido(

RELAT)RIOS

VJoB J#o$dJ$ iniciJ!ente J conBt$Qão de o$!$io Bi?!eB Ke ei#i$ oB dJdoB de uma tJ#e!JJ?enJB(DJ eBJ o$J Ke ?J$J Jni?!J$ J #JBe dJ dJdoB ti!iJoB co?onenteB data aGare dJ ?J!etJDJtJ Cont$o!B( PJ$J Jni?!J$ $e!JtZ$ioB JoB ti!iJ$ co?onenteB dJ ?J!etJ <$e?o$t)&( MJiBino$JQeB :tcnicJB; Bo#$e o <icRe?o$t ?ode Be$ encont$JdJB no Bite dJ <Sot:XXX(KBot(co;(

Frm7elFunc

C$ie o$!$io noo e BJ!e3o co o noeH U!rm*el!unc

InBi$J co?onente <icRe? e não Be ?$eoc?e co o J!in@Jento do co?onente no o$(UJ ?$o?$iedJde ito i?o$tJnte do <icRe? H  &ands( PoiB eBtJ ?$o?$iedJde deine JB $eJB `teiB:#JndJB; ?J$J J ti!iJQão do $e!JtZ$io( EBtJB #JndJBW Be$ão o#etoB do ti?o T<R+Jnd Ke $ece#eot$oB o#etoB ?J$J ei#iQão doB dJdoB(

DeinJ JB BeinteB #JndJB ?J$J eBte ee?!oH

0JBCo!n0eJde$ Deine J $eJ ?J$J oB dJdoB Ke Be$ão $e?etidoB e todJB JB ?inJB coo$Zt!o dJB co!nJB(

0JBDetJi! Deine J $eJ ?J$J oB dJdoB :de J tJ#e!J; J Be$e ei#idoB(0JBPJeFoote$ Deine J $eJ $odJ? do $e!JtZ$io(0JBPJe0eJde$ Deine J $eJ cJ#eQJ!@o do $e!JtZ$io(0JBSJ$] Deine J $eJ de B$io" ei#idJ nJ !tiJ ?inJ do $e!JtZ$io(0JBTit!e Deine J $eJ ?J$J o tt!o do o$!$io ei#ido J?enJB nJ ?$iei$J

 ?inJ(InBi$J oB deJiB co?onenteB e BJB $eB?ectiJB #JndJBH <RS]BDJtJ" <RLJ#e!" <RD+Tet(

)& <ic Re?o$t(

/%

Page 93: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 93/139

PJ$J oB co?onenteB <RS]BDJtJ J!te$e J ?$o?$iedJde =ata ?J$J o J!o$ deBeJdo(

PJ$J oB co?onenteB <RLJ#e! J!te$e JB ?$o?$iedJdeB @li4nment @li4n?o&and e !ont (

PJ$J oB co?onenteB <RD+Tet não J!te$e nen@J ?$o?$iedJde JindJ(

E#o$J BeJ ?e$eitJente ?oBBe! ti!iJ$ o DJtJMod!e ?J$J Be$ J onte de co?onenteB dedJdoB noB $e!JtZ$ioB JoB ti!iJ$ J etodo!oiJ die$ente(OB co?onenteB de JceBBo Be$ão inBtJnciJdoB noB ?$Z?$ioB $e!JtZ$ioB(

InBi$J co?onente TJ#!e( Coni$e BJB ?$o?$iedJdeBH

  ob#ect TbFunc: TTable  !atabae9ame = ,&mprea,  Table9ame = ,Funcionario.db,  /cti7e = True  9ame = TbFunc  end 

Coni$e oB deJiB co?onenteBH

PJ$J oB co?onenteB <RLJ#e! J!te$e J ?$o?$iedJde Caption(

PJ$J oB co?onenteB <RD+Tet J!te$e JB ?$o?$iedJdeB D</<S/ e D</<!?(

/4

Page 94: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 94/139

O co?onente <RD+Tet4 te$ t$JtJento die$enciJdo coo e$eoB JdiJnte(

Se!ecione o co?onente <icRe?) e coni$e BJ ?$o?$iedJde D</<S/(

Co o #otão di$eito do oBe no co?onente <icRe? e eBco!@J P=(U ee?!o ?ode Be$ iBto JindJ e te?o de ?$oeto(

PJ$J Je$ J c@JJdJW do $e!JtZ$io no en ?$inci?J!" dee3Be c@JJ$ o todo P$eieX do <icRe?dJ Beinte o$JH

  Frm2elFunc.Uuick2ep1.re7ie$;

CAMPOS CALCULADOS

Voc dee !e#$J$3Be Ke o cJ?o Beo deinido coo cJ?o A!JN$ico de J ?oBiQão FWo MW( MJB Ke$eoB Ke BJiJ J Bt$in FeininoW o MJBc!inoW no $e!JtZ$io" JoB ti!iJ$ cJ?o cJ!c!Jdo ?J$J $eJ!iJ$ eBtJ tJ$eJ(

CJ?oB cJ!c!JdoB Be$e ?J$J cJ!c!J$W J!J $otinJ e tempo de execução( EBte c!c!o não o#$iJto$iJente J e?$eBBão de c!c!o Jtetico" ?ode Be$ J condiQão de Jt$i#iQão J?ZB teBte !Zico" ?o$ ee?!o(

 No $e!JtZ$io" Be!ecione o =ata:et < ?able" d d?!o c!iKe( No edito$ de cJ?oB ?e$BiBtenteB ti!ie o #otão di$eito do oBe e c!iKe e A A?? !? ?J$J JdicionJ$oB todoB oB cJ?oB(Co o #otão di$eito noJente" c!iKe dent$o do edito$ e eBco!@J N= !?...

/5

Page 95: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 95/139

UJ noJ Jne!J Be$ ei#idJ( P$eec@J oB iteB #ame e pe" coni$e J Jne!J(

U noo cJ?o c@JJdo SeoEtenBo dee$ B$i$ no edito$(

O cJ?o cJ!c!Jdo ncionJ J?enJB e tempo de execu!"o  $eJ!iJndo o cZdio Ke dee icJ$ noeento O7C<?!? dJ tJ#e!J deBeJdJ(Se!ecione J tJ#e!J T#Fnc e eBc$eJ o cZdio no eento :OnCalc!ields; indicJdoH

 procedure TFrm2elFunc.TbFuncCalcField(!ataSet: T!ataSet); begin{ ;bFuncFunSe:o e ;bFuncSe:oE:ten'o '8o o' !ame2' do' cam4o' 4er'i'tente'. 5oderia

'er u'ado a 4ro4riedade Field"!ame ou Field' 4ara ace''ar o' cam4o'.}

  if TbFuncFunSe'o.alue = ,F, then

  TbFuncSe'o&'teno./Strin% := ,Feminino,

/'

Page 96: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 96/139

  else

  TbFuncSe'o&'teno./Strin% := ,4aculino,;end;

Se!ecione o <RD+Tet deBtinJdo Jo cJ?o Beo e J!te$e BJB ?$o?$iedJdeB D</<S/  e D</<!?.Le#$Jndo Ke o cJ?o DJtJFie!d Be$ o cJ?o cJ!c!Jdo :exoExtenso.

PJ$J J #JndJ :ummarB  inBi$J co?onente <RLJ#e! e co?onente <RS]BDJtJ( A!te$e oCJ?tion do <RLJ#e! ?J$J TotJ! de ncion$ioBW( E J!te$e J ?$o?$iedJde dJtJ do <RS]BDJtJ ?J$JK$BDetJi!Cont(

E cJdJ #JndJ ?ode3Be J!te$J$ JB onteB e J ?$o?$iedJde  !rame ?J$J cJBJ$ eeito de diiBãoi?o$tJnte(

A !J$$J dJB #JndJB deine J diBt\nciJ ent$e oB $eiBt$oB(

RELAT)RIO MESTRE-DETALHE

U $e!JtZ$io co?oBto de JiB de J tJ#e!J onde @ $e!JcionJento e?!cito Jt$JB de Jc@Je ?$i$iJ e J eBt$Jnei$J denoinJdo MeBt$e3DetJ!@e( A tJ#e!J Ke o$nece J c@Je ?$i$iJ J tJ#e!J MeBt$e J tJ#e!J Ke t$J#J!@J co J c@Je eBt$Jnei$J J tJ#e!J DetJ!@e(

Po$ ee?!o JoB c$iJ$ $e!JtZ$io ent$e :etor  e !uncion#rio" ?J$J cJdJ Beto$ :c@Je ?$i$iJ; ?ode@Je$H e$o" o $ioB ncion$ioB :J tJ#e!J ncion$io t o cJ?o SetCodio coo c@JeeBt$Jnei$J;( Se$ ei#ido dJ tJ#e!J MeBt$eH o cZdio e o noe do Seto$" dJ tJ#e!J DetJ!@eH o noe doncion$io(

Frm7el>etFun

C$ie noo o$!$io e $Je3o coo Urm*el:et!un(InBi$J oB co?onenteBH) 8 <icRe?() 8 DJtJSo$ce% 8 TTJ#!eB

Coni$e oB co?onenteB :dJ tJ#e!J eBt$e; coo J Bei$H

  ob#ect !Setor: T!ataSource  /uto&dit = Fale  !ataSet = TbSetor  9ame = !Setor  end 

  ob#ect TbSetor: TTable  !atabae9ame = ,&mprea,  Table9ame = ,Setor.!B,  /cti7e = True

/*

Page 97: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 97/139

  9ame = TbSetor  end 

AnteB de deini$ o $e!JcionJento" neceBB$io ndice Becnd$io ?e!o cJ?o c@JeeBt$Jnei$J nJ tJ#e!J detJ!@e( Se o ndice JindJ não eiBte" c$ie Jo$J Jt$JB do DJtJ+JBeE?!o$e$" Be noe Be$ IndSetCodio

PJ$J deini$oB $e!JcionJento :e?!cito; do ti?o MeBt$e3DetJ!@e Be!ecione J tJ#e!J detJ!@e:T#FncionJ$io; ?$eenc@J JB ?$o?$iedJdeB #BicJB(

ob#ect TbFuncionario: TTable  /cti7e = True  !atabae9ame = ,&mprea,  Table9ame = ,Funcionario.db,  9ame = TbFuncionario

  4aterSource = !Setor  end 

A ?$o?$iedJde M</!? Be$ ?$eec@idJ ?e!J cJiJ de di!oo ondeH

AJi!J#!eIndeeB

Re?$eBentJ o ndice Becnd$io :dJ tJ#e!J ncion$io; ?e!J c@Je eBt$Jnei$J:SetCodio;(

DetJi! Fie!dB É J c@Je eBt$Jnei$J(MJBte$ Fie!dB É J c@Je ?$i$iJ(

C!iKe e A e coni$e J Jne!J co O (

DeinJ JB #JndJB e inBi$J oB co?onenteB neceBB$ioB iBJ!iJQão doB dJdoBH

/,

Page 98: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 98/139

A #JndJ =etail  Be $ee$e tJ#e!J MeBt$e :T#Seto$;

A #JndJ :ub =etail Be $ee$e tJ#e!J DetJ!@e :T#FncionJ$io;

A #JndJ :ub =etail  dee te$ J ?$o?$iedJde DJtJSet !iJdJ tJ#e!J detale(

Lie oB co?onenteB <RD+ B BJB $eB?ectiJB tJ#e!JB e cJ?oB(

O co?onente <icRe? dee te$ J ?$o?$iedJde DJtJSet !iJdJ tJ#e!J mestre(

/-

Page 99: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 99/139

CONSULTAS E IMPRESSÃO

Coo oi $ee$enciJdo Jnte$io$ente" nJ conB!tJ de Beto$ e ncion$ioB :F$ConSetFn; @JiJ  #otão ?J$J i?$ii$ J conB!tJ(

 procedure TFrmConSetFun.Bbt0mprimirClick(Sender: TObject); begin  with Frm2elSetFun do  begin

  TbSetor.Filter := ,SetCodi%o=,  !m&mprea.TbSetor.FieldB59ame(,SetCodi%o,)./Strin%;  TbSetor.Filtered := True;  Uuick2ep1.re7ie$4odal;  TbSetor.Filter := ,,;  TbSetor.Filtered := Fale;  end;end;

INSTALLSHIELD

O ?$o$JJ InBtJ!!S@ie!d ?e$ite e$J$ ?$ocediento JtoJtiJdo ?J$J J inBtJ!JQão dJ BJJ?!icJQão e ot$oB co?tJdo$eB ?o$ B$ioB e?e$ienteB o não(

VJoB ee?!iicJ$ J ti!iJQão do ?$o$JJ e$Jndo J inBtJ!JQão do ?$oeto e?$eBJ(

Uti!iJ$eoB J e$Bão Install:ield Express or =elpi'99(Ao eectJ$ o ?$o$JJ" J te!J de ent$JdJ Bee!@Jnte i$J J#Jio dee J#$i$(

)) E#o$J eBtJ e$Bão BeJ encont$JdJ no CD de inBtJ!JQão do De!?@i neceBB$io inBtJ!3!J Be?J$JdJente do ?$oceBBo deinBtJ!JQão do De!?@i(

//

Page 100: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 100/139

Onde JB o?QeB JciJ $e?$eBentJH

Op!"o O&'etivo

O?en nJ eiBtin Set? P$oect Pe$ite J#$i$ ?$oeto $JJdo Jnte$io$ente(O?en ]o$ !JBt Set? P$oect A#$i$ o `!tio ?$oeto c$iJdo(

C$eJte J neX Set? P$oect C$iJ$ noo ?$oeto de inBtJ!JQão(

VJoB Je$ iniciJ!ente J diBtinQão ent$e  8rojeto em =elpi  e  8rojeto de Instalação  doInBtJ!!S@ie!d(

P$oeto e De!?@i connto de J$KioB :(DPR" (PAS" (DFM" (((; Ke Be$ão co?i!JdoB eBe $eB!tJdo Be$ o J$Kio (E6E ?J$J J eecQão do ?$o$JJ(

P$oeto de inBtJ!JQão J$Kio (I79 Ke $JJ$ JB coni$JQeB ?J$J J inBtJ!JQão doJ?!icJtio :(E6E Y +Jnco de DJdoB Y +DE;(

 NJ Jne!J iniciJ!" eBco!@J J o?Qão Create a neG :etup 8roject W(

UJ ?$ZiJ Jne!J dee Be$ ?$eenc@idJ co JB BeinteB ino$JQeBH

A?ZB o ?$eenc@iento e coni$JQão dJ Jne!J JciJ" J Jne!J ?$inci?J! Be$ ei#idJ e o$J de cJde$noW ?J$J J Jni?!JQão de iteB Be?J$JdoB e $?oB ?$inci?JiBH

)&&

EBco!@J J ?JBtJ iniciJ! ?J$J $JJ$o ?$oeto deinBtJ!JQão

Coni$e o ?$oceBBo(

AtenQão noJ$Kio Ke Be$e$Jdo(

Deini$ noe ?J$J

o ?$oetode

inBtJ!JQão

Pode3Be :onão; c$iJ$ JB#?JBtJ ?J$J

o$JniJ$ oBnooB

J$KioBe$JdoB

Page 101: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 101/139

 >et the +isual Design

C!iKe no ite Application In,ormation( E ?$eenc@J oB iteB J#JioH

)&)

Pode3Becone$i$ J ?JBtJ e o

J$Kio de ?$oeto

Page 102: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 102/139

OndeH

 Item da 'anela Finalidade

A??!icJtion NJeH Deine noe ?J$J o J?!icJtio(A??!icJtion EectJ#!eH Deine o J$Kio eecte! do J?!icJtio(

Ve$BionHDeine J e$Bão do J?!icJtio" i?o$tJnte ?J$J JtJ!iJQeBt$JB(

Co?Jn]H Noe dJ e?$eBJ de deBeno!iento do BotXJ$e(

DeJ!t DeBtinJtion Di$ecto$]H Deine o di$etZ$io de deBtino padrão(

OB te$oB ent$e  Bão deinidoB ?e!o InBtJ!!S@ie!d dJ Beinte o$JH

mP$o$JFi!eBDi$ Deine J ?JBtJ A$KioB de P$o$JJBW

mINSTALLDIRDeine o cJin@o :?Jt@; co?!eto eBco!@ido ?e!o B$io nooento dJ inBtJ!JQão(

m7INDIR Deine J ?JBtJ do 7indoXB nJ KinJ deBtino(

m7INSSDIRDeine J ?JBtJ S]BteW do 7indoXB" ito BJdJ ?J$J $ece#e$ J$KioB do ti?o DLL(

mCoonFi!eBDi$Deine J ?JBtJ A$KioB ConBW" B#?JBtJ de A$KioB de

P$o$JJBW(mFONTDIR

Deine J ?JBtJ onde Bão J$JenJdoB oB J$KioB (TTF no7indoXB" o BeJ" JB onteB(

MJio$eB ino$JQeB" c!iKe no #otão AdJ dent$o dJ Jne!J(

AindJ nJ eBJ Jne!J" c!iKe nJ 4uia  -ain RindoGW(

)&%

Page 103: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 103/139

OndeH

MJin Tit!e Deine tt!o d$Jnte J inBtJ!JQão(Loo +itMJ? Deine J$Kio de #itJ? ti!iJdo d$Jnte J inBtJ!JQão"

 ?$oJe!ente o !ooti?o de BJ e?$eBJ(+Jc$ond Co!o$ DeinJ J co$ de ndo dJ te!J d$Jnte J inBtJ!JQão(

E nJ `!tiJ iJH !eatures deie !iJdo J o?Qão @utomatic Uninstaller (

EBBJ o?Qão deine o ite de deBinBtJ!JQão no 7indoXB Jt$JB do P<7? C7/? B A7< :R PF<<(

Coni$e eBtJ Jne!J co o #otão O1(

 >peci, Components and Files

 NJ Jne!J ?$inci?J! Be!ecione o ite ;roups and Files

)&4

Page 104: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 104/139

. teoB $?o ?Jd$ão c@JJdo  8ro4ram !iles( EBte $?o cont `nico J$Kio" oeecte!( Po$ ?J$J Ke J J?!icJQão De!?@i :>ue use banco de dados; ncione co$$etJente" noic$o do B$io dee @Je$ J! do eecte!" oB J$KioB do #Jnco de dJdoB e J cJJdJ +DE(

VJoB deini$ neBte oento $?o ?J$J o #Jnco de dJdoB(

C!iKe no #otão NeX G$o?( A ?$ZiJ i$J Ji i!Bt$J$ eBtJB o?QeB(

Diite noe ?J$J o $?o" neBte ee?!o Be$ D

DeinJ J ?JBtJ de deBtino" neBte ee?!o Be$H DATAASEDIR o BeJ" o B$io dee$ eBco!@e$ J ?JBtJ" o InBtJ!!S@ie!d então ti!iJ$ J coni$JQão do ?Jt@ oB J$KioB de dJdoB( A deiniQãodeBte ?Jt@ Be$ão deinidJB JdiJnte(

O todo de JtJ!iJQão Be$ o de nunca atualizar " ?oiB e up4rade do BotXJ$e" ?odeoB eniJ$ J$KioB de dJdoB JioB o die$enteB do Ke o B$io eBt ti!iJndo(

)&5

C!iKe no BinJ! Y ?J$J iBJ!iJ$ oJ$Kio Ke J ?J$te dJinBtJ!JQão(

PJ$J deini$ noo

$?o(

InBe$e J$KioBe dete$inJdo

$?o(

Deine ?$o?$iedJdeB do

$?o

Page 105: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 105/139

Coni$e J Jne!J JciJ co O1(UJ noJ ?JBtJ :$?o; dee Be$ ei#ido nJ Jne!J Jnte$io$( Se!ecione o $?o D+ e c!iKe e  Insert  !iles( Encont$e J ?JBtJ onde eBtão oB J$KioB do #Jnco de dJdoB e Be!ecione3oB :?e!o tec!Jdo ?ode3BeBJ$ CTRLYA;

Coni$e J Jne!J JciJ(

A Jne!J Jnte$io$ dee !iBtJ$ doiB $?oB co BeB $eB?ectioB J$KioB(

)&'

EBco!@J odi$etZ$io ?Jd$ão dedeBtino

Page 106: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 106/139

Coni$e J Jne!J co O1(

DoB J$KioB #BicoB ?J$J J inBtJ!JQão teoB o eecte! e o #Jnco de dJdoB deinidoB e $?oB(FJ!tJ coni$J$ Jo$J J cJJdJ +DE(

 >peci, Install>hield O&'ects ,or Delphi 5

C!iKe no ite ;eneral Options dJ Jne!J ?$inci?J! do InBtJ!!S@ie!d(

ABBi Ke oc Be!ecionJ$ o ite +DE" J noJ Jne!J dee$ Be$ ei#idJ(

)&*

Page 107: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 107/139

:empre utilize a opção !ull &=E Installation para evitar conlitos de &=E local com &=E 4lobal. @re4istrB do RindoGs suporta apenas uma coni4uração de &=E.

AJnce ?J$J J ?$ZiJ te!JH

 NeBte ee?!o" o A!iJB te onoe de e?$eBJ( :O eBo noe ti!iJdo no +DE do ?$oeto;

Coni$e o noe e c!iKe e OK  ?J$J coni$J$( A ?$ZiJ Be$ ei#idJ co J?enJB ite #oo!eJno ?J$J eBco!@JH

Se?$e coni$e J $JJQão dJ coni$JQão" !iJndo o c@ec#o diB?one! nJ Jne!J(

AJnce ?J$J J ?$ZiJ etJ?J(

)&,

VJoB deini$ onoe do A!iJBdJ J?!icJQão(Dee Be$ oeBo noeti!iJdo ?e!o

 ?$oeto eDe!?@i

Page 108: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 108/139

C!iKe e @vançar  e e Concluir  no `!tio ?JBBo do ?$oceBBo(

 NJ Jne!J onde Be!ecionJoB o +DE c!iKe e OK (

 >elect .ser Inter,ace Components

 NJ Jne!J ?$inci?J!" c!iKe e Dialog Boxes(

OndeH

 Item O&'etivo

7e!coe +itJ?Deine J i$J no incio do ?$oceBBo de inBtJ!JQão( At$JB dJ iJSettinB ?ode Be$ eBco!@ido +itJ? de )* co$eB(

7e!coe MeBBJe Deine J Jne!J co ino$JQeB ?Jd$oniJdJB nJ !inJ In!eBJ(SotXJ$e LicenceA$eeent

Pe$ite ei#i$ J enBJe ?Jd$oniJdJ de !inceQJ Jt$JB de JJ$Kio teto :T6T;( Coni$e o J$Kio Jt$JB dJ iJ SettinB(

ReJde Ino$JtionPe$ite ei#i$ J enBJe en$icJ Jt$JB de J J$Kio teto:T6T;( Coni$e o J$Kio Jt$JB dJ iJ SettinB(

UBe$ Ino$Jtion Pe$ite ei#i$ J cJiJ de di!oo ?J$J ?$eenc@iento do B$io(C@ooBe DeBtinJtionLocJtion

Deine J ?JBtJ onde Be$ inBtJ!JdJ J J?!icJQão( A ?JBtJ ?Jd$ão de su4estão  ?J$J o B$io eBt deinidJ nJ iJ SettinB(

C@ooBe DJtJ#JBeLocJtion

Deine J ?JBtJ onde Be$ inBtJ!JdJ J #JBe de dJdoB( A ?JBtJ  padrão de su4estão dee Be$ deinidJ Jt$JB dJ iJ SettinB(Po$ ee?!o INSTALLDIRQD

DeBBJ o$J" o indicJdo$ DATAASEDIR inBtJ!J$ oB J$KioB no ?Jt@ Ke oi deinido ?e!o B$io :INSTALLDIR; e n oB#di$etZ$io QD.O ALIAS Be$ JtoJticJente c$iJdo e J?ontJdo ?J$J eBte

)&-

Page 109: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 109/139

B#di$etZ$io(Set? T]?e Deine ti?oB de Bet? ?oBBeiB(

CBto Set?Deine KJiB oB iteB ?ode Be$ inBtJ!JdoB nJ BitJQão de Bet?WB ?e$BonJ!iJdoB(

Se!ect P$o$J Fo!de$ Deine e KJ! 4rupo de pro4ramas Be$ão inBtJ!JdoB oB coneB(StJ$t Co?]in Fi!eB Ei#e $eBo do ti?o de Bet?" ?JBtJ J Be$ ti!iJdJ e B$io(

P$o$eBB IndicJto$  UJ dJB ?$inci?JiB Jne!JB" deine J ?$o$eBBão dJ inBtJ!JQão(I?o$tJnte ?J$J Ke o B$io não ?enBe Ke J KinJ ?oBBJ eBtJ$ t$JJdJ e toJ$ J!J edidJ ?J$J Bo!cionJ$ o ?$o#!eJW(

+i!!#oJ$dBDeine J i$J no i do ?$oceBBo de inBtJ!JQão( At$JB dJ iJSettinB ?ode Be$ eBco!@ido +itJ? de )* co$eB o 7MF)%(

Set? Co?!eteEi#e J Jne!J de inJ!iJQão de todo o ?$oceBBo( NJ iJ SettinB ?ode3Be eBco!@e$ ot$JB o?QeB(

 >peci, Folders and Icons

C!iKe no ite ;eneral >ettings(

 NJ iJ 6eneral  ?ode3Be deini$ ?J$\et$oB ?J$J J J?!icJQão :cJBo Bee neceBB$io; e o odo deei#iQão do cone" Be o ?$o$JJ Be$ eectJdo No$J!" MJiiJdo o MiniiJdo( CJBo J o?Qão No$J! eBteJ Be!ecionJdJ" J o?Qão 7indoXStJte do o$!$io ?$inci?J! dJ J?!icJQão Be$ BJdo(

0 J ?oBBi#i!idJde de c$iJ$ ot$oB coneB ?J$J $e?$eBentJ$ ot$oB J$KioB" J! do eecte! :JtJ!;(Ao dJ$ o ite =escription" o cone Add Icon icJ$ diB?one!(

 NJ iJ  @dvanced  ?ode3Be deini$ J tec!J de JtJ!@o e KJ! o o!de$ o cone dee eBtJ$ !ocJ!iJdo noJ#iente 7indoXB" ondeH

 Item O&'etivo

DeJ!t Fo!de$ InBe$e o cone no $?o ?Jd$ão de inBtJQão de ?$o$JJB(EH IniciJ$ [ P$o$JJB [ E?$eBJ [ cone E?$eBJ(P$o$JB Men Fo!de$ InBe$e o cone no $?o ?$o$JJB do ?$Z?$io 7indoXB(

EH IniciJ$ [ P$o$JJB [ cone E?$eBJ(StJ$t Men Fo!de$ InBe$e o cone no en do #otão IniciJ$(DeBto? Fo!de$ InBe$e o cone nJ $eJ de t$J#J!@o( :DeBto?;

StJ$t? Fo!de$ 

InBe$e o cone no $?o IniciJ$(EH IniciJ$ [ P$o$JJB [ IniciJ$ [ cone E?$eBJ(O-. Todo cone contido neBte $?o eectJdo nJ J#e$t$J do7indoXB(

Send To Fo!de$  InBe$e o cone no Men R?ido do 7indoXB" c@JJdo Jt$JB do #otão di$eito EniJ$ ?J$J [ cone E?$eBJ

 7un Dis) Builder 

)% 7indoXB MetJ! Fi!eB( A$Kio ?Jd$ão do $ec$Bo c!i?3J$t dJ Mic$oBot(

)&/

Page 110: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 110/139

EBtJ Jne!J ?e$ite J c$iJQão doB J$KioB para J diJ Ke ?ode Be$ diBKete de 4 p " i? d$ieo CD3ROM ent$e oB JiB ?o?!J$eB( 0 tJ# o?QeB ?J$J diBKete de ,%& 1#(É i?o$tJnte notJ$ noB ?JBBoB do ?$oceBBo Be @oe J! Garnin4  :cidJdo; o error  (

O `nico t$J#J!@o deini$ KJ! J diJ e c!icJ$ no #otão +i!d( NeBte ee?!o" ar>uivos para KJt$o

diBKeteB o$J e$JdoB(O +DE oc?J t$B diBKeteB( S#tende3Be Ke J J?!icJQão :E6E Y +Jnco de dJdoB; oc?J diBco(

O `!tio ?JBBo Be$ co?iJ$ oB ar>uivos de instalação  e$JdoB ?o$ todo o ?$oceBBo" ?J$J J diJdeBeJdJ( A o?Qão / do en C?/ B C</ D/-:/7 M< ?e$iti$ eBtJ tJ$eJ(

Coo J Bei$H

 NJ #J$$J de coneB" @ cone ?J$J o eBo coJndo(

))&

Page 111: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 111/139

Se oc não deBeJ e$J$ oB diBcoB J ?J$ti$ deBtJ Jne!J" ?ode3Be J#$i$ o e$enciJdo$ eH IniciJ$ [ P$o$JJB [ &7= E>? e iBJ!iJ$ J eBt$t$J de ?JBtJB c$iJdJB ?e!o InBtJ!!S@ie!dH

 No ee?!o JciJ" o$J c$iJdoB doiB ti?oB de DiB +i!de$H UJ o?Qão co diBKeteB de )(55 e ot$Jco CD3ROM( Note Ke o$J c$iJdJB ?JBtJB Be?J$JdJB ?J$J cJdJ o?Qão( OB J$KioB encont$J3BeBe?J$JdoB e diB?oneiB ?J$J Jni?!JQão do deBeno!edo$" ?odendo Be$ co?iJdoB ?J$J J diJdeBeJdJ(

Ao$J" JoB ?enBJ$ nJ Beinte BitJQãoHaP$eciBo eniJ$ o ?$oeto Jt$JB dJ Inte$net o de J diJ" Jt$JB de `nico J$Kio(b

Pode$JoB co?JctJ$ oB J$KioB ti!iJndo co?JctJdo$ ?o?!J$ coo i? o J$ JB e$eoB JBei$ J o?Qão JiB ?$oiBBionJ!(

)))

Page 112: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 112/139

INSTALLSHIELD PACKAGEFORTHE+EB

A e?$eBJ InBtJ!!S@ie!d ?oBBi ?$odto c@JJdo InBtJ!!S@ie!d PJcJeFo$T@e7e# Ke ?e$iteco?JctJ$ noBBoB J$KioB e eecte! J?enJB(EBte BotXJ$e ?ode Be$ encont$Jdo no Bite dJ e?$eBJ eH @tt?HXXX(inBtJ!!B@ie!d(co no !in 

 ?$odtoB( E!e deBc$ito coo ”PackageForTheWeb is available to all customers courtesy of InstallShield”.

O BeJ" BZ Je$ o doXn!oJd e ti!iJ$ o BotXJ$e(

PJ$J ee?!iicJ$ BJ ti!iJQão" JoB ti!iJ$ :J?$oeitJ$; o J$Kio de ?$oeto :(I79; Jnte$io$ c$iJdoJt$JB do InBtJ!!S@ie!d E?$eBB(

Ao eectJ$ o BotXJ$e :PJcJeFo$T@e7e#; J te!J iniciJ! deBc$eendo Be o#etio e ende$eQo nJXe# ei#ido( C!iKe e @vançar (

O J$Kio de ?$oeto do InBtJ!!S@ie!d PJcJeFo$T@e7e# te$ J etenBão (PF7

 NJ ?$ZiJ Jne!J ?odeoB eBco!@e$ ent$e t$B o?QeBH

 Item O&'etivo

C$eJte J neXPJcJeFo$T@e7e#

 ?$oect

CJBo não ten@JoB ?$oeto c$iJdo ?e!o InBtJ!!S@ie!d" ?odeoB c$iJ$  ?$oeto PF7 inde?endente Jt$JB deBtJ o?Qão(

O?en Jn eiBtinPJcJeFo$T@e7e# ?$oect

Pe$ite editJ$ ?$oeto eiBtente( :(PF7;

I?o$t Jn InBtJ!!S@ie!dP$oeBBionJ! o$ E?$eBB ?$oect

Pe$ite i?o$tJ$ o J$Kio de ?$oeto :(I79; do InBtJ!!S@ie!d E?$eBBc$iJdo Jnte$io$ente(

))%

Page 113: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 113/139

EBco!@J J o?Qão de i?o$tJ$" !ocJ!ie o J$Kio do ?$oeto (I79 e c!iKe e @vançar (

P$eenc@J J Jne!J JciJ co ino$JQeB Ke !J$ neceBB$iJB e c!iKe e  @vançar (

 NJ ?$ZiJ Jne!J ?ode3Be eBco!@e$ ent$e J e$JQão de J$Kio eecte! : sel<extract ; ?J$J

diB?J$J$ o ?$oceBBo o J?enJB e?JcotJ$W oB J$KioB e J$Kio (CA+(

A eBco!@J do idioJ ?ode Be$ eBco!@ido nJ co#o#o(

))4

Pe$iteeBco!@e$ oJ$Kio I79eiBtente(

Page 114: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 114/139

C!iKe e @vançar (

 NeBtJ Jne!J" ?odeoB ei#i$ J cJiJ de di!oo :ti?o MeBBJeD!; no incio do ?$oceBBo ?J$J Ke oB$io ?oBBJ J#JndonJ$ o ?$oBBei$(

A cJiJ de #e indoW ?Jd$ão do BotXJ$e J o?Qão Ke ?ode Be$ cBtoiJdJ Jt$JB de J$Kio do ti?o (RTF)4

A o?Qão DiB?!J] !icence tJ# ?e$ite J inc!Bão de J$Kio de etenBão RTF(

A Ben@J :PJBBXo$d; ?ode Be$ deinidJ neBtJ Jne!J( EBtJ Ben@J J?enJB ?J$J Jto$iJ$ o ?$oceBBo dedeBco?JctJQão e inBtJ!JQão(

)4 Ric@ Tet Fi!e 8 PJd$ão Ke ?e$ite o$JtoB :ne$ito" it!ico"ont" etc(((; e J$Kio $JJdo coo ASCII

))5

Page 115: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 115/139

C!iKe e @vançar. A ?$ZiJ Jne!J J dJB ?$inci?JiB ?J$J entende$oB J Jci!idJde JdicionJ!deBte ?$o$JJ co $e!JQão J ot$o ?$oceBBo de co?JctJQão(

A?ZB J deBco?JctJQão" o InBtJ!!S@ie!d Ji diB?J$J$ o ?$oceBBo de inBtJ!JQão Jt$JB do J$KioSETUP(E6E c$iJdo no InBtJ!!S@ie!d E?$eBB" e J?ZB J inBtJ!JQão oB J$KioB deBco?JctJdoB:te?o$$ioB; dee Be$ de!etJdoB( C!icJ$ e @vançar.

0 J noJ tecno!oiJ de JBBinJt$J diitJ! Ke ?ode Be$ o#tidJ iJ Inte$net( Não JoB J#o$dJ$ eBteite( C!iKe e @vançar.

))'

Page 116: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 116/139

 NeBtJ Jne!J JoB deini$ o noe do ?$oeto( EBte noe Be$ BJdo ?J$J o J$Kio de ?$oeto :PF7; eo J$Kio eecte! sel<extract  :E6E;(

O di$etZ$io ?J$J J e$JQão deBteB J$KioB ?ode Be$ deinido ?e!oB coneB de ?JBtJB( NeBte ee?!o" c$ieJ B#?JBtJ UnicoW J#Jio dJ ?JBtJ InBtJ!J$(C!iKe e @vançar.

EBtJ J Jne!J ?J$J cone$i$ JB o?QeB Ke o$J deinidJB Jnte$io$ente(

C!iKe e @vançar.

))*

Pode3Be deini$J ?JBtJeB?ecicJ(

Page 117: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 117/139

O ?$oceBBo Ji conBt$i$ o J$Kio sel<extract  e o J$Kio de ?$oeto :PF7;( C!iKe no BinJ! de Y cJBoKei$J e$iicJ$ oB J$KioB Je ?J$te do eecte!(

C!iKe e Concluir. 

PJ$J cone$i$ o $eB!tJdo J#$J o ?$o$JJ 7indoXB E?!o$e$ e J#$J J ?JBtJ onde o$J e$JdoB oBJ$KioB(

PodeoB eniJ$ J?enJB J$Kio :E?$eBJ(ee; ?J$J $eJ!iJ$ o ?$oceBBo de inBtJ!JQão de Jnei$JJiB Bi?!eB ?oBBe!(

)),

Page 118: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 118/139

TRANSAÇÕES

T$JnBJQeB $ec$Bo ito ti!iJdo e J?!icJQeB clientDserver ( NoBBo enoKe Be$ int$odtZ$io"no Bentido de deB?e$tJ$ oc coo deBeno!edo$" J ti!iJ$ eBtJ tecno!oiJ nJ conBt$Qão de J?!icJQeB$o#BtJB(

A t$JnBJQão J deiniQão Ke J#o$dJ o Beinte JB?ectoH U ?$oceBBo iniciJdo co J t$JnBJQãodee o#$iJto$iJente te$inJ$" co o Be BceBBo( EBte ?$oceBBo ?ode Be$ connto $otinJB KeBZ te$ão J!o$ Be eectJdJB e BeKnciJ(

O conceito #Bico ?ode Be$ i!BtJdo coo J Bei$H

CJBo J!J $otinJ ten@J J! ?$o#!eJ o JconteQJ i?$eiBto coo KedJ de ene$iJ" Jt$JnBJQão não Be$ te$inJdJ(E #JncoB de dJdoB Ke i?!eentJ eBte ti?o de Be$JnQJ )5" JBBi Ke o ic$o !iJdo e o #Jnco J#e$to" Jt$JB do J$Kio de LOG J t$JnBJQão não inJ!iJdJ te$ Ke o!tJ$ Jt$BW nJ BitJQão Jnte$io$ Jo incio" Jntendo o #Jnco de dJdoB conBiBtente(

VJoB ti!iJ$ eBte conceito no De!?@i Jt$JB tJ#e!JB ?J$Jdo !e#$Jndo Ke ne todoB oB $ec$BoBdJ t$JnBJQão :coo J$Kio de LOG; Bão i?!eentJdoB ?e!o #Jnco(

DELPHI 3 TRANSAÇÕES

OB coJndoB ?J$J i?!eentJ$ J t$JnBJQão Bão todoB do -/ D</<<( EBte co?onente$e?$eBentJ o #Jnco de dJdoB" sendo Hnico na aplicação(TodJB JB tJ#e!JB dee Be conectJ$ Jo DJtJ+JBe(

 6todo De,ini!"o

StJ$tT$JnBJction Deine o incio dJ t$JnBJQão(Ro!!+Jc Deine o t$ino Be BceBBo dJ t$JnBJQão(Coit Deine o t$ino co BceBBo dJ t$JnBJQão(

)5 S<L3Se$e$" O$Jc!e e Inte$#JBe Bão ee?!oB de #JncoB de dJdoB c!ienteBe$ido$(

))-

Início da

transação

Rotina1 Rotina2 Rotina3 Fim da

transação

P$oceBBo

SeBBion   D</<< DJtJSet DJtJSo$ce DJtJ3AXJ$e

Page 119: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 119/139

Inicie J noJ J?!icJQão(

G$Je o ?$oeto e J ?JBtJ c@JJdJ T<7

 #ome atual #ovo nome

Unit) UF$T$JnB

P$oect) T$JnBJcJo

E#o$J não BeJ o#$iJtZ$io :JindJ JiB neBte ee?!o co J tJ#e!J;" JoB inBe$i$ o$!$ioDJtJMod!e" Jt$JB do coJndo !? B N=... "D</< M:?#

 #ome atual #ovo nome

Unit) UD

 No DJtJMod!e" inBi$J oB co?onenteB DJtJ+JBe" TJ#!e e DJtJSo$ce(

VJoB ti!iJ$ JB tJ#e!JB c$iJdJB no ?$oeto e?$eBJ" #e coo Be ALIAS(

Coni$e o co?onente DJtJ+JBe nJB ?$o?$iedJdeB indicJdJBH

  ob#ect !atabae: T!atabae  /lia9ame = ,&mprea,  !atabae9ame = ,Banco&mprea,  Seion9ame = ,!eKault,  Tran0olation = ti!irt52ead  end 

OndeH Propriedade De,ini!"o

A!iJBNJe Deine o noe do ALIAS no +DE(DJtJ#JBeNJe Deine noe ?J$J o ALIAS dJ J?!icJQão(SeBBionNJe Deine o noe dJ SeBBãoW ti!iJdJ ?J$J JceBBo Jo #Jnco(T$JnBIBo!Jtion Deine o ne! de iBo!Jento B?o$tJdo ?e!o #Jnco de dJdoB(

Coni$e oB co?onenteB TJ#!e e DJtJSo$ceH

  ob#ect !Setor: T!ataSource  !ataSet = TbSetor  end 

  ob#ect TbSetor: TTable

  /cti7e = True  !atabae9ame = ,Banco&mprea,  Table9ame = ,Setor.!B,  end 

O DJtJMod!e ?e$ite coni$J$ J @ie$J$KiJ doB co?onenteB Jt$JB dJ $o$e de iteB do !JdoeBKe$do dJ Jne!J(

))/

Page 120: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 120/139

 Note Ke o co?onente TJ#!e Ji JceBBJ$ o #Jnco Jt$JB do ALIAS :inte$no; &ancoEmpresa(

C$ie oB cJ?oB ?e$BiBtenteB co d?!o c!iKe no co?onente TJ#!e(A$$JBte3oB ?J$J o o$!$io F$T$JnB e c$ie J inte$Jce #BicJ co oB co?onenteB :+ttonB"D+NJiJto$; iBtoB Jnte$io$ente(

O cZdio onte co J i?!eentJQão de t$JnBJQeB eBt deBc$ito J Bei$H

unit +FrmTran;

{ inter&ace n8o &oi im4re''a}

implementation

uses +!m;

{$R *.DFM}

 procedure TFrmTran.BbtSairClick(Sender: TObject); begin

  FrmTran.Cloe;end;

 procedure TFrmTran.TrataBotoe; begin

  Bbt0nerir.&nabled := not Bbt0nerir.&nabled;  Bbt&ditar.&nabled := not Bbt&ditar.&nabled;

)%&

Page 121: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 121/139

  Bbt2emo7er.&nabled := not Bbt2emo7er.&nabled;  BbtCancelar.&nabled := not BbtCancelar.&nabled;  BbtConKirmar.&nabled := not BbtConKirmar.&nabled;  BbtSair.&nabled := not BbtSair.&nabled;  !b9a7i%ator1.&nabled := not !b9a7i%ator1.&nabled;end;

 procedure TFrmTran.FormCloeUuer5(Sender: TObject;

  var CanCloe: Boolean); begin

  if !m.TbSetor.State in Ld&dit* d0nertM then  if 4ea%e!D6(,&'item dado pendente*,1I,deeja %ra78lo,*  mtConKirmation* LmbAe*mb9oM* >) = mrAe then  CanCloe := Fale  else

   begin

  !m.TbSetor.Cancel;  !m.!atabae.2ollback;  TrataBotoe;  CanCloe := True;  end;end;

 procedure TFrmTran.Bbt0nerirClick(Sender: TObject);7ar ro'9um: 0nte%er;

 begin

  !m.TbSetor.Dat;  ro'9um := !m.TbSetor.FieldB59ame(,SetCodi%o,)./0nte%er 1;  !m.!atabae.StartTranaction;  !m.TbSetor./ppend;  !m.TbSetor.FieldB59ame(,SetCodi%o,)./0nte%er := ro'9um;  !b&dit<.SetFocu;  TrataBotoe;end;

 procedure TFrmTran.Bbt&ditarClick(Sender: TObject); begin

  !m.!atabae.StartTranaction;  !m.TbSetor.&dit;  TrataBotoe;end;

 procedure TFrmTran.Bbt2emo7erClick(Sender: TObject); begin

  if !m.TbSetor.2ecordCount = > then

  S"o$4ea%e(,Tabela 7aiaX,)  else if 4ea%e!D6(,Tem certea Yue deeja remo7er o etor: ,1I  !m.TbSetor.FieldB59ame(,Set9ome,)./Strin% , ,*

  mtConKirmation* LmbAe* mb9oM* >) = mrAe then  !m.TbSetor.!elete;end;

 procedure TFrmTran.BbtCancelarClick(Sender: TObject); begin

  !m.TbSetor.Cancel;  !m.!atabae.2ollback;  TrataBotoe;

)%)

Page 122: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 122/139

end;

 procedure TFrmTran.BbtConKirmarClick(Sender: TObject); begin

  !m.TbSetor.ot;  !m.!atabae.Commit;  TrataBotoe;end;

end&

DELPHI 3 S1L

S<L J !inJe dJ eBJ o$J Ke O#ect PJBcJ!" +JBic o CYY" J $Jnde die$enQJ KeS<L o!tJdJ totJ!ente ?J$J o +Jnco de DJdoB inde?endente do F$ont End :De!?@i" V+ o CYY+i!de$;( O#iJente" BeB JB?ectoB e ?J$tic!J$idJdeB dee Be$ eBtdJdoB e c$Bo ?J$te( NoBBo o#etio JKi te$ entendiento de coo o De!?@i ?ode Jni?!J$ o cZdio S<L(

At$JB do S<L ?oBBe! Jni?!J$oB die$enteB #JncoB de dJdoB :O$Jc!e" S<L3Se$e$" D+%;ti!iJndo J `nicJ !inJe e não neceBBitJndo de J?$ende$ todos9' oB coJndoB Jo dJ$ de #Jnco de dJdoB(

U doB $ec$BoB JiB ti!iJdoB dJ !inJe o coJndo SELECT" BJ ti!iJQão o#edece JeBt$t$J deinidJ coo J#JioH

S&D&CT L!0ST09CTM G ` columnQlitF2O4 tableQreKerenceL3N&2& predicateMLO2!&2 BA orderQlitM

L62O+ BA %roupQlitMLN/096 "a7in%QconditionM

OB iteB deinidoB ent$e kl Bão o?cionJiB(

Ee?!oH

S&D&CT GF2O4 emplo5ee3N&2& Nire!ate ‘>1H>1H1EE>#O2!&2 BA Nire!ate

Selecione todo o campo!a tabela emplo5eeOnde a data W menor do Yue >1H>1H1EE>Ordenada pelo campo data

S&D&CT &mp9o*Firt9ame* Dat9ameF2O4 emplo5ee3N&2& (Nire!ate ‘>1H>1H1EE>#)/9! (Salar5 J>>>>)O2!&2 BA Firt9ame

Selecione omente o I campo!a tabela emplo5eeOnde a data W menor do Yue >1H>1H1EE>& o alrio W maior do Yue J>>>>Ordenada pelo campo Firt9ame

AB c!B!JB G$o? +] e 0Jin não Be$ão J#o$dJdJB( E!JB Bão ti!iJdJB ?J$J eBtJ#e!ece$ $?oB eJ$eJQão(

)' E cJdJ #Jnco de dJdoB @ J etenBão do S<L ?J$J Jni?!J$ $ec$BoB eB?ecicoB(

)%%

Page 123: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 123/139

O De!?@i ?e$ite J Jni?!JQão de coJndoB e S<L Jt$JB de co?onente  =ata:et  c@JJdo?uerB. VJoB ee?!iicJ$ J J?!icJQão ti!iJndo conB!tJB)* e S<L(

SJ!e noo ?$oeto dent$o de J ?JBtJ co o noe de S<L(

Unit) UF$E?$eJdoBS<LP$oect) E?$eJdoS<L

Cono$e J i$J J Bei$" inBi$J oB co?onenteB neceBB$ioB(

O#Be$e Ke oB co?onenteB ti!iJdoB :eceQão 3 D+G$id; 70  Bão co?onenteB data<aGare  :PJ!etJ3DJtJ Cont$o!B; ?o$Ke não eBtJoB inBe$indo o editJndo oB dJdoB" JB ?JBBJndo parSmetros ?J$J J conB!tJ(

 

O co?onente T<e$] ?ode Be$ coni$Jdo coo J Bei$H

  ob#ect Ur&mp: TUuer5  !atabae9ame = ,!B!&4OS,  SUD.Strin% =

S&D&CT G  F2O4 emplo5ee  /cti7e = True  9ame = Ur&mp  end 

O co?onente DJtJSo$ce ?ode Be$ coni$Jdo coo J Bei$H

  ob#ect !&mp: T!ataSource  /uto&dit = Fale

)* Sinqnio de ?eBKiBJ(

)%4

D+G$id

MJBEdit

T<e$]

Page 124: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 124/139

  !ataSet = Ur&mp  9ame = !&mp  end 

OB co?onenteB +ttonB dee te$ BJ ?$o?$iedJde NJe de Jco$do co J o$ientJQão nJ i$JJnte$io$(

?uerB < 8ropriedadesActie Deine Be o dJtJBet eBt Jtio(DJtJ#JBeNJe Deine o J!iJB o ?Jt@ io ?J$J o #Jnco de dJdoB(S<L Deine J Bt$in S<L(

?uerB < -AtodosC!oBe Fec@J o dJtJBet(EecS<L EectJ o cZdio S<L deinido nJ ?$o?$iedJde S<L Be $eto$nJ$

c$Bo$( Uti!iJdo e INSERT" UPDATE" DELETE" e CREATE TA+LE(O?en EectJ o cZdio S<L deinido nJ ?$o?$iedJde S<L co $eto$no de

c$Bo$(

S<L(Add AdicionJ J Bt$in ?$o?$iedJde S<L(S<L(C!eJ$ Li?J J !iBtJ :TSt$inB; dJ ?$o?$iedJde S<L(

A?ZB deinido J diB?oBiQão doB co?onenteB deinJ oB cZdioB ?J$J cJdJ eento dJ nit coo J Bei$H

unit +Frm&mpre%adoSUD;interfaceuses

  3indo$* 4ea%e* S5+til* Clae* 6rap"ic* Control* Form* !ialo%*  StdCtrl* 6rid* !B6rid* !b* !BTable* 4ak* &'tCtrl* /pp&7nt;

type

  TFrm&mpre%adoSUD = cla(TForm)  !&mp: T!ataSource;  Ur&mp: TUuer5;  !B6rid1: T!B6rid;  6roupBo'1: T6roupBo';  &dit1: T&dit;  BtneYuiaCodi%o: TButton;  &dit<: T&dit;  BbteYuia9ome: TButton;  6roupBo'<: T6roupBo';  4ak&dit1: T4ak&dit;  Bbt4otraTodo: TButton;  BbteYuia!ata: TButton;  2adio6roup1: T2adio6roup;

  anel1: Tanel;   procedure BtneYuiaCodi%oClick(Sender: TObject);   procedure BbteYuia9omeClick(Sender: TObject);   procedure Bbt4otraTodoClick(Sender: TObject);   procedure BbteYuia!ataClick(Sender: TObject);   procedure &dit1e5re(Sender: TObject; 7ar e5: C"ar);  private  { 5riate declaration' }

  public  { 5ublic declaration' }

  end;

)%5

Page 125: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 125/139

var

  Frm&mpre%adoSUD: TFrm&mpre%adoSUD;

implementation

{$R *.DFM}

 procedure TFrm&mpre%adoSUD.BbteYuiaCodi%oClick(Sender: TObject);

 begin  if &dit1.Te't ,, then

  begin  Ur&mp.Cloe;  Ur&mp.SUD.Clear;  Ur&mp.SUD./dd(,S&D&CT G F2O4 emplo5ee,);  Ur&mp.SUD./dd(,3N&2& &mp9o = :Codi%o,);  Ur&mp.aramB59ame(,Codi%o,)./0nte%er := StrTo0nt(&dit1.Te't);  Ur&mp.Open;  end;end;

A ?JBBJe de ?J$\et$oB ?J$J o cZdio e S<L Be$ deinido Jt$JB do cJ$Jcte$ :

 procedure TFrm&mpre%adoSUD.&dit1e5re(Sender: TObject; 7ar e5: C"ar); begin  if ((e5 in L,>,..,E,M = Fale) and  (3ord(e5) QB/C)) then

  e5 := >;end;

 procedure TFrm&mpre%adoSUD.BbteYuia9omeClick(Sender: TObject); begin  if &dit<.Te't ,, then

  begin  Ur&mp.Cloe;  Ur&mp.SUD.Clear;  Ur&mp.SUD./dd(,S&D&CT &mp9o*Firt9ame*Dat9ame*Salar5 F2O4 emplo5ee,);  Ur&mp.SUD./dd(,3N&2& +&2(Firt9ame) D0& :9ome,);  Ur&mp.aramB59ame(,9ome,)./Strin% := +pperCae(&dit<.Te't) ,,;  Ur&mp.Open;  end;end;

 procedure TFrm&mpre%adoSUD.Bbt4otraTodoClick(Sender: TObject); begin

  Ur&mp.Cloe;  Ur&mp.SUD.Clear;  Ur&mp.SUD./dd(,S&D&CT G F2O4 emplo5ee,);  Ur&mp.Open;

end;

 procedure TFrm&mpre%adoSUD.BbteYuia!ataClick(Sender: TObject); begin

  Ur&mp.Cloe;  Ur&mp.SUD.Clear;  Ur&mp.SUD./dd(,S&D&CT Firt9ame* Dat9ame* Nire!ate F2O4 emplo5ee,);  case 2adio6roup1.0tem0nde' of

  >: Ur&mp.SUD./dd(,3N&2& Nire!ate :!ata,);

)%'

Page 126: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 126/139

  1: Ur&mp.SUD./dd(,3N&2& Nire!ate :!ata,);  <: Ur&mp.SUD./dd(,3N&2& Nire!ate = :!ata,);  end;//ca'e  try

  Ur&mp.aramB59ame(,!ata,)./!ate := StrTo!ate(4ak&dit1.Te't);  Ur&mp.Open;  e'cept  S"o$4ea%e(,!ado in7lidoX,);

  end;//bloco tr end;

end&

T0CNICAS DE INTERFACE

SPLASH SCREEN

AB te!JB de J?$eBentJQão :S?!JB@ Sc$een; Bão ito ti!iJdJB e die$BoB ?$o$JJB do XindoXB"ee?!o De!?@i" 7o$d" Ece!" etc((( É J Jne!J de ?$o?JJndJ Ke iBtJ no inicio" d$Jnte o

carre4amento doB $ec$BoB dJKe!e ?$o$JJ ?J$J J eZ$iJ ?$inci?J!( VJoB c$iJ$ J te!J deent$JdJ ?J$J deonBt$J$ eBte $ec$BoH

C$ie J noJ J?!icJQão e $Je oB J$KioB co oB noeBH ata 8 Spla"

+nit1 V +Frmrincipal

roject V Spla"

A ?$o?$iedJde NJe do o$!$io dee te$ o eBo noe dJ Unit Be J !et$J UW(

C$ie ot$o o$!$io :!? B N= !; e $Je3o co o noe +FrmSe%undo (

C$ie Jo$J" te$cei$o o$!$io e $Je3o co o noe +FrmSpla"  ( ModiiKe JB BeinteB ?$o?$iedJdeB deBte o$!$ioH

ob#ect FrmSpla": TFrmSpla"  BorderSt5le = b9one  Caption = ,FrmSpla",  ClientNei%"t = <I>  Client3idt" = <J  Color = clBtnFace  oition = poScreenCenterend;

Dent$o deBte o$!$io inBi$J co?onente iJe e odiiKe BJB ?$o?$iedJdeBH

ob#ect 0ma%e1: T0ma%e  /li%n = alClient  icture = {in'ira uma &i=ura a 'eu =o'to}

end;

Pode3Be inBe$i$ co?onenteB LJ#e!WB ?o$ ciJ do co?onente IJe" #JBtJ JBtJ$ J ?$o?$iedJdeTranparent ?J$J t$e(

)%*

Page 127: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 127/139

 NotJ3Be Ke J?eBJ$ do o$!$io F$S?!JB@ Be$ ei#ido JnteB do o$!$io ?$inci?J! e!e ?odeBe$ c$iJdo J KJ!Ke$ oento" Jt$JB dJ J!te$JQão nJ i?!eentJQão de cZdio J Bei$(

Ao$J" c!iKe no Men P/ B O/7 e nJ !iBtJ  @uto<Create  o$B Be!ecione o o$!$ioF$S?!JB@( At$JB do cone ( W de o o$!$io ?J$J J !iBtJ @vailable orms(

Todo o$!$io c$iJdo ?e!o ?Jd$ão do De!?@i cJ$$eJdo ?J$J J eZ$iJ no oento dJeecQão do ?$o$JJ" Bendo deinidJ J o$de Jt$JB dJ !iBtJ @uto<Create( IBBo não Ke$ die$ Ke oB o$!$io dee Be$ c@JJdoB neBtJ o$de" JB Ke todos oB o$!$ioB$ee$enciJdoB e  @uto<Create Be$ão criados nJ eZ$iJ ?$inci?J! JtoJticJente e todoBKe eBtão nJ !iBtJ  @vailable orms eBtJ$ão dispon;veis  ?J$J Be$e cJ$$eJdoB e nooento deinido ?e!o B$io(

Coni$e J Jne!J e c!iKe no Men P/ V= S:(

A iJ do J$Kio de ?$oeto :DPR; dee$ Be$ ei#idJ no Code Edito$(

VJoB J!te$J$ o cZdio do J$Kio DPR ?J$J J Beinte diB?oBiQãoH:Não neceBB$io diitJ$ oB coent$ioB(;

 program Spla";

uses  Form* 3indo$*  +Frmrincipal in ,+Frmrincipal.pa, {Frm5rinci4al}*  +FrmSe%undo in ,+FrmSe%undo.pa, {FrmSe=undo}*

)%,

Page 128: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 128/139

  +FrmSpla" in ,+FrmSpla".pa, {FrmS4la'h};

{$R *.RES}

 begin  /pplication.0nitialie;  {Cria o &ormulario atrae' do metodo da 4ro4ria cla''e}

  FrmSpla" := TFrmSpla".Create(/pplication);

  //E:ibe o &ormulario  FrmSpla".S"o$;  {tuali>a o &orm 4ara e:ibir o' com4onente' in'erido'+ ma=e< abel'< etc}

  FrmSpla".2eKre";

  /pplication.CreateForm(TFrmrincipal* Frmrincipal);  /pplication.CreateForm(TFrmSe%undo* FrmSe%undo);

  {Ca'o ueira e:ibir o &ormulario 4or um tem4o minimo

  4ode9'e u'ar a &un78o Slee4 ue con=ela o 'i'tema

  4or um determinado tem4o men'urado em mili'e=undo'.

  cre'centar a biblioteca indoB' na clau'ula GSES}

  Sleep(<>>>);  {ibera a memoria de'truindo o &ormulario de '4la'h}

  FrmSpla".Free;  {Di'4onibili>a a a4lica78o 4ara a intera78o com o u'uario}

  /pplication.2un;end&

Co eBBe $Jciocnio" o o$!$io S?!JB@ Be$ ei#ido iniciJ!ente ?o$ não Be$ o  -ain !orm:o$!$io ?$inci?J!; dJ J?!icJQão" Bendo deBt$do J?ZB oB o$!$ioB Be$e cJ$$eJdoB ?J$J JeZ$iJ(

CRIANDO E DESTRUINDO FORMS

Coo oi iBto neBte ee?!o Jnte$io$" oB o$!$io Bão" ?o$ ?Jd$ão" Jto3c$iJdoB ?e!o De!?@i( IBBo ?ode t$Je$ J!nB incoenienteB e ?$oetoB Jio$eB" iJine o De!?@i Jo iniciJ$ o J$Kio eecte!tentJ$ cJ$$eJ$ '&W o$!$ioB ?J$J J eZ$iJ ?$inci?J!(((

O ?$iei$o ?JBBo ti$J$ o o$!$io dJ !iBtJ  @uto<Create e ?JBBJ3!o ?J$J J !iBtJ @vailable orms Jt$JBdo en P/ B O/7(

De?oiB deeoB deini$ o cZdio de c@JJdJ do o$ e de !i#e$JQão de eZ$iJ do o$ c@JJdo(

S?ondo o Beinte ee?!oH DoiB o$!$ioBH c@JJdo UF$P$inci?J! e ot$o UF$Sendo"Bendo Ke o ?$inci?J! J J c@JJdJ Jo o$ Becnd$io Jt$JB de #tton" o cZdio Be$iJ oBeinteH

 procedure TFrmrincipal.Button1Click(Sender: TObject); begin  FrmSe%undo := TFrmSe%undo.Create(/pplication);  FrmSe%undo.S"o$4odal;//ou atra0' do m0todo ShoB end;

)%-

Page 129: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 129/139

 No o$!$io c@JJdo :F$Sendo; dee$ Be$ c$iJdo cZdio ?J$J !i#e$J$ J eZ$iJ >uandoeBte o$ ec@Jdo(

 procedure TFrmSe%undo.FormCloe(Sender: TObject; 7ar /ction: TCloe/ction); begin

  /ction := caFree;

end;

A J$ie! Action deine KJ! J JQão o o$!$io dee toJ$ Jo Be$ ec@Jdo( O deault   ?J$Jo$!$ioB SDI o J!o$ cJ0ide" o BeJ" o o$!$io J?enJB oc!to ?e$Jnecendo nJ eZ$iJ ?$inci?J!" dJoB eBte co?o$tJento Jt$JB do J!o$ cJF$ee(UJ ot$J tcnicJ ?J$J o eBo o#etio Be$iJ deini$ J !i#e$JQão de eZ$iJ e #!oco t$] coo JBei$H

 procedure TFrmrincipal.Button1Click(Sender: TObject); begin

  FrmSe%undo := TFrmSe%undo.Create(/pplication);  try

  FrmSe%undo.S"o$4odal;  finally

  FrmSe%undo.Free;  end;//do bloco &inall end;

EBte cZdio JciJ BZ ncionJ co o$!$ioB ModJiB" ?oiB o todo S@oX ?e$ite J eecQão dJB ?$ZiJB !in@JB de cZdio J?ZB J BJ c@JJdJ" t$Jendo eeito indeBeJdo neBte ee?!o(

MANIPULANDO CURSORES

É J tcnicJ co no BiBteJ o?e$JcionJ! XindoXB dJ$ o c$Bo$ de?endendo dJ JQão do B$ioe dJ $otinJ J Be$ eectJdJ( <Jndo J $otinJ ?JBBe! de deo$J" neceBB$io t$ocJ$ o c$Bo$ ?J$J oB#o!o de J?!@etJ" ?J$J Ke o B$io não c!iKe noJente nJ c@JJdJ dJ $otinJ o ?enBe Ke JKinJ eBt t$JJdJ" ?o$ ee?!o(

0 no De!?@i o#eto c@JJdo Screen. EBte o#eto cont$o!J oB c$Bo$eB e c$iJdo JtoJticJente ?e!o De!?@i" o deBeno!edo$ não ?$eciBJ c$iJ3!o e?!icitJente(OB c$Bo$eB Bão Bão dec!J$JdoB coo do ti?o TC$Bo$ e ?ode Be$ Jni?!JdoB coo o ee?!o Bei$H

 procedure TFrmrincipal.Button<Click(Sender: TObject);var Curor/nterior : TCuror;

 begin  Curor/nterior := Sceen.Curor;  Screen.Curor := crNour6la;  try  2otina.!emorada;  finally

  Screen.Curor := Curor/nterior;  end;//do bloco &inall end;

)%/

Page 130: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 130/139

O #!oco t$]((inJ!!] oi ti!iJdo ?J$J J$Jnti$ Ke Be J! cZdio "errado ou não$  o$ eectJdodent$o do #!oco t$]" o c$Bo$ dee o!tJ$ Jo B#o!o Jnte$io$ Jo B#o!o dJ J?!@etJ :crNour6la ;Ke oi J$dJdoW nJ J$ie! Curor/nterior(

TOOLBARA Too!#J$ o$nece J #J$$J de e$$JentJB co #oteB ?$Z?$ioB e $ec$BoB ?e$BonJ!iJdoB( OB #oteBinBe$idoB nJ Too!#J$ Bão do ti?o TToo!+tton" conBide$JdoB o#etoB inte$noB dJ Too!#J$(VJoB ee?!iicJ$ BJ ti!iJQão Jt$JB de ee?!oH

C$ie J noJ J?!icJQão e $Je oB J$KioB co oB noeBH

ata 8 Toolbar

+nit1 V +FrmToolBar

roject V Toolbar

OB co?onenteB inBe$idoB Be$ãoH

 

O co?onente Too!#J$ J!in@J3Be JtoJticJente nJ ?J$te B?e$io$ do o$!$io dJ eBJ Jnei$JKe J #J$$J de StJtB J!in@J3Be nJ ?J$te ine$io$(O co?onente IJe ?ode te$ J ?$o?$iedJde /li%n deinidJ coo alClient e J ?$o?$iedJde Center

coo True(

PJ$J inBe$i$ #oteB nJ #J$$J Too!#J$" c!iKe co o #otão di$eito nJ #J$$J e eBco!@J NeX +tton" ?J$J inBe$i$ Be?J$Jdo$ de #oteB eBco!@J NeX Se?J$Jto$(

InBi$J 4 #oteB e Be?J$Jdo$eB coo no ee?!o J Bei$(

)4&

Too!#J$ 

StJtB+J$ 

IJe

Page 131: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 131/139

PJ$J o o#eto IJeLiBt) deinJ t$B i$JB cinJBW c!icJndo e Add((( coo J#JioHAB i$JB ?ode Be$ 8 Fi!eO?en(#?" Too!B(#?" Doo$B@t(#? 8 Encont$JdJB no di$etZ$io ?Jd$ão ),

de i$JB do De!?@i( PJ$J ec!i$ J i$J dJ !iBtJ" c!iKe e De!ete(

PJ$J o o#eto IJeLiBt% deinJ JB eBJB i$JB" ?o$ co!o$idJB(

PJ$J o o#eto Po?U?Men) deinJ doiB enB Jt$JB do conBt$to$H

Caption #ame

DiBto$ce$ Mn?DiBto$ce$   No$J! Mn?No$J!

PJ$J o o#eto Too!+J$ deinJ JB ?$o?$iedJdeBH

  ob#ect ToolBar1: TToolBar  ButtonNei%"t = <J  Button3idt" = <]  Flat = True  Not0ma%e = 0ma%eDit<  0ma%e = 0ma%eDit1  end;

), CHrA$KioB de P$o$JJBrA$KioB ConBr+o$!Jnd S@J$edrIJeBr+ttonB

)4)

Page 132: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 132/139

0ma%e deine JB i$JB Ke Be$ão Jt$i#dJB JoB #oteB nJ iBJ!iJQão iniciJ! do co?onente(Not0ma%e deine JB i$JB Ke Be$ão Jt$i#dJB JoB #oteB no oento e Ke o oBe ?JBBJWneBteB co?onenteB cJBo J ?$o?$iedJde Flat eBteJ !iJdJ" e$Jndo eeito Bee!@Jnte #J$$J deconeB do Inte$net E?!o$e$(

O Bendo #otão dJ Too!#J$ :Too!+tton%; dee te$ JB BJB ?$o?$iedJdeob#ect ToolButton<: TToolButton

  !ropdo$n4enu = opup4enu1  St5le = tb!rop!o$n  end 

DeinJ J ?$o?$iedJde 0int ?J$J oB t$B #oteB Bendo o $JciocnioH

O&'eto Finalidade int  

Too!+tton) A#$i$ J$Kio de iJe A#$e J$Kio de iJeToo!+tton% DiBto$ce$ o não J i$J Pe$ite diBto$ce$ J iJe

Too!+tton4 Fec@J$ o ?$o$JJ SJi$ do J?!icJtio

PJ$J J #J$$J de BtJtB deinJH

  ob#ect StatuBar1: TStatuBar  /utoNint = True  Simpleanel = True  end 

DeinJ oB Jni?!Jdo$eB de eentoB neceBB$ioB Bendo J nit J#JioH

unit +FrmToolbar;

{ inter&ace n8o &oi im4re''a}implementation

{$R *.DFM}

 procedure TFrmToolBar.ToolButton1Click(Sender: TObject); begin

  if Openicture!ialo%1.&'ecute then

  0ma%e1.icture.DoadFromFile(Openicture!ialo%1.File9ame);end;

 procedure TFrmToolBar.ToolButton]Click(Sender: TObject); begin

  FrmToolBar.Cloe;end;

 procedure TFrmToolBar.4np!itorcerClick(Sender: TObject); begin  0ma%e1.Stretc" := True;  4np!itorcer.C"ecked := True;  4np9ormal.C"ecked := Fale;end;

)4%

Page 133: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 133/139

 procedure TFrmToolBar.4np9ormalClick(Sender: TObject); begin

  0ma%e1.Stretc" := Fale;  4np9ormal.C"ecked := True;  4np!itorcer.C"ecked := Fale;end;

end&

APLICAÇÕES MDI

UJ inte$Jce MDI :M!ti?!e Docent Inte$Jce; ?oBBi#i!itJ J iBJ!iJQão de JiB de docentoo o#eto Bi!tJneJente(A?!icJQeB MDI Bão conBtitidJB e$J!ente de doiB o JiB o$!$ioBH o o$!$io ?$inci?J!:MDIo$; Ke e$J!ente conBtiti J Jne!J ?$inci?J! do ?$o$JJ e BeB i!@oB :MDIc@i!d;!ocJ!iJdoB dent$o de BJ $eJ de t$J#J!@o(

E J?!icJQeB MDI" oc e$J!ente ?$eciBJ oBt$J$ `!ti?!JB inBt\nciJB de c!JBBe de o$!$io(U o$!$io i!@o de MDI dee Be$ c$iJdo ?J$J Be$ ei#ido e dee Be$ destru;do ?J$J não JiB ei#3!o(

Co J noJ J?!icJQão JoB iniciJ$ J J?!icJQão MDI Ke ?oBBJ J#$i$ $ioB J$KioB de i$JBBe!ecionJdoB ?e!o B$io(

SJ!e o ?$oeto e J pasta c@JJdJ IJeMDI

 #ome atual #ovo nome

Unit) UF$PJiP$oect) IJeMDI

A!te$e JB ?$o?$iedJdeB do o$H

ob#ect Frmai: TFrmai  3idt" = ]]  Nei%"t = I>E  Caption = ,Frmai,  FormSt5le = K4!0Form  oition = poScreenCenterend 

InBi$J no o$!$io co?onente O?enPict$eDiJ!o e co?onente MJinMen

Cont$J oB BeinteB MenB Jt$JB do conBt$to$ do MJinMenH

Ca4tion !ame ShortCut

\/rYui7o 4nu/rYui7o\/brir 4nu/brir Ctrl/\Sair 4nuSair CtrlT

)44

Page 134: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 134/139

T$oKe J ?$o?$iedJde NJe do co?onente MJinMen ?J$J -nu8ai

SJ!e todo o ?$oeto( :AtJ!iJ$;

InBi$J JiB o$!$io e BJ!e3oH

 #ome atual #ovo nomeUnit) UF$Fi!@o

ModiiKe J Beinte ?$o?$iedJdeH

ob#ect FrmFil"o: TFrmFil"o  FormSt5le = K4!0C"ildend 

InBi$J co?onente IJe no o$!$io F$Fi!@o e odiiKe JB BeinteB ?$o?$iedJdeBH

  ob#ect 0ma%e1: T0ma%e

  /li%n = alClient  Center = True  end 

SJ!e todo o ?$oeto( :AtJ!iJ$;

Eecte J J?!icJQão e iBJ!ie o o$!$io F$Fi!@o Ke Be encont$J dent$o de F$PJi( Note Ke o$!$ioB i!@oB de MDI não te J o?Qão de eiBti$ :te$ Bido c$iJdo; e não Be$ ei#ido :oKe ?oBBe! ?J$J o$!$ioB conB;(

O deault  do J#iente De!?@i c$iJ$ JtoJticJente J inBt\nciJ de cJdJ  orm do ?$oeto( É ?o$ iBto Ke eiBte JB $ee$nciJB de c$iJQão no cZdio dent$o do J$Kio de ?$oeto :DPR;( M7:P/ B V= S:

 begin  /pplication.0nitialie;  /pplication.CreateForm(TFrmai* Frmai);  /pplication.CreateForm(TFrmFil"o* FrmFil"o);  /pplication.2un;end&

Coo deBeJoB Ke J J?!icJQão $ode iniciJ!ente Be nen@J Jne!J i!@J J#e$tJ" deeoB J!te$J$ eBte co?o$tJento( PJ$J Ke o o$!$io MDIFi!@o não BeJ c$iJdo JtoJticJente co o ?$oeto"deeoB eB?eciicJ$ no ?$oeto Ke o eBo não aauto<createb(

PJ$J iBBo #JBtJ BJ$ J o?Qão de en P/ B O/7 e J!te$J$ ?J$J F$Fi!@o e @valiable orms(Coo nJ i$J J Bei$(

DeBtJ Jnei$J" o Fo$ eBtJ$ diB?one!" ?o$ não Be$ c$iJdo JtoJticJente ?e!o ?$o$JJ(

A?ZB J coni$JQão" ?odeoB notJ$ Ke o cZdio no J$Kio de ?$oeto :DPR; tJ# oi J!te$Jdo(

)45

Page 135: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 135/139

A Jnei$J de c$iJ$oB o o$ F$IJe dee$ Be$ eitJ e te?o de eecQão Jt$JB de cZdioJendo J c@JJdJ Jo todo C$eJteFo$ do o#eto A??!icJtion(

E>? begin

  comando1;

  comando<;  /pplication.CreateForm(TFrmFil"o* FrmFil"o);end;

DeBtJ Jnei$J" deinJ o Beinte cZdio ?J$J o#eto MnA#$i$

 procedure TFrmai.4nu/brirClick(Sender: TObject); begin

  if Openicture!ialo%1.&'ecute then//abre a cai:a de dialo=o   begin

  /pplication.CreateForm(TFrmFil"o* FrmFil"o);  //carre=a a &i=ura 4ara o com4onente m=ma=em

  FrmFil"o.0ma%e1.icture.DoadFromFile(Openicture!ialo%1.File9ame);

  FrmFil"o.Caption := Openicture!ialo%1.File9ame;HHmuda o caption  end;end;

DeinJ o Beinte cZdio ?J$J MnSJi$ 

 procedure TFrm4ain.4nuSairClick(Sender: TObject); begin

  Frmai.Cloe;end;

)4'

Se!ecionJ3Be oo$ do !Jdo

eBKe$do eti!iJ3Be eBte

cone

Page 136: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 136/139

Eecte J J?!icJQão e tente ec@J$ JB Jne!JB i!@JB( É ?oBBe!h

Ao cont$$io de ot$oB ti?oB de o$B" o$ MDIC@i!d não ec@J JtoJticJente KJndoeectJoB Be todo C!oBe(Ent$etJnto no eento OnClose de KJ!Ke$ orm teoB ?J$\et$o A/7 Ke noB ?e$ite deini$ 

J JQão eB?eciicJH Action Comportamento

CJNone O o$ não ec@J$ 8 nen@J JQão Be$ toJdJ(CJ0ide O o$ J?enJB aeBcondidob" não Bendo JiB ei#ido 8 ?o$ JindJ

eiBti$ e eZ$iJ( EBte o co?o$tJento deault  de o$B conB(cJF$ee O o$ Be$ destru;do 8 e não Bi?!eBente eBcondido(cJMiniie O o$ Be$ iniiJdo" e não ec@Jdo( EBte o deault  ?J$J o$B i!@oB

de MDI(

PJ$J o$QJ$ MDIC@i!d J ec@J$ deeoB J!te$J$ o ?J$\et$o Action ?J$J cJF$ee e Be eento

OnC!oBe(

VJoB Jc$eBcentJ$ o Beinte cZdio no eento OnClose do o$ F$IJe

 procedure TFrmFil"o.FormCloe(Sender: TObject; 7ar /ction: TCloe/ction); begin

  /ction := CaFree;end;

:)%; VJoB JdicionJ$ doiB itenB de en Jo MnPJi coo no ee?!oH

0tem:

Caption #ame >hortCut  \Zanela 4nuZanela\&m Cacata 4nu&mCacata\Dado a Dado 4nuDadoaDado

 No eento OnClic/  do ite MnECJBcJtJ deini$ o cZdioH

 procedure TFrmai.4nu&mCacataClick(Sender: TObject); begin  Cacade;end;

 No eento OnClic/  do ite MnLJdoJLJdo deini$H

 procedure TFrmai.4nuDadoaDadoClick(Sender: TObject); begin  Tile;end;

Criando um lista das 'anelas a&ertas

)4*

Page 137: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 137/139

A!te$e J ?$o?$iedJde RindoG-enu do o$ F$PJi ?J$J Mn.Jne!JB(Co iBto J$eoB Ke J !iBtJ dJB Jne!JB i!@JB J#e$tJB iKe diB?one! Bo# o Men .Jne!JB doo$!$io F$PJi(

 esclando enus

Ot$o $ec$Bo inte$eBBJnte de J?!icJQeB MDI J ?oBBi#i!idJde de eBc!J$ oB enB dJ Jne!J i!@J:F$Fi!@o; co J Jne!J ?Ji :F$PJi;(

VJoB JdicionJ$ o#eto MJinMen no o$!$io F$Fi!@o" c@JJndo3o de MnFi!@o(

0tem:

Caption #ame\0ma%em 4nu0ma%em\/jutar a janela 4nu/jutar

PJ$J o eento OnClic/  de MnABtJ$ deini$H

 procedure TFrmFil"o.4nu/jutarClick(Sender: TObject); begin

  HHC"ecked motra um ,7, (marcador) para controle li%Hde.  4nu/jutar.C"ecked := not 4nu/jutar.C"ecked;  HHermite ditorcer a ima%em para ocupar todo o epaRo  0ma%e1.Stretc" := not 0ma%e1.Stretc";end;

 8orAm Be eectJ$oB J J?!icJQão JoB notJ$ Ke o Men dJ Jne!J i!@J Bo#$e?qB o Men dJ Jne!J ?Ji(

A ?oBiQão do Men dJB Jne!JB i!@JB e $e!JQão JoB dJ Jne!J MDI dete$inJdJ ?e!J ?$o?$iedJdeG$o?Inde de cJdJ (

Se deBeJoB Ke o Men MnFi!@o J?J$eQJ entre oB enB MnA$Kio e Mn.Jne!J :do o$!$ioF$PJi;" deeoB Jt$i#i$3!@eB J!o$eB ?J$J J ?$o?$iedJde G$o?Inde cono$e J#JioH

)4,

O#etoMJinMen coJ ?$o?$iedJde

 NJeH MnFi!@o

Cont$to$ doo#eto

MJinMenco oBo#etoB

MenIte

Page 138: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 138/139

 enu ;roupIndex 

MnA$Kio &MnIJe )Mn.Jne!JB %

 7eaproveitamento de c8digo

Pode3Be inBe$i$ J Too!+J$ no o$!$io F$PJi ?J$J Jci!itJ$ JindJ JiB J Jni?!JQão doJ?!icJtio ?e!o B$io(

Se nJ Too!+J$ oB #oteB te$ão oB eBoB coJndoB doB iteB de Men :A#$i" Fec@J$;" J BeBtão Ke nJ Too!+J$ BeJ $eJ?$oeitJdo o cZdio eBc$ito noB iteB de en dJ Beinte Jnei$JH

C$ie J Too!+J$" oB #oteB deBeJdoB e Be!ecione doB #oteB( NJ O#ect InB?ecto$ Be!ecione o eentoOnC!ic dJKe!e #otão e n"o d d?!o c!iKe" J#$J J cJiJ co#o do eento OnC!ic e eBco!@J  ?$ocediento ?$ontoH

)4-

O#etoBe!ecionJdo

PJ$Jreaproveitar

c8digo" J#$J JcJiJ co#odiB?one! noBeentoBdeBeJdoB(

MnA#$iC!ic eento c$iJdo Jt$JBdo o#eto MJinMen

Page 139: Apostila delphi 5

8/20/2019 Apostila delphi 5

http://slidepdf.com/reader/full/apostila-delphi-5 139/139

REFER2NCIA BIBLIOGR(FICA

DoinJndo o De!?@i ' aA +#!iJb 8 MJ$co CJntsMJ$on +ooB" %&&&

P$o$JJQão O$ientJdJ J O#etoB BJndo o De!?@i 4 8 FJiQJ! FJ$@Jt de CJ$J!@oEdito$J É$iJ

De!?@i5 C$Bo Co?!eto 8 MJ$ce!o LeãoAce! +ooB do +$JBi!

De!?@i5 SenJc 8 Adi!Bon ReBendeEdito$J SENAC +e!o 0o$ionte

4*' DicJB de De!?@i 8 +$no Sonnino

MJ$on +ooB