Anda di halaman 1dari 32

Delphi e Lgica de Programao para Iniciantes

por: Diego Garcia contato: drgarcia1986@gmail.com site: http: drgarcia1986.!ordpress.com

Delphi e Lgica de Programao para Iniciantes

Sumrio
Introduo ao Delphi............................................................................................................................3 O Que o Delphi.............................................................................................................................3 Criando um novo Pro eto............................................................................................................3 ID! " Des#top..............................................................................................................................3 Design.....................................................................................................................................3 Code........................................................................................................................................3 $tructure.................................................................................................................................3 O% ect Inspector.....................................................................................................................& Pro ect 'anager.....................................................................................................................& (ool Palette.............................................................................................................................& Ol) 'undo*.................................................................................................................................& Logica e Pascal.....................................................................................................................................& Premissas.........................................................................................................................................+ ,im de comando..........................................................................................................................+ -tri%uindo valores a vari)veis....................................................................................................+ Coment)rios................................................................................................................................+ .ari)veis " Constantes......................................................................................................................+ De/inio de escopo....................................................................................................................+ (ipos mais comuns......................................................................................................................0 Declarando vari)veis ..................................................................................................................0 Declarando constantes.................................................................................................................1 Declarando -rra2s.......................................................................................................................1 Operadores Lgicos.........................................................................................................................3 !strutura de decis4es...................................................................................................................3 I,"!L$!..................................................................................................................................3 Igual 567.......................................................................................................................................8 Di/erente 59:7...........................................................................................................................;< 'aior 5:7 " 'aior ou igual 5:67................................................................................................;; 'enor 597 " 'enor ou igual 5967..............................................................................................;; Ou 5or7.......................................................................................................................................;; ! 5and7.......................................................................................................................................;= >egao 5not7............................................................................................................................;3 Operadores 'atem)ticos ?)sicos..................................................................................................;& Preced@ncia...............................................................................................................................;& !AercBcios.......................................................................................................................................;+ !struturas de lao 5loop7................................................................................................................;+ Chile.........................................................................................................................................;+ ,or.............................................................................................................................................;0 Depeat........................................................................................................................................;1 ?rea# " Continue.......................................................................................................................;3 !AercBcios.......................................................................................................................................;3 ,un4es %)sicas..............................................................................................................................;8 ,un4es com strings .................................................................................................................;8 ,un4es com >Emeros..............................................................................................................;8 ,un4es com Data e Fora.........................................................................................................=< ,un4es de converso de tipo 5cast7..........................................................................................=< ;

Delphi e Lgica de Programao para Iniciantes !AercBcios..................................................................................................................................=; Componentes......................................................................................................................................=; Propriedades de componentes........................................................................................................=; !ventos dos componentes..............................................................................................................== Componentes ?)sicos....................................................................................................................== !AercBcios.......................................................................................................................................=3 ?anco de Dados..................................................................................................................................=3 Data'odule...................................................................................................................................=3 ?D!...............................................................................................................................................=& ((a%le.......................................................................................................................................=& -%rindo e /echando um ta%ela..............................................................................................=& Inserindo Degistros...............................................................................................................=& !ditando Degistros...............................................................................................................=+ -pagando registros...............................................................................................................=+ >avegao entre registros....................................................................................................=+ Procurando registros.............................................................................................................=+ Locate..............................................................................................................................=0 ,indGe2...........................................................................................................................=0 ,ind>eareast....................................................................................................................=1 (Quer2......................................................................................................................................=1 Carregando " !Aecutando uma Huer2...................................................................................=1 !AercBcios.......................................................................................................................................=3 Componentes DataControl.............................................................................................................=3 (Data$ource..............................................................................................................................=3 (D?Irid...................................................................................................................................=8 (D?!dit....................................................................................................................................=8 (D?(eAt....................................................................................................................................=8 !AercBcio........................................................................................................................................=8 >avegao..........................................................................................................................................=8 (a%Order........................................................................................................................................=8 .irtualGe2s....................................................................................................................................=8 Cdigo -$CII na navegao..........................................................................................................3< !AercBcio........................................................................................................................................3< ,ormul)rios.........................................................................................................................................3< $hoJ e $hoJ'odal.......................................................................................................................3; Criando /ormul)rios em tempo de eAecuo.................................................................................3; !AercBcios.......................................................................................................................................3;

Delphi e Lgica de Programao para Iniciantes

Introduo ao Delphi
O Que o Delphi
Kma /orma simples de de/inir o Delphi seria diLer Hue o Delphi uma /erramenta D-D 5em portugu@s Desenvolvimento Rpido de Aplicaes7 para desenvolvimento des#top em Object Pascal 5rami/icao da linguagem de programao PascalM grosseiramente de/inida como Pascal Orientado a Objetos7. Comearemos este estudo conhecendo um pouco da ID! 5em portugu@s Ambiente Integrado de Desenvolvimento7 do Delphi e criando nosso primeiro Hello World. !ntre as muitas vers4es do DelphiM iremos seguir nosso estudo utiliLando a verso Turbo Delphi por ser uma verso gratuita.

Criando um novo Projeto


Para o nosso primeiro Hello World iremos criar um /ormul)rio simples com um %oto Hue Huando /or clicado apresentar) a mensagem Fello Corld em um caiAa de mensagemM porem antesM iremos nos ha%ituar melhor a ID! do Turbo Delphi. .amos comear inserindo um novo pro eto emN File -> New -> VCL Forms Application elp!i For Win"#M isso /ar) com Hue um novo pro eto se a criado e um /ormul)rio vaLio aparea no centro da tela. Desta /orma aca%amos de iniciar um pro eto de um aplicao comumM poderBamos iniciar desta mesma /orma um pro eto de uma nova dllM uma unit com um con unto de /un4esM um pacote de um pro eto maior 5%pl7M etc. !sta )rea onde o /ormul)rio /oi criado chamada de DesignM entraremos em detalhes em %reveM vamos nos atentar agora as outras )reas da des#top do Delphi.

IDE / Desktop
Pelo /ato do Delphi ser uma /erramente D-D para desenvolver aplica4es visuaisM sua ID! /oi pro etada para /acilitar o acesso a todas propriedades e eventos do pro eto em desenvolvimento. O ID! composto por v)rias partes principaisM onde temosN
Design

!sta a )rea onde ser) /eita o design da inter/ace gr)/ica do pro eto. O aHui onde desenhados os /ormul)riosM onde so incluBdos componentes como %ot4esM caiAas de teAtoM etc. !st) )rea se encontra no centro da tela.
Code

!st) a )rea onde ser) /eita toda a codi/icao dos pro etos criados. (oda inteligencia da aplicao se encontra em sua codi/icao. !st) )rea se encontra unto com a )rea de Design podendo alternar entre uma o outro atravs de uma a%a na parte in/erior ou atr)s da tecla !".
Structure

!st) a )rea de estrutura do /ormul)rio. (odos componentes criados em um determinado /ormul)rio sero apresentados de /orma hier)rHuica nesta )reaM sendo HueM caso este amos na )rea 3

Delphi e Lgica de Programao para Iniciantes #ode a estrutura apresentada ser) a do cdigo do /ormul)rioM apresentando todos mtodos e vari)veis criadas. !st) )rea se encontra no canto superior esHuerdo.
O ject Inspector

!st) a )rea de propriedades e eventos de um componente selecionado na )rea de DesignM nesta )rea onde sero de/inidas todas as caracterBsticas de um componente do pro etoM desde o nome at o evento disparado no momento em Hue o componente rece%er um cliHue do mouse por eAemplo. !st) )rea se encontra no canto in/erior esHuerdo.
Project !anager

!sta a )rea de gerenciamento do pro etoM todos os /ormul)riosM unitsM datamodulesM etcM Hue /orem criadas para o pro eto correnteM estaro disponBveis nesta )reaM sendo possBvel criar um grupo de pro eto e /aLer o gerenciamento de mais de um pro eto por veL. !st) )rea se encontra no canto superior direito.
"ool Palette

!st) a )rea onde se encontro os componentes disponBveis para o desenvolvimento de uma aplicao. Os componentes disponBveis podem mudar de acordo com o tipo de unit ou a are) de visualiLao atual 5code ou design7. !sses componentes podem ser visuais ou noM como por eAemplo um %oto sendo um componente visual e uma Huer2 sendo um componente no visual. !st) )rea se encontra no canto in/erior direito.

Ol !undo#
-gora Hue ) nos ha%ituamos a ID! do DelphiM vamos desenvolver nosso primeiro Hello WorldM para isso vamos inserir em HualHuer parte do nosso /ormul)rio um componente T$utton Hue consiste em um %oto comum e vamos clicar duas veLes neste componenteM isto /ar) com Hue alterne da are) Design para a are) Code com o mtodo $utton!#lic% previamente implementado 5entraremos em detalhes posteriormente7. -gora digite a seguinte linha de cdigoN $!ow%essa&e'(Ol) %*ndo+(,!ste cdigo /ara com HueM Huando o %oto Hue inserimos no /ormul)rio /or clicadoM a aplicao ira eAecutar o mtodo $!ow%essa&e Hue consiste em mostrar uma caiAa de mensagem simples para o usu)rio. $alve este pro eto em C./C*rso/HelloWorld 5caso voc@ no possua esse diretrioM voc@ pode cri)Plo7 e cliHue em 0*n -> 0*n no menu principal 5ou simplesmente pressione a tecla &7M isto /ara com Hue o Delphi compile o pro etoM gerando seu arHuivo %in)rio e ) o eAecute.

$ogica e Pascal
- partir de agoraM iremos estudar a parte mais importante deste cursoM a parte de lgica de programao e /undamentos da linguagem pascal. - grande maioria de desenvolvedores de so/tJare espalhados pelo mundo concordam Hue %asta ter a lgica %em assimilada para Hue se a possBvel desenvolver so/tJares em HualHuer linguagemM isto por HueM a soluo do pro%lema sempre ser) a mesmaM o Hue muda sintaAe usada para chegar a essa soluo.

Delphi e Lgica de Programao para Iniciantes

Premissas
-ntes de comear a nos apro/undar no /ant)stico mundo do pascalM vamos nos atentar a algumas regras da linguagem.

%im de comando
$empre no /inal de cada comando necess)rio utiliLar o caractere ' 5ponto e virgula7 Varia1el .2 3 4#-

&tri uindo valores a variveis


-ssim como /oi demonstrado no eAemplo anteriorM para se atri%uir o valor a uma vari)velM %asta usar os caracteres (6 5dois pontos e igual7 . Varia1el .2 Valor-

Comentrios
Kma %oa pratica de programao o uso dos coment)rios para identi/icar certos trechos de cdigo Hue podem passar a ser compleAos para entender depois de um determinado tempo ou caso outra pessoa tenha a necessidade de dar manuteno neste cdigo. -s duas maneiras mais comuns de comentar um cdigo com o coment)rio simples de uma linha e o %loco de coment)rios.

Variveis / Constantes
De uma maneira simplesM vari)veis e constantes so regi4es de memria onde damos um nome e armaLenamos valores de determinados tiposM com a di/erena Hue as vari)veis podem ter seus valor alterado durante a eAecuo de um aplicativoM enHuanto Hue as constantes permanecem sempre com o mesmo valor com Hual /oram declaradas. !m um primeiro momento o uso de constantes pode parecer pouco EtilM poremM imagine uma aplicao Hue realiLe diversos c)lculos com uma taAa de impostos /iAaM no conhecendo o uso das constantesM o comportamento esperado seria HueM para cada calculo /eitoM /osse digitado o valor desta taAaM poremM imagine Hue um dia essa taAa possa mudarM terBamos Hue vascular o cdigo inteiro atr)s de ocorr@ncias da taAa antigaM correndo o risco de deiAar algum calculo passar.

De'inio de escopo
Quando diLemos escopo de *ma 1ari)1el estamos nos re/erindo ao alcance desta vari)velM ou at onde ela est) acessBvel. !m O% ect Pascal 5assim como na maioria das outras linguagens de programao7 uma vari)vel s pode ser acessada dentro do seu escopo. $e criarmos uma vari)vel dentro de uma /uno especi/icaM o escopo desta vari)vel limitaPse ao corpo desta /unoM ou se aM esta vari)vel s poder) ser acessada dentro desta /uno. +

Delphi e Lgica de Programao para Iniciantes

O *so da 1ari)1el (%in!aVaria1el( no m5todo (FormCreate( n6o 5 permitido >a codi/icao do /ormul)rio eAiste a )rea Private e a )rea PublicM as vari)veisM contantesM /un4esM etcM Hue /orem declaradas no )rea private estaro acessBveis somente no /ormul)rio atualM enHuanto Hue as declaradas em public estaro visBveis para todos os /ormul)rios Hue utiliLarem o /ormul)rio onde a vari)vel /oi declarada. $a%er em Hual escopo uma vari)vel se enHuadra no pro etoM a uda a /aLer um melhor uso da memria da maHuina.

"ipos mais comuns


Kma lista com os tipos mais comuns de dados tam%m conhecidos como tipos primitivos Hue usaremos no decorrer do nosso estudo

Integer Q >umero inteiro 5de P=;&1&330&3 a =;&1&330&17 Dou%le Q Ponto /lutuante com 0& %its 5utiliLado para nEmeros grandes e com casas decimais7 ?oolean Q .alor ?ooleano 5true ou /alse7 $tring Q Cadeia de caracteres 5utiliLado para teAtos7 Date Q De/erencia para data ou hora.

Declarando variveis
-ssim como ) eAplicado anteriormenteM as vari)veis so espaos de memoria Hue armaLenam valores Hue podem ser alterados no decorrer da aplicao. Para declarar uma vari)vel primeiro precisamos sa%er Hual escopo ela se mostra necess)ria e Hual o seu tipo. - declarao de uma vari)vel sempre deve vir logo aps as palavras reservadas )ARM PRI)AT* ou P+$,I# sendo a primeira a mais comumM com a sintaAeN Nome aVaria1el . 7ipoKma vari)vel pode ser de HualHuer tipo reconhecido pelo DelphiM inclusive tipos criados pelo prprio desenvolvedor. Kma importante o%servao Hue devido ao /ato do O% ect Pascal ser uma linguagem /ortemente tipadaM no possBvel declarar uma vari)vel de um determinado tipo e no decorrer da aplicao atri%uir a ela um valor de um tipo di/erente do seu tipo declarado.

Delphi e Lgica de Programao para Iniciantes

A se&*nda lin!a deste c8di&o ocasionara *ma erro de compila96o. Outra regra com relao as vari)veis diL respeito ao nome atri%uBdo a vari)vel na sua declaraoM no sendo permitido o uso de palavras reservadas pelo delphi e nomes iniciados com nEmeros.

Declarando constantes
- declarao de constantes muito semelhante a declarao de vari)veisM com a principal di/erena HueM na declarao da constante no o%rigatrio especi/icar o tipo da constante e no momento da declarao ) deve ser atri%uBdo um valor. - sintaAe mais comum para a declarao de uma constante a seguinteN Nome aConstante 2 Valor -pesar das regras de escopo se aplicarem tam%m as constantesM a declarao de uma constante deve ser /eita logo aps a palavra reservado #O-.TM mesmo o escopo da constante sendo glo%al 5are) Pu%lic do /ormul)rio7.

-ssim como as vari)veisM o nome de uma constante no pode ser uma palavra reservada do delphi e nem pode comear com nEmeros.

Declarando &rra(s
-rra2 5tam%m conhecido como vetor7 nada mais do Hue uma estrutura de memoria utiliLada para armaLenar v)rios dados de um mesmo tipo. O possBvel utiliLar um arra2 para armaLenar uma lista de valores como por eAemplo uma lista de alunos. Km arra2 comum possui um tamanho /iAo e o tipo de dado Hue ser) armaLenado em suas posi4esM essas de/ini4es so /eitas no momento da declarao do arra2. Km arra2 tratado como uma vari)vel pelo Delphi seguindo as mesmas regras de uma vari)vel comum. - sintaAe para a declarao de um arra2 segue o seguinte padroN Nome oArra: . Arra:;posi96o<nicial .. posi96oFinal= o> 7ipoOu se aM podemos de/inir uma vetor de strin&s 5maiores detalhes mais a /rente7 com + posi4esM para atri%uir o nome de + pessoas di/erentesM isto /icaria da seguinte /ormaN

Delphi e Lgica de Programao para Iniciantes

Note ?*e come9amos nosso arra: na posi96o @ e >inaliAamos na posi96o BC >aAendo com ?*e nosso arra: conti1esse D posi9Ees -nalisando o eAemploM /ica simples de entender Hue o arra2 armaLena uma estrutura de vari)veis tendo cada uma seu Bndice correspondente dentro do arra2.

Operadores Lgicos
Operadores lgicos so utiliLados para de/inir valores booleanos 5< ou ;M true ou /alse7 Hue so usados principalmente em estruturas de decisoM sendo praticamente impossBvel a construo de uma aplicao sem o uso desses elementos. Os principais e mais comuns operadores lgicos so estesN

Igual 567 Di/erente 59:7 ! 5and7 Ou 5or7 >egao 5not7

Para a udar na compreenso dos operadores lgicosM vamos aprender a utiliLar estruturas de deciso para Hue possamos demonstrar as diversas maneiras de se utiliLar operadores lgicos.

Estrutura de decis)es
!m determinadas aplica4es necess)rio Hue o aplicativo se a capaL de tomar di/erentes caminhos de acordo com as condi4es Hue apaream no decorrer de sua eAecuo. Para Hue isso se a possBvel eAistem as estrutura de decis4esM tendo como principal representante o I /*,.*.
IF/ L!

O I,"!lse a maneira mais comum de tomar uma deciso no /luAo de uma aplicao atravs de um teste lgico. ,aLendo uma a%strao a vida realM o uso do I, seria algo comoN $e isso >or 1erdadeiro Fa9a Fsta Opera96o Caso contrario Fsta O*tra

Delphi e Lgica de Programao para Iniciantes !sta a maneira mais simples e correta de entender o uso de um I,. .oltando ao PascalM a sintaAe %)sico do I, a seguinteN <F Gcondi96o> 7!en ... Flse ... $endo Hue o uso do !L$! no o%rigatrio e o !L$! pode ser com%inado com outro I,M eAemploN <F Gcondi96o> 7!en ... Flse <> Gcondi96o> 7!en ... KtiliLaremos o I, para entendermos melhor como tra%alhar com operadores lgicosM lem%rando Hue o I, testa condi4es %oleanasM sendo assimM podemos utiliLar o I, para validar vari)veis %ooleanas da mesma /orma Hue utiliLamos o I, para validar opera4es lgicas.

Igual *+,
O operador lgico de igualdade utiliLado para validar se o valor de duas vari)veis igualM independente do tipo da vari)vel desde Hue as duas vari)veis se am do mesmo tipoM ve a neste eAemplo Huais so os resultados possBveis para uma comparao de igualdadeN ; ; 6 6 ; (rue 5.erdadeiro7 = ,alse 5,also7

KtiliLando vari)veisM constantes e estrutura de decis4esM podemos demonstrar o uso deste operador lgico da seguinte maneira.

$eguindo o /luAo do eAemplo acimaM ao clicar no %oto do /ormul)rio seria apresentada a mensagem $*a $*&est6o est) corretaM mas caso o valor da vari)vel n*mero$*&erido ou da constante NH%F0OIF$PF0A O /osse alterado /aLendo com Hue tivessem valores di/erentesM a aplicao apresentaria a mensagem Fste n6o 5 o n*mero esperado. 8

Delphi e Lgica de Programao para Iniciantes

Di'erente *-.,
O operador de di/erena /unciona eAatamente como o operador de igualdadeM poremM eAecutando a operao inversa. $e na igualdade validamos se o valor de duas vari)veis so iguaisM na di/erena validamos se o valor da duas vari)veis so di/erentesM /aLendo com Hue o resultado desta validao se a 1erdadeiro para vari)veis distintas e >also para vari)veis semelhantesM sendo assimM os possBveis resultados so os seguintesN ; ; 9: 9: ; ,alse 5,also7

= (rue 5.erdadeiro7

Para melhor ilustrar esta HuestoM usaremos o eAemplo a %aiAoN

- eAecuo do eAemplo acimaM /aria com Hue ao clicar no %oto do /ormul)rioM /osse apresentada a mensagem Fste nome 5 com*m pois a primeira validao do I, iria retornar False devido ao /ato do valor da vari)vel nomePessoa e da constante NO%FICO%H% serem iguais e como nossa deciso esta sendo tomada a partir de uma di/erenaM o /luAo da aplicao seguiria para o Flse.

Delphi e Lgica de Programao para Iniciantes

!aior *., / !aior ou igual *.+,


O possBvel veri/icar se um valor maior do Hue outro e neste mesmo processo possBvel tam%m veri/icar se os valores so iguaisM isto atravs do sinal de maior 5:7 e o maior o* i&*al 5:67. ; ; ; ; ; ; : : : :6 :6 :6 < (rue 5.erdadeiro7 ; = ,alse 5,also7 ,alse 5,also7

< (rue 5.erdadeiro7 ; (rue 5.erdadeiro7 = ,alse 5,also7

!enor *-, / !enor ou igual *-+,


-o contrario do maior J maior o* i&*alM o menor 597 e o menor o* i&*al 5967 veri/ica se um valor menor do Hue outro e veri/ica tam%m se menor ou igual. ; ; ; ; ; ; 9 9 9 96 96 96 < ; < ,alse 5,also7 ,alse 5,also7 ,alse 5,also7

= (rue 5.erdadeiro7 ; (rue 5.erdadeiro7 = (rue 5.erdadeiro7

Ou *or,
!m determinadas situa4es necess)rio veri/icar mais de uma condio em um /luAo da aplicaoM ondeM caso apenas uma este a de acordo 5verdadeira7 ) o su/iciente para eAecutar uma determinada seHu@ncia de cdigo. Isso se torna possBvel atravs do operador lgico O+ 5or7 Hue veri/ica se pelo menos uma das condi4es veri/icadas verdadeira. ; : < or ; 9 = or ; 6 3 or R-R 6 R?R ;< :6 ;+ (rue 5.erdadeiro7 ,alse 5,also7

RCR 9: RDR (rue 5.erdadeiro7

;;

Delphi e Lgica de Programao para Iniciantes KtiliLando o O* a operao sempre resultara em 1erdadeiro caso pelo menos uma das compara4es resulte em 1erdadeiro. .e a uma eAemplo do uso do o*

o%sN !m uma comparao OR os termos sempre so analisados da esHuerda para direitaM portantoM caso algum termo resulte em um valor true os outros termos sero ignorados.

E *and,
Di/erente do o* o F 5and7 s resulta em verdadeiro caso todas as condi4es resultem em verdadeiro. ; : < and R-R 6 R?R ; 6 3 and ;< :6 ;+ ,alse 5,also7 ,alse 5,also7 ; 9 = and RCR 9: RDR (rue 5.erdadeiro7

Ksando o mesmo tema eAemplo dado para o o*M vamos mudar um pouco para podermos demonstrar o uso do F.

Delphi e Lgica de Programao para Iniciantes

-nalisando esse eAemploM /ica claro Hue a aplicao apresentara a mensagem RAl*no 0epro1adoRM devido ao /ato do valor da variavel FaltasAl*no maior do Hue o valor da constante %AKIFAL7A$M porem poderBamos mudar o valor da vari)vel FaltasAl*no para =<M desta /orma a aplicao iria apresentar a mensagem (Al*no Apro1ado(M ) Hue as duas valida4es estariam testadas no I, seriam verdadeira. O%sN -ssim como no OR o A-D compara os termos da esHuerda para diretaM sendo assimM caso algum termo resulte em 0alse os outros termos no sero analisados.

/egao *not,
Podemos utiliLar o operador lgico de ne&a96o 5not7 para negar alguma condio %ooleanaM a grosso modoM o uso do not /aL com Hue se RinvertaR o resultado de uma comparao %ooleana. not (rue not ,alse not 5;6;7 not 5= : 37 ,alse 5,also7 (rue 5.erdadeiro7 ,alse 5,also7 (rue 5.erdadeiro7

.amos mudar um pouco nosso eAemplo do alunoM para podermos demonstrar o uso do notN

;3

Delphi e Lgica de Programao para Iniciantes

Operadores "atemticos #sicos


-ssim como em HualHuer linguagem o Pascal tam%m tra%alha com opera4es matem)ticos. Limitaremos nosso estudo as & opera4es %)sicas e o resto da divisoN $oma $u%trao Diviso 'ultiplicao Desto S P " T mod

Preced0ncia
- preced@ncia das opera4es matem)ticas no pascal segue a mesma preced@ncia da matem)ticaN Primeiro $egundo TM "M mod SM P

Delphi e Lgica de Programao para Iniciantes PoremM podemos /orar a eAecuo de uma operao matem)tica de menor proced@ncia antes de uma de maior utiliLando parentesesN 3@ L D 4 " Primeiro seria eMec*tada a m*ltiplica96o 3@ L D res*ltando em D@ e este 1alor seria somando ao " res*ltando em D" 3@ L 'D 4 ", esta >ormaC primeiro seria eMec*tado a soma D 4 " res*ltando em N e esse 1alor seria m*ltiplicado ao 3@ res*ltando em N@.

$erc%cios
Para os eAercBcios a seguirM o uso de vari)veis livreM independente da Huantidade e do tipo de vari)veis Hue /orem utiliLadasN ;. KtiliLando a ideia do aluno sendo aprovado ou noM /aa uma rotina para Hue se am somadas 3 notasM tire a mdia delas e veri/iHue se o aluno /oi aprovadoM reprovado ou se pode /aLer eAame para recuperar nota. KtiliLe uma constante para armaLenar a mdia de aprovao do curso e a media para eAame. 'ostre para o usu)rio o resultado e depois altere o valor das vari)veis para chegar em di/erentes resultados. =. Calcule Huanto um /uncion)rio rece%e em um ano 5ignorando ;3U sal)rio e /rias7M para realiLar esse calculo crie uma constante para armaLenar o sal)rio mensal %ruto do /uncion)rio e a porcentagem de tri%utao paga mensalmente. 'ostre para o usu)rio o resultado e depois altere o valor das constantes para chegar em di/erentes resultados.

struturas de la&o 'loop(


KtiliLamos la9os Huando Hueremos eAecutar um %loco de instru4es um numero determinado de veLesM mesmo esse numero sendo conhecido ou no.

1hile
O lao w!ile eAecutado enHuanto uma determinada condio /or verdadeiraN Fn?*anto >or 1erdadeiro >a9a Fsta opera96o O w!ile utiliLado geralmente Huando no se sa%e o numero de intera4es do lao. Para eAempli/icar o uso do JhileM vamos /aLer uma contagem regressiva comeando em ;< e terminado em <.

;+

Delphi e Lgica de Programao para Iniciantes

%or
Di/erente do lao w!ile o lao >or utiliLado Huando se sa%e a Huantidade de intera4esM pois na sintaAe da sua implementao especi/icado a Huantidade de intera4es. Para contador 1alendo M at5 : >a9a Fsta opera96o Di/erente do w!ile o >or eAecutado at Hue a condio se a verdadeira. O >or um lao largamente utiliLando em opera4es com arra2s por utiliLar um contador Hue vai incrementando automaticamente a cada iterao.

Note ?*e >oi necess)rio declarar a 1ari)1el < para *tiliAa la como contador. >o eAemplo acima especi/icamos na implementao do lao Hue a vari)vel < comearia valendo < 5Lero7 e o lao iria ser eAecutado at Hue o vari)vel < estivesse valendo & 5Huatro7. O resultado seria cinco mensagens na tela uma com cada nome atri%uBdo no arra2 de nomes seguindo a ordem de atri%uio.

Delphi e Lgica de Programao para Iniciantes $eria possBvel /aLer com Hue no eAemplo acima a aplicao apresentasse os nomes na ordem contraria a de atri%uioV Comeando pelo Bndice & e terminando no Bndice < V sim possBvelM ao alterar a implementao do lao >or trocando o 7O por OWN7O o contador passa a ser decrementado ou invs de ser incrementado.

2epeat
-t agora estudamos laos Hue primeiro checam uma condio para depois realiLar sua primeira iteraoM no lao repeat esta regra mudaM primeiro a aplicao vai realiLar um iterao no lao para depois checar se a condio permite a eAecuo da prAima iterao. -ssim como o >or o repeat eAecutado at Hue a condio se a verdadeira. 0epita estes comandos at5 esta condi96o 'esmo Hue inicialmente a condio de parada do lao se a verdadeira antes de sua primeira iteraoM os comandos so eAecutados pelo menos uma veLM di/erente dos laos anteriores. Para eAempli/icar o uso lao repeat vamos /aLer uma contagem de < 5Lero7 at um determinado numero.

;1

Delphi e Lgica de Programao para Iniciantes

3reak / Continue
Caso se a necess)rio sair de um lao interrompendo sua eAecuoM %asta usar o comando %reaOM caso a inteno se a apenas pular desta iterao para a prAimaM voltando para o comeo do lao %asta utiliLar o comando contin*e

$erc%cios
;. ,ao uma contagem regressiva utiliLando o lao >or. =. ,aa uma contagem utiliLando o lao w!ile comeando em < 5Lero7 at achar 3 nEmeros pares. 3. ,aa uma contagem nos 3 tipos de laos comeando em < 5Lero7 e terminando em ;< 5deL7 mostrando na tela mensagens somente com os nEmeros impares. &. ,aa uma contagem nos 3 tipos de laos comeando em < 5Lero7 e terminando em ;< 5deL7M poremM /orce a saBda do lao aps apresentar o numero +.

Delphi e Lgica de Programao para Iniciantes

Fun&)es *sicas
O pascal ) disponi%iliLa algumas /un4es ) implementadasM /un4es essas Hue so comuns em HualHuer linguagem.

%un)es com strings


un1o Length Cop2 Pos Aplica1o Decuperar o tamanho de uma string ou de um -rra2 Copia parte de uma string Decupera a posio de um determinado caractere 5ou con unto7 dentro de uma string !limina espaos a direita e a esHuerda de uma string 5utiliLe (rimLe/t para eliminar somente a esHuerda e (rimDight somente a direita7 $u%stitui parte de uma string por outra .inta2e .arInteira N6 Length5var(eAto7W $tr,inal N6 cop25var(eAtoM posioInicialM HuantosCaracteres7W .arInterira N6 Pos5R-RMvar(eAto7W

(rim

$tr,inal N6 (rim5var(eAto7W

$tringDeplace

$tr,inal N6 $tringDeplace5var(eAtoM caracter-$u%stituirM novoCaracterM outrasOpcoes7W

%un)es com /4meros


un1o Inc Dandom Aplica1o Incrementa o valor de uma variavel do tipo inteiro Detorna um numero inteiro aleatrio. .inta2e Inc5varInteiro7W .arInteira N6 Dandom5range7W obs. *tiliAar sempre a >*n96o 0andomiAe antes de *sar a random.

;8

Delphi e Lgica de Programao para Iniciantes

%un)es com Data e 5ora


un1o Date >oJ IncDa2 Aplica1o Detorna a data atual Detornar a data e hora atual Incrementa dias a uma data .inta2e .arData N6 DateW .arData(empo N6 noJW .arData N6 incDa25varDataM dias7W obs. caso n6o in>orme a ?*antidade de diaC a >*n96o ira incrementar somente 3 .arInteira N6 Da2s?etJeen5varDataM varProAimaData7W

Da2s?etJeen

Detorna numero de dias entre uma data e outra

%un)es de converso de tipo *cast,


un1o Int(o$tr ,loat(o$tr $tr(oInt $tr(o,loat Date(o$tr Date(ime(o$tr (ime(o$tr $tr(oDate ,loat(o$tr, Aplica1o Converte um integer para uma string Converte um dou%le para uma string Converte uma string para um Integer Converte uma string para um dou%le Converte um Date para uma $tring Converte um Date(ime 5data e hora7 para uma string Converte um (ime para uma string Converte uma $tring em um Date Converte um Dou%le para uma $tring /ormatada .inta2e .ar$tr N6 Int(o$tr5varInteira7W .ar$tr N6 ,loat(o$tr5varDou%le7W .arInteira N6 $tr(oInt5var$tr7W .arDou%le N6 $tr(o,loat5var$tr7W .ar$tr N6 Date(o$tr5varData7W .ar$tr N6 Date(ime(o$tr5varData!Fora7W .ar$tr N6 (ime(o$tr5varFora7W .arData N6 $tr(oDate5var$tr7W .ar$tr N6 ,loat(o$tr,5varDou%leM/ormatoM precisaoM casas decimais7W

Delphi e Lgica de Programao para Iniciantes

E6erc7cios
;. Crie uma constante com uma palavra HualHuer e utiliLando laos e /un4es do pascal apresente uma mensagem com essa palavra escrita ao contrario. =. Crie uma constante com o teAto R;33M=+R e su%stitua a virgula por um ponto 5. 7 em uma vari)vel. ;. /aa usando pos e cop2 =. /aa usando o $tringDeplace 3. Crie uma constante com um nome HualHuer e mostre uma mensagem diLendo a Huantidade de caracteres Hue aHuele nome possui. &. -rmaLenar uma numero aleatrio 5de < a &7 em uma vari)velM incrementar esse numero a data atualM apresentar uma mensagem com a data incrementadaM gerar outro numero aleatrioM incrementar na data Hue ) /oi incrementada e mostrar uma mensagem com a Huantidade de dias entre a data atual e data incrementada. +. De/aLer o eAercBcio do sal)rio anual do /uncion)rioM apresentando o resultado /inal /ormatado em reais.

Componentes
Kma das vantagens de se utiliLar uma /erramente como o Delphi a /acilidade em manipular componentes visuaisM tanto suas propriedades como seus eventosM este /ato /aL com Hue muitas veLes con/undam o Delphi como uma linguagem orientada a eventosM sendo Hue o Delphi como ) dito anteriormente %aseado em O% ect PascalM Hue uma linguagem orienta a o% etos.

Propriedades de componentes
-s propriedades de um componente so a parte mais importante do componenteM so elas Hue determinam a /orma como o componente vai ser apresentadoM Huais in/orma4es so armaLenadas no componenteM tamanhoM corM etc. !Aistem duas /ormas de manipular as propriedades de um componenteM em tempo de design e em tempo de eAecuoM sendo a primeira no momento do design do pro eto utiliLando a Object <nspector e a segunda totalmente dinXmicaM de acordo com o /luAo de eAecuo da aplicaoM eAemploN componente.propriedade .2 1alor-

=;

Delphi e Lgica de Programao para Iniciantes - maioria das propriedades so comuns entre os componentes /acilitando a assimilao de novos componentes. !sta lista contem algumas das propriedades mais comuns. Propriedade Prop3sito (eAt (eAto digitado no componenteM por eAemplo um teAto digitado em uma caiAa de teAto. (eAto de tBtuloM por eAemplo o teAto de um %oto O nome do componente. Largura do componente -ltura do componente $e o componente est) ou no desa%ilitado $e o componente est) ou no visBvel.

Caption >ame Cidth Feight !na%le .isi%le

ventos dos componentes


Os eventos dos componentes geralmente ditam a /orma como a aplicao vai se comportar. O possBvel eAecutar rotinas em diversos eventos di/erentes de HualHuer componenteM ao enviar /ocoM ao tirar /ocoM ao pressionar uma teclaM ao clicarM ao passar com o mouse encimaM etc. Para veri/icar Huais eventos um determinado componente disponi%iliLa e implementar rotinas para estes eventosM %asta selecionar o componente e na Object <nspector mudar para a a%a de eventos.

Componentes #sicos
#omponente (!dit (La%el (?utton (?it?tn ('as#!dit ('enuItem (Iroup?oA (Dadio?utton (Chec#?oA +tili4a1o CaiAa de teAto (eAto /iAo ?oto comum ?oto Hue permite imagem CaiAa de teAto com mascaraM utiliLado geralmente para campos de tele/oneM dataM etc. KtiliLado para /aLer 'enu em /ormul)rio CaiAa para agrupamento de componentesM /unciona tam%m como um contender Opo de seleoM utiliLado para sele4es EnicasM por eAemplo $eAoN 'asculino " ,eminino. Opo de checagemM utiliLado para mEltiplas sele4es.

Delphi e Lgica de Programao para Iniciantes (Com%o?oA CaiAa de seleo Enica %aseado em teAtoM utiliLado geralmente Huando as op4es no so totalmente de/inidas. Para apresentar imagem. ListagemM pode ser utiliLado para varias /inalidades possi%ilitando o uso de colunasM imagensM etc. CaiAa de teAto para teAtos longos Hue permitam Hue%ra de linha. CaiAa de dialogo padro do JindoJs para a%ertura de arHuivos CaiAa de dialog padro do JindoJs para gravao de arHuivo.

(Image (List.ieJ

('emo (OpenDialog ($aveDialog

E6erc7cios
;. De/aLer o eAercBcio do sal)rio anualM /aLendo uma inter/ace com caiAas de teAto para o salario mensalM um com%o para armaLenar as taAas e deiAar selecion)velM um la%el para apresentar o resultado /inal e colocar uma caiAa de checagem para determinar se devera calcular o a taAa ou no. Incluir uma caiAa de teAto para in/ormar o valor de iseno do imposto de renda e um la%el para in/ormar se o /uncion)rio precisa declarar imposto de renda ou no. =. Criar uma inter/ace semelhante a um cadastro contendo as seguintes in/orma4esN >omeM Data de >ascimentoM $eAoM Cidade 5em um com%o com as seguintes op4es $o PauloM CampinasM Piracica%a7M se possui dependentesM tele/one e ao /inal atravs de uma rotina programada no cliHue de um %otoM colocar todas as in/orma4es em um memoM separando o nome do so%renome e calculando a idade atravs da data de nascimento. .alidar na saBda do campo de data de nascimento se a data digitada uma data valida. 3. $alvar as in/orma4es do eAercBcio anterior em um arHuivo de teAto utiliLando o componente $aveDialog para escolher o diretrio e utiliLar a /uno $ave(o,ile do componente memo para salvar o arHuivo.

3anco de Dados
Data"odule
Kma %oa pr)tica de desenvolvimento Huando se esta tra%alhando com %anco de dados o uso de ata%od*lesM Hue consiste em uma especie de /ormul)rio no visual para armaLenar componentes de acesso a dadosM centraliLando esses componentes e tornando mais /)cil o acesso atravs dos outros /ormul)rios. Para adicionar um datamod*le ao pro eto atualM %asta clicar com o %oto direito encima do pro eto no Project %ana&er e depois ir em Add New -> Ot!er -> ata%od*le. =3

Delphi e Lgica de Programao para Iniciantes

#D
Kma das tecnologias Hue o Delphi tra%alha nativamente para acesso ao %anco de dados a tecnologia ?D!M Hue permite o acesso a v)rios %ancos de dados di/erentesM tendo como principal o paradoA e os arHuivos d%/.

""a le
O ttable o componente utiliLado para a%ertura de uma ta%ela Hue se a possBvel ser a%erta via tecnologia bde. - maioria dos mtodos Hue veremos para o componente ttable esto disponBveis para outros componentes de acesso a %anco de dadosM o%tendo os mesmos resultados.
& rindo e 'echando um ta ela

Para a%rir uma ta%ela e carregar seu conteEdo na memriaM necess)rio primeiramente preencher algumas propriedades do componente ttable como por eAemploN Propriedade Data%ase>ame (a%le>ame !Aclusive inalidade -lias 5%de ou od%c7 ou diretrio onde se encontra a ta%ela >ome da ta%ela 'todo de a%ertura da ta%elaM eAclusivo 5true7 ou compartilhado 5/alse7M por padro esta opo vem setado como /alse

-ctive

Determina se uma ta%ela vai estar a%erta ou no. $etando como active 6 true em tempo de design possBvel ver os registros da ta%ela ainda em tempo de design. Obs. P*al?*er *ma dessas propriedades pode ser alterada em tempo de eMec*96o

-ps preencher as principais propriedades do componente %asta eAecutar o mtodo open do componenteM com a seguinte sintaAeN tabela.openCaso no ocorra nenhum erro na a%ertura da ta%ela a aplicao continuara com o /luAo normal. Para /echar a ta%ela %asta utiliLar o mtodo Close. tabela.closeW Lem%rando HueM utiliLando acesso via ?D!M cada ta%ela a%erta consome parte da memria da ?D! correndo o risco de ocasionar /alhas com um numero grande de ta%elas a%ertas.
Inserindo 2egistros

Para inserir registros em uma ta%ela pelos componentes de ta%ela do delphiM %asta utiliLar o mtodo AppendM /aLendo com Hue insira uma nova linha em %ranco na ta%elaM sendo assimM aps o append necess)rio preencher os valores paras os campos da ta%ela. -ps preencher as in/orma4es dos camposM %asta utiliLar o mtodo post para e/etivar as in/orma4es no %anco de dadosM ou o mtodo cancel para cancelar as altera4es e remover a nova linha inserida.

Delphi e Lgica de Programao para Iniciantes 7abela.Append7abela.FieldQ:Name'(Nome(,.1al*e .2 nome7abela.FieldQ:Name'(Fone(,.1al*e .2 tele>one7abela.postOs campos Hue no /orem preenchidos neste processo sero gravados como nulo no %anco.
Editando 2egistros

Para editar um registro ativo em um componente ttable %asta utiliLar o mtodo FditM /aLendo com Hue o registro entre em modo de edio. -ps deiAar o registro em modo de edio o mtodo de gravao o mesmo do appendM post para e/etivar as altera4es e cancel para cancelar a edio. (a%ela.editW (a%ela.,ield?2>ame5R>omeR7.value N6 nomeW 7abela.FieldQ:Name'(Fone(,.1al*e .2 tele>one7abela.post&pagando registros

Para apagar o registro ativo em um componente ttable %asta utiliLar o mtodo elete. 7abela.delete/avegao entre registros

-t agora vimos como a%rir e /echar uma ta%elaM inserir novos registrosM editar e deletar o registro ativoM porem ainda no vimos como navegar entre os registros gravados na ta%elaM para isso eAiste um con unto de mtodos especB/icos para isso. - navegao entre registros se d) atravs de um ponteiroM ou se aM o registro ativo na verdade o registro em Hue esta o ponteiro da ta%ela. 56todo ,irst Last >eAt Prior inalidade 'ove o ponteiro para o primeiro registro 'ove o ponteiro para o ultimo registro 'ove o ponteiro para o prAimo ponteiro

'ove o ponteiro para o registro anterior Para sa%er se um o ponteiro esta no ultimo registroM %asta usar o mtodo FOFM Huer retorna tr*e se o ponteiro ) est) no ultimo registro.
Procurando registros

Kma das coisas mais comuns %uscar um registro em uma ta%ela e o componente ttable disponi%iliLa algumas maneiras de realiLar esta %usca.

=+

Delphi e Lgica de Programao para Iniciantes


$ocate

- /orma mais comum e mais simples de se procurar um registro em uma ta%ela uso do mtodo locate. O mtodo locate uma %usca sem uso de Bndices e por HualHuer campo da ta%ela. Detornar tr*e se encontra o registro e move o ponteiro para a primeira ocorr@ncia desse registro. $intaAe do mtodo a seguinteN tabela.locate'campoC1alorCopcoes,Km eAemplo pratico do uso do locate para procurar um registro uma ta%ela.

%ind8e(

O >indOe: um mtodo de %usca atravs do uso de BndicesM sendo assim necess)rio Hue a ta%ela este a indeAada pelo campo Hue se dese a /aLer a %usca. Para alterar o Bndice ativo de uma ta%ela eAistem duas propriedadesM o indeMName Hue deve ser preenchida com o nome do Bndice e a propriedade indeMFieldName Hue deve ser preenchida com o nome do campo a se indeAar. Lem%rando HueM em uma %anco de dados paradoAM para indeAar um campoM este deve possuir um Bndice previamente criado. - sintaAe do uso do >indRe: a seguinteN tabela.>indOe:'1alor,Km eAemplo pr)tico do uso do mtodo >indOe: indeAando uma ta%ela por um campo determinado.

-ssim como o locate o >indRe: retorna tr*e se acha o registro e move o ponteiro para o registro encontrado.

Delphi e Lgica de Programao para Iniciantes


%ind/eareast

-ssim como o >indOe: o FindNeareast uma pesHuisa %asada no Bndice ativo da ta%elaM com uma di/erenaM enHuanto o >indOe: procura eAatamente o termo passado como parXmetroM o >indNeareast %usca por parte do termoM simulando um liOe de sHl.

Outra di/erena entre os dois mtodos Hue o >indnearest no tem retornoM ele simplesmente move o ponteiro para o registro encontrado.

"9uer(
-t agora aprendemos a a%rir uma ta%ela e manipular seus registrosM poremM algumas veLes necess)rio untar in/orma4es de varias ta%elas em uma Enica para conseguir chegar em um determinado resultadoM algo Hue uma simples Huer2 ) resolveria. Para essa /inalidade eAiste o componente 7P*er: Hue /unciona muito semelhante ao componente ttable mas com algumas particularidades especi/icas para o uso de instru4es $QL. Para tornar nosso aprendiLado mais dinXmicoM vamos centrar as partic*laridades deste componenteM aproveitando o Hue ) conhecemos de navegao do componente ttable.
Carregando / E6ecutando uma :uer(

!Aistem duas /ormas de eAecutar uma Huer2 com o componente t?*er:M sendo cada uma especi/ica para uma /inalidadeM mas antes de entrar neste detalhesM primeiro precisamos sa%er como especi/icar Hual Huer2 ser) eAecutadaM para isso eAiste a propriedade s?l do componente t?*er:M propriedade esta Hue contem alguns mtodos como por eAemplo o mtodo addM Hue ser) o Hue usaremos para in/ormar nossa Huer2 ao componente.

$a%endo como Yin/ormarY nossa Huer2 ao componenteM precisamos sa%er agora Hual ser) a /inalidade da Huer2M se /or somente uma Huer2 de consulta 5select por eAemplo7 ser) necess)rio um ponteiro no resultado para Hue possamos manipular o registroM para isso usaremos o mtodo OP!> do componente t?*er:M caso se a uma Huer2 de manipulao de dados 5insertM deleteM updateM ou mesmo comandos de DDL7M um ponteiro no se mostra necess)rioM sendo assim usaremos o mtodo FMec do componente tHuer2.

=1

Delphi e Lgica de Programao para Iniciantes

Ap8s abrir a ?*er:C a na1e&a96o dos dados se&*e o mesmo padr6o do componente ttable.

$erc%cios
;. Criar uma ta%ela paradoA com o nome de pessoaM com o campo id 5autoincremento7 e o campo nome 5varchar 3+7M criar uma aplicao para inserir dados nesta ta%ela 5via componente ttable7 e criar uma rotina para preencher um memo com todos as pessoas cadastradas nesta ta%ela. =. Depetir o eAercBcios anterior usando o componente t?*er: no lugar do componente ttable

Componentes DataControl
Componentes datacontrol so componentes criados para /acilitar a integrao entre componentes visuais e componentes de acesso a dados.

"DataSource
O componente (Data$o*rce serve como ponte entre os data$ets 5tta%leM tHuer2M etc.7 e os componentes DataControl. PortantoM para cada dataset Hue ser) associado a um componente dataControl necess)rio criar o seu componente tdata$o*rce correspondente. - propriedade Hue especi/ica a Hual dataset este 7data$o*rce se re/erePse a propriedade ata$etM %asta preencher essa propriedade com o nome do dataset. ,eito istoM ) podemos comear a usar os componentes datacontrol associados a um ta%ela.

Delphi e Lgica de Programao para Iniciantes

"D3;rid
O componente tdbSrid um componente Hue apresenta os dados de uma ta%ela em um /ormato parecido com uma planilhaM permitindo ou no edio direta dos dados. Com o 7dbSrid podemos especi/icar Huais campos sero mostradosM cor da linhaM /onteM etc. Para integramos um tdb&rid a uma ta%elaM %asta no object <nspector preencher a propriedade data$o*rce do db&rid com o nome do dataso*rce Hue est) apontando para a ta%ela Hue ser) eAi%ida no db&rid e depois especi/icarmos pela propriedade col*mns os campos Hue sero apresentados.

"D3Edit
O componente 7 QFdit se assemelha a um componente tedit com a di/erena Hue este componente pode estar ligado diretamente a um campo de um dataset. -ssim como o componente 7 QSridM para ligar um um 7 QFdit a um campo de um datasetC %asta preencher sua propriedade dataso*rce com o nome do dataso*rce dese ado e a propriedade ataField com o nome do campo a Hual esse tdbedit ir) se re/erenciar. -o editar o conteEdo deste componenteM automaticamente o conteEdo do campo est) sendo editadoM deiAando o registro ativo em modo de edio.

"D3"e6t
O componente 7 Q7eMt se assemelha a um componente tlabelM e /unciona eAatamente igual ao componente 7 QFdit com a di/erena Hue no proporciona uma /orma de editar o conteEdo da in/ormaoM se limitando a ser um componente somente para visualiLao.

E6erc7cio
;. Criar um cadastro simples de pessoa com os campos Id 5autoincremento7 nome e ePmail 5varchar 3+7. Criar a inter/ace com d%gridM d%edit e d%teAt. Ksar %ot4es para editarM inserir ou apagar um registro.

/avegao
"a Order
O Hue determina a ordem de /oco dos campos Huando se pressiona a tecla ta% em um /ormul)rio a propriedade tabOrder dos componentesM %asta ordenar os componentes na ordem dese ada de /oco. Lem%rando Hue cada cont@iner do /ormul)rio possui sua ordem individual.

<irtual8e(s
-lgo muito comum determinar a4es especi/icas em componentes de acordo com uma determinada tecla Hue /or pressionadaM eAistem duas /ormas de se controlar istoM uma delas 5talveL a mais /)cil7 atravs do uso de 1irt*alRe:C Hue nada mais do Hue constantes do Delphi para auAiliar neste propsito. ?asta comparar a tecla pressionada com a 1irt*alRe: dese ada. -lgo importante a se notar neste momento Hue o uso de virtual#e2 s se torna possBvel no evento onRe: own dos componentes. Km eAemplo desta tcnicaN

=8

Delphi e Lgica de Programao para Iniciantes

note ?*e a 1ari)1el Re: '?*e representa a tecla pressionada, 5 na 1erdade *m parTmetro da >*n96o onRe: own >o eAemplo a cimaM ao se pressionar a tecla FBM alguma rotina poder) ser eAecutada.

Cdigo +!CII na navega&,o


Outra /orma de veri/icar a tecla pressionada e condicionar a navegao a isto o uso da veri/icao do cdigo ascii da tecla. ,unciona da mesma /orma Hue os 1irt*alRe:s poremM ao invs de se comparar com uma 1irt*alRe: se compara ao cdigo ascii de uma tecla HualHuer e o evento mais comum a se usar esta veri/icao o evento onRe:Press.

Fsta rotina 1eri>ica se a tecla pressionada 5 tecla enter 'U3" da tabela ascii,C caso sejaC en1ia o >oco do >orm*l)rio para o*tro componente.

$erc%cio
;. De/aa o eAercBcio do cadastro simplesM melhorando a navegao com as tcnicas passadas neste tpico.

%ormulrios
Os /ormul)rios no Delphi so na verdade o% etos Hue devem ser criados na memria antes do uso e conseHuentemente limpados da memria Huando seu uso passa a no ser mais necess)rio. Para inserir um novo /ormul)rio ao pro eto atualM %asta /aLer na mesma /orma Hue se adiciona um ata%od*leM atravs do Project %ana&er. O Delphi consegue gerencial Huais /ormul)rios sero criados no momento em Hue a aplicao ser) eAecutada ou os Hue ser) criados dinamicamenteM por padroM sempre Hue inserimos um novo /ormul)rio ao pro etoM este ser) setado para ser criado automaticamente. Para manipular este gerenciamento %astar ir no menuN Project -> Options -> Forms - lista da esHuerda determina os /ormul)rios Hue sero criados automaticamente Huando a aplicao /or carregada e a lista da direita so os /omul)rios disponBveis no pro eto. >ote Hue ainda eAiste a indicao %ain Form com um com%o contendo o nome dos /ormul)rios do pro etoM o

Delphi e Lgica de Programao para Iniciantes /ormul)rio Hue /or identi/icado como %ain Form passa a ser o /ormul)rio principal da aplicaoM isso signi/ica Hue ser) o primeiro a ser criado e Hue se por algum motivo /or descarregado a aplicao ser) encerrada.

!ho- e !ho-"odal
!Aistem duas /orma de a%rir um /ormul)rioM o mtodo s!ow e o mtodo $!ow%odal. principal di/erena entre os dois mtodos HueM com o s!ow o /ormul)rio a%erto mas continua a ser possBvel manipular o /ormul)rio anteriorM enHuanto HueM com o $!ow%odal os /ormul)rios anteriores passam a /icar desa%ilitadosM permitindo a manipulao somente do ultimo /ormul)rio a%erto.

Criando .ormulrios em tempo de e$ecu&,o


-ssim como dito anteriormenteM Huando um /ormul)rio no /or setado para ser criado unto com a aplicao necess)rio criaPlo na memria e limpaPlo Huando este deiAar de ser necess)rio. !Aistem inEmeras /ormas de se /aLer issoM portantoM pode acontecer casos em Hue voc@ se depare com outras /orma e Huestione se esta a mais correta do Hue a outraM a resposta M dependeM mas no entraremos nesses detalhes. .amos seguir o seguinte eAemplo para criar um /ormul)rio em tempo de eAecuoN

$erc%cios
;. De/aa o eAercBcio do cadastro simples adicionando o campo cidade 5inteiro7 na ta%ela de pessoa e criando uma ta%ela de cidades com id 5autoinc7 e nome 5varchar 3+7M no cadastro adicione um campo para inserir o cdigo da cidade e crie um /ormul)rio para pesHuisar as cidades cadastradas.

3;

Anda mungkin juga menyukai