Escolar Documentos
Profissional Documentos
Cultura Documentos
Fernando Anselmo
Borland
!odos os no es dos prod"tos #itados s$o ar#as registradas da %orland &nternational' &n#. ("tros prod"tos #itados s$o ar#as registradas no respe#tivo #a)e*alho As v+rias Marcas Registradas ,"e apare#e no de#orrer deste livro. Mais do ,"e si ples ente listar esses no es e in-or ar ,"e poss"i se"s direitos de e.plora*$o' o" ainda i pri ir o logotipo das es as' o a"tor de#lara estar "tilizando tais no es apenas para -ins editoriais' e )ene-/#io e.#l"sivo do dono da ar#a registrada' se inten*$o de in-ringir as regras de s"a "tiliza*$o.
ii
SUMRIO
Desvendando o Ca inho das 0edras i
INTRODUO
Delphi' #o o Sol"*$o para Desenvolvedores
4
1
APNDICE A
Do#" enta*$o 3ard4are/So-t4are re,"eridos
1
12 12
APNDICE !
Convers$o de Ca pos !ipos de Dados para o &nter%ase
11
11 15
APNDICE C
Apli#a*$o r+pida #o o ()6eto 7"ery
1"
18
APNDICE D
& pri indo " For "l+rio
1#
15
APNDICE E
!ra)alhando #o M+s#aras
1$
17
APNDICE %
!ra)alhando #o & porta*$o e 9.porta*$o
1&
19
APNDICE '
Doze elhores di#as para o Delphi
((
55
iii
In)rod*+,o
%e -vindo ao Delphi' o ais novo prod"to de alta per-or an#e da Borland. Delphi : " prod"to ;ni#o e s"a #ategoria #o )inando #<digos total ente #o pil+veis' -erra entas vis"ais e te#nologia para a #o posi*$o de )ases de dados es#al+veis' poss"i -a#ilidades para " r+pido desenvolvi ento e plata-or a Windows e apli#a*=es Client/Server. 9ste tra)alho ser+ se" g"ia para " a r+pida aprendizage no desenvolvi ento de siste as ,"e geren#ie )an#os de dados. ( Delphi : en#ontrado e dois prod"tos> Delphi Client/Server' de alta per-or an#e e -a#ilidade para o desenvolvi ento de apli#a*=es e s"porte a )an#os de dados do tipo Cliente/Servidor. Delphi Desktop' de alta per-or an#e e -a#ilidade para o desenvolvi ento de apli#a*=es e s"porte a )an#os de dados lo#ais' per itindo total porta)ilidade ? vers$o Client/Server.
Apresento-lhes a seg"ir alg" as in-or a*=es detalhadas para " per-eito desenvolvi ento vis"al' sendo ,"e ao -inal de #ada #ap/t"lo pr+ti#o : e.i)ido o #<digo -onte #o pleto seg"ido de " res" o dos prin#ipais #o andos ostrados. Ao -inal deste est"do vo#@ en#ontrar+ ap@ndi#es ,"e lhe a6"dar$o a resolver pe,"enos pro)le as do dia-a-dia.
Hs+-lo #o o a ling"age de desenvolvi ento para )an#os do tipo Cliente/ServidorD A )iente heterog@neo para #apt"ra e envio de in-or a*=es e de dadosD diversos tipos de ar,"ivos
Borland
H pa#ote #orporativo de apli#a*=es inteligentes e interpretadores de dados. &n#orporando DEEIs e 9J9Is e.ternosD 0a#otes "lti /dia #o desenho e ani a*$oD
Ken:ri#os "tilit+rios do Bindo4sD Cria*$o de )i)liote#as LDEEM para leit"ra por o"tras apli#a*=es.
Mas por,"e arris#ar e " a )iente novo ,"ando e.iste no er#ado ling"agens ais di-"ndidas A Co "ndo inteiro Delphi -oi testado' e e 15 eses de vida prod"zi" os seg"intes res"ltados> Delphi est+ sendo "tilizado no o ento por ais de 1.522 l"gares in#l"indo as #orpora*=es' #ons"ltores e organiza*=es de treina entoD 9leito pela %yte Magazines #o o %est o- Co de. A4ardD N+rios livros es#ritosD Kr"pos de dis#"ss$o e peri<di#os #o di#as de desenvolvi ento na BorldBi)e LCons"lte ?s listas da &nterCet atrav:s da palavra DELPHIMD Dezenas de )i)liote#as e -erra entas para o s"porte e DelphiD Dezenas de artigos e p")li#a*=es do "ndo inteiro' tais #o o PC Week, InfoWorld, Computer Reseller News, PC Ma a!ine, Windows Sour"es e "itas o"tras. aiores
0or t"do a,"i e.posto -i#a #laro ,"e este no prod"to de onstra " a inova*$o para " a #ria*$o e alta per-or an#e de apli#a*=es. !odos os re#"rsos ,"e vo#@ pre#isar+ para o desenvolvi ento de se"s prod"tos est$o agora dispon/veis. Feliz desenvolvi ento. Fernando Antonio F. Ansel o Se pre ,"e vo#@ lo#alizar este s/ )olo signi-i#a ,"e e.iste " a nota ,"e lhe a6"dar+ e #aso de d;vida.
A01ndi.e A
Do.*men)a+,o
A do#" enta*$o in#l"/da #o o Delphi Client/Server>
Delphi #ser$s %uide Delphi Component Writer$s %uide Delphi Data&ase 'pli"ation Developer$s %uide S() )inks #ser$s %uide InterBase #ser$s %uide InterBase )an ua e Referen"e InterBase Data Definition ReportSmith Creatin Reports
!oda a do#" enta*$o : en#ontrada e -or a de livros e odo on-line Lpara o seg"ndo #aso -az-se ne#ess+ria a instala*$o do ACR(%A! Reader 5.2 ,"e a#o panha o prod"toM.
2ard3are4So5)3are re6*eridos
( Delphi Client/Server re,"er>
4. me a&/tes de espa0o livre para a instala01o m2nima 9. me a&/tes de espa0o livre para a instala01o "ompleta
um pro"essador 3.*34 ou maior 5634 re"omendado7
8 me a&/tes de R'M
0ara instalar' rode o progra a &CS!AEE.9J9 direto do CD R(M o" do dis,"ete e prossiga #o as instr"*=es. Ser$o in#l"/das in-or a*=es adi#ionais no ar,"ivo R9ADM9.!J! nor al ente instalado no diret<rio SD9E03&. Alg"ns e.e plos de apli#a*=es est$o #ontidas no diret<rio SD9E03&SD9M(S.
A01ndi.e !
Convers,o de Cam0os
G poss/vel' #o o D8)P9I' #riar os " es o siste a ,"e rode e di-erentes tipos de )ases' atrav:s de " ;ni#o ALIAS. 0ara isto pre#isa os ,"e a de-ini*$o' ta anho e no e dos #a pos e ta)elas se6a ne#essaria ente os es os. A)ai.o est+ a #onvers$o para ,"atro )ases l<gi#as de dados>
Sintaxe SQL - para InterBase' :R'C)8 ' Informi; entre o"tras. BD L!gico - A #ha ada do #a po interna ao D8)P9I. Paradox - %ases do tipo Parado;+ dBAS - %ases do !ipo .D%F.
Sinta.e S7E SMAEE&C! &C!9K9R D9C&MAEL.'yM CHM9R&CL.'yM FE(A!L.'yM C3ARAC!9RLnM NARC3ARLnM DA!9 %((E9AC %E(%Ln'1M %E(%Ln'5M %E(%Ln'8M %E(%Ln'1M %E(%Ln'5M !&M9 !&M9S!AM0 M(C9U AH!(&CC %U!9SLnM %D9 E<gi#o -ld&C!1Q -ld&C!85 -ld%CD -ldFE(A! -ldFE(A! -ldTS!R&CK -ldTS!R&CK -ldDA!9 -ld%((E -ldstM9M( -ldst%&CARU -ldstFM!M9M( -ldst(E9(%V -ldstKRA03&C -ld!&M9 -ld!&M9S!AM0 -ldFE(A!' -ldstM(C9U -ld&C!85' -ldstAH!(&CC -ld%U!9SLnM 0arado. Short Eong &nteger %CD C" )er C" )er Alpha Alpha Date Eogi#al Me o %inary For atted (E9 Kraphi# !i e !i esta p Money A"toin#re ent %ytes e o d%AS9 C" )er LQ'12M C" )er L52'1M C/A C" )er L.'yM Float L.'yM Chara#ter Chara#ter Date Eogi#al Me o %inary C$o Apresenta (E9 C$o Apresenta C$o Apresenta C$o Apresenta Float L52'1M C$o Apresenta C$o Apresenta
. W pre#is$o Lde-a"lt> espe#/-i#o para o driverM y W es#ala Lde-a"lt> 2M n W ta anho e )ytes Lde-a"lt> 2M 1-5 W %E(% s")tipo Lde-a"lt> 1M
Borland
1 at: 857Q7 1 6an 122 at: 11 6an 5911 0re#is$o> 1 at: 15 e es#ala de 1 at: 15 1'7 . 12-82X at: 1'7 . 1282X 8'1 . 12-8X at: 8'1 . 128X -5.117.1X8.Q1X at: 5.117.1X8.Q1X 0re#is$o> 1 at: 15 e es#ala de 1 at: 15 -85.7QX at: 85.7Q7 1 at: 857Q7
9spe#i-i#a-se por pre#is$o o n; ero de d/gitos a sere gravados e por es#ala o n; ero de #asas de#i ais' e.e plo D9C&MAEL12'8M : ig"al ao -or ato> ppppppp.eee. Htilizado para valores #ient/-i#os' #o de pre#is$o. 0re#is$o si ples' #o Ca po do tipo longo. 15 d/gitos
7 d/gitos de pre#is$o.
vari+vel
9spe#i-i#a-se por pre#is$o o n; ero de d/gitos a sere gravados e por es#ala o n; ero de #asas de#i ais' e.e plo CHM9R&CL12'8M : ig"al ao -or ato> ppppppp.eee. Ca po :dio.
SMAEE&C! NARC3ARLnM
1Q )its n Cara#teres
!a anho vari+vel de #ara#teres o" tipo de string. ( no e ta ): pode apresentar > 'AR(I#) C&AR o" 'AR(I#) C&ARAC" R.
*+
A01ndi.e C
0ara #o e*ar' #olo,"e e " novo -or "l+rio " o)6eto t"able e " o)6eto tQ/er0. ( o)6eto t"able e-et"ar+ a liga*$o #o a ta)ela de Clientes L!a)ela CustomerM' en,"anto ,"e o tQ/er0 ir+ e.trair os detalhes da en#o enda L!a)elas :rders, Parts e ItemsM apropriados a #ada #liente. (s dados est$o e " a ta)ela Parado;' pelo ,"e na propriedade DataBase#ame : #olo#ado o no e do diret<rio ,"e #ont: os dados Lo" de-ina o no e do Alias> D%De osM. A liga*$o : #o pletada atrav:s da de-ini*$o das propriedades "able#ame e Index#ame' e se alternar os a propriedade Active para true ve os os dados reais' es o d"rante a -ase de #onstr"*$o do -or "l+rio. Se os registros #ontendo os detalhes dos pedidos estivesse todos e " a ;ni#a ta)ela' a 6"n*$o poderia ser -a#il ente realizada pela de-ini*$o das propriedades MasterSo/rce e MasterField de " seg"ndo o)6eto ta)ela' as' " a vez ,"e ne#essita os de dados de ais de " a ta)ela L:rders e Produ"tsM' esta t:#ni#a si ples n$o -"n#iona. ( #ontrole de #ons"lta re#"pera " #on6"nto di-erente de registros para #ada #liente' e.traindo dados das d"as ta)elas
Borland
ligadas. ( Delphi o-ere#e d"as t:#ni#as para -azer isto> H a delas envolve o "so de vari+veis Cal#"ladas para " a das tr@s ta)elas e ,"est$oD " a o"tra L ais si plesM envolve ? atri)"i*$o de " valor ? propriedade SQL do o)6eto tQ/er0' o" se6a' " a instr"*$o SQL apropriada. Ceste e.e plo' va os -azer #olo#ando alg" #<digo no evento .nDataChange do o)6eto DataSo/rce. Ee )re-se ,"e este evento : #ha ado se pre ,"e o registro #orrente : alterado. &nsira a seg"inte instr"*$o na propriedade SQL do o)6eto tQ/er0>
S9E9C! (rders.(rderCo' &te s.7ty' 0arts.Des#ription' 0arts.Eist0ri#e FR(M (rders' &te s' 0arts B39R9 (rders.(rderCo W &te s.(rderCo ACD &te s.0artCo W 0arts.0artCo ACD (rders.C"stCo W >C"stCoD
Repare no #<digo SQL na vari+vel <CustNo' v+ para a propriedade Params do o)6eto tQ/er0 e #olo,"e para a vari+vel C"stCo #riada o Data t0pe #o o =loat' est+ vari+vel ser+ passada para o SQL atrav:s do evento .nDataChange do o)6eto DataSo/rce' insira o seg"inte #<digo>
proced/re !For 1.DataSo"r#e5DataChangeLSender> !()6e#tD Field> !FieldMD begin 7"ery1.CloseD 7"ery1.0ara sO2P.AsFloat >W !a)le1C"stCo.Nal"eD 7"ery1.(penD endD
%ase de Dados o)6eto DataSet Lt!a)le o" t7"eryM o)6eto DataSo"r#e o)6eto Ca po
( o)6eto DataSo/rce : ne#ess+rio' pois os o)6etos de #a po n$o pode direta ente aos o)6etos do DataSet' as apenas atrav:s de " o)6eto DataSo/rce.
ligar-se
0or #onseg"inte' para #ada o)6eto DataSet ta ): : #olo#ado no -or "l+rio " o)6eto DataSo/rce. Final ente' s$o adi#ionados o)6etos de #ai.a de edi*$o de te.to' " o)6eto )rid para as linhas da en#o enda e " o)6eto d)Cavigator ligado a ta)ela de Customer' rode o pro6eto. o)6eto )rid est+ ligado ao o)6eto tQ/er0 Latrav:s do o)6eto DataSo/rceM' ent$o este se at"aliza a"to ati#a ente #o os novos res"ltados das #ons"ltas.
*1
A01ndi.e D
Im0rimindo *m %orm*/7rio
0ara i pri ir " -or "l+rio n$o te nenh" segredo' e.iste o #o ando PRIN> rela#ionado a -or "l+rios' o pro)le a se ini#ia ,"ando o -or "l+rio "ltrapassa as di ens=es da tela do se" onitor' o" se6a' a larg"ra e alt"ra dele : aior ,"e a tela. Diga os " -or "l+rio ,"al,"er ,"e tenha a propriedade 3orzS#roll%ar.Range W 7QX e NertS#roll%ar.Range W 122X Listo #orresponde a " a -olha de papel ta anho A1M. ( progra a a)ai.o resolve e.ata ente este pro)le a' i pri indo so ente o)6etos> "label' " dit' "Memo' "DB"ext' "DB dit e "DBMemo' "tiliza a )i)liote#a Printers para -azer o servi*o' #olo,"e " )ot$o ,"al,"er no -or "l+rio ,"e dese6e i pri ir e para o evento onCli#F' digite os seg"intes #o andos>
proced/re !-or 1.Speed%"tton1Cli#FLSender> !()6e#tMD var C > arrayO2..555P o- #harD CEen' S#aleJ' S#aleU' &nd > &ntegerD For at > BordD DC > 3DCD MCo p > ! e oD R > !Re#tD begin 0rinter.%eginDo#D DC >W 0rinter.Canvas.3andleD S#aleJ >W KetDevi#eCapsLDC' E(K0&J9ESJM div 0i.els0er&n#hD S#aleU >W KetDevi#eCapsLDC' E(K0&J9ESUM div 0i.els0er&n#hD 2or &nd >W 2 to Co ponentCo"nt -1 do i2 LCo ponentsO&ndP is !C"sto Ea)elM or LCo ponentsO&ndP is !C"sto 9ditM then begin MCo p >W !Me oLCo ponentsO&ndPMD i2 LMCo p.visi)leM then begin 0rinter.Canvas.Font >W MCo p.FontD DC >W 0rinter.Canvas.3andleD R >W MCo p.%o"ndsRe#tD R.!op >W LR.!op Z NertS#roll%ar.0ositionM [ S#aleUD R.Ee-t >W LR.Ee-t Z 3orzS#roll%ar.0ositionM [ S#aleJD R.%otto >W LR.%otto Z NertS#roll%ar.0ositionM [ S#aleUD R.Right >W LR.Right Z 3orzS#roll%ar.0ositionM [ S#aleUD i2 Lnot LCo ponentsO&ndP is !C"sto Ea)elMM and LMCo p.%orderStyle W )sSingleM then 0rinter.Canvas.Re#tangleLR.Ee-t' R.!op' R.Right' R.%otto MD For at >W D!\E9F!D i2 LCo ponentsO&ndP is !9ditM or LCo ponentsO&ndP is !C"sto MasF9ditM then For at >W For at or D!\S&CKE9E&C9 or D!\NC9C!9R else begin i2 MCo p.BordBrap then For at >W D!\B(RD%R9A]D i2 MCo p.Align ent W taCenter then For at >W For at or D!\C9C!9RD
Borland
i2 MCo p.Align ent W taRightV"sti-y then For at >W For at or D!\R&K3!D R.%otto >W R.%otto Z 0rinter.Canvas.Font.3eight Z 1D endD CEen >W MCo p.Ket!e.t%"-LC'555MD R.Ee-t >W R.Ee-t Z S#aleJ Z S#aleJD Dra4!e.tLDC' C' CEen' R' For atMD endD endD 0rinter.9ndDo#D CloseD endD
Se vo#@ #onhe#e " po"#o de Pas"al ?+. n$o a#redito ,"e vo#@ teve di-i#"ldades e interpretar o progra a' se vo#@ n$o #onhe#e a,"i v$o alg" as di#as> &ni#ial ente -oi de#larado " a s:rie de vari+veis ,"e ser$o "tilizadas posterior ente. 9 ent$o ini#iado o o)6eto de i press$o Printer atrav:s do #o ando>
0rinter.%eginDo#D
( o)6eto i pri e atrav:s de " a s")#lasse #onhe#ida por Canvas. 9sta #lasse e ,"e torna poss/vel a #ria*$o de toda a inter-a#e gr+-i#a do Delphi L9ste o)6eto parte de " en#aps"la ento da Bindo4s 3DCM. H a -or a si ples de se i pri ir seria "tilizar os seg"intes #o andos>
0rinter.%eginDo#D 0rinter.Canvas.!e.t("tL2' 2' ^9st+ i pri indo...IMD 0rinter.9ndDo#D
Mas' para se o)ter " a #<pia -iel do -or "l+rio : pre#iso -azer ais do ,"e isto' ini#ial ente e #ha ada a propriedade handle Lesta -az " a #ha ada a Bindo4s KD& #ha ando -"n*=es da A0& para re,"erer o odo de desenho dos o)6etos envolvidosM' pr<.i o passo : veri-i#ar o tipo de es#ala Le pi.elsM da larg"ra e alt"ra da 6anela a ser i pressa. Agora resta veri-i#ar o)6eto a o)6eto Ldo tipo )a&el o" do tipo 8ditM e enviar s"as #ara#ter/sti#as para os dados da #lasse Canvas e i pri /-los. Ee )re-se o padr$o de i press$o do Bindo4s : e itir a listage so ente ,"ando a es a estiver #o pleta e isto s< a#onte#er+ no #o ando >
0rinter.9ndDo#D
H a o"tra sa/da para a i press$o de se"s relat<rios pode ser #onseg"ida atrav:s da "tiliza*$o de in; eras )i)liote#as prontas ,"e -aze o a#esso ao o)6eto >Printer. 9ntre elas e.iste a Report0rint Lda #evrona DesignsM ,"e pode ser ad,"irido " a vers$o de de onstra*$o atrav:s da internet atrav:s do seg"inte endere*o> -tp.pri enet.#o /"sers/6/6g"nFel
/delphi/rprinter.zip
*3
A01ndi.e E
+s#ara>
Ca"sa a digita*$o da +s#ara -i,"e parada no pri eiro #ara#ter' -azendo #o ,"e se ova . 9.> `D2D\ !odos os #ara#teres digitados ser$o #onvertidos para !odos os #ara#teres digitados ser$o #onvertidos para An"la o "so dos #ara#tes a e b. 9.> aaaabaaaaD2D\ Htilizado para
ar#ar deter inado #ara#ter n$o espe#ial #o o -i.o. 9.> `SL999SM222-2222D2D\ as n$o-o)rigat<rios' do tipo A-T' a-z. 9.> lllD1D\ as n$o-o)rigat<rios' do tipo A-T' a-z' 2-9.
Re,"er so ente #ara#teres al-a):ti#os o)rigat<rios para a posi*$o' do tipo A-T' a-z. 9.> EEED1D\ 0er ite so ente #ara#teres al-a):ti#os para a posi*$o' Re,"er so ente #ara#teres al-an" :ri#os o)rigat<rios para a posi*$o' do tipo A-T' a-z' 2-9. 9.> AAAD1D\ 0er ite so ente #ara#teres al-an" :ri#os para a posi*$o' 9.> aaaD1D\ Re,"er "
0er ite o "so de ,"al,"er #ara#ter para a posi*$o' li itando apenas o n; ero de #ara#teres "tilizados. 9.> ###D1D\ Re,"er so ente #ara#teres n" :ri#os o)rigat<rios para a posi*$o' do tipo 2-9. 9.> 222D1D\ 0er ite so ente #ara#teres n" :ri#os para a posi*$o' n$o-o)rigat<rios' do tipo 2-9. 9.> 999D1D\ 0er ite so ente #ara#teres n" :ri#os para a posi*$o e o "so dos sinais de - o" Z' n$o-o)rigat<rios. 9.> cccD1D\ Htilizado #o o separador de horas' Htilizado #o o separador de dia' in"tos e seg"ndos. @s e ano.
Borland
C90 3ora
Delphi e Delphi Client/Server 22222S-9999D2D\ `92>22>22 aEED2D\ 78215252 1222180M 78215-252 12>22>18 0M
*7
A01ndi.e %
Caption Ca e
Propriedades
Caption Ca e
Propriedades
( aior tra)alho da #odi-i#a*$o -i#aria por #onta de #riar 6anelas de Salvar e A)rir as todo esse tra)alho : realizado pelos o)6etos .penDialog e SaveDialog. ( resto do #<digo : )e si ples ve6a os> 0ara o evento .nClic4 do o)6eto %"t9.porta
Borland
i2 SaveDialog1.9.e#"te then begin S#reen.C"rsor >W #r3o"rKlassD 8ith !a)le1 do begin (penD FirstD i2 not 9(F then begin AssignFileLAr,' SaveDialog1.FileCa eMD ReBriteLAr,MD repeat BriteEnLAr,'Field%yCa eLf9 pCofM.AsString Z fdf Z Field%yCa eLfEastCa efM.AsString Z fdf Z Field%yCa eLfFirstCa efM.AsString Z fdf Z Field%yCa eLf0hone9.tfM.AsString Z fdf Z Field%yCa eLf3ireDatefM.AsString Z fdf Z Field%yCa eLfSalaryfM.AsString Z f[fMD ne.tD /ntil 9(FD CloseFileLAr,MD endD #loseD endD S#reen.C"rsor >W #rDe-a"ltD endD endD
&ni#ial ente va os e.portar o ar,"ivo Lno #aso 9 ployeeM' o -"n*$o do #o ando AssignFile e ini#iar " o)6eto de ar,"ivo te.to Ldeter inada pelo tipo de vari+vel "extFileM e o #o ando Re9rite prepara o o)6eto ini#iado para a grava*$o. Ee )re-se ,"e " ar,"ivo te.to s< pode re#e)er logi#a ente te.to de-inido pelos #o andos 9rite Linsere " te.to e deter inado ar,"ivo e o #"rsor de grava*$o per ane#e na posi*$oM e 9riteLn Linsere " te.to e deter inado ar,"ivo e o #"rsor de grava*$o ini#ia " a nova linhaM ent$o o ;ni#o tra)alho ser+ de per#orrer o nosso ar,"ivo #o o #o ando Repeat. 0ara o evento .nClic4 do o)6eto %"t& porta
proced/re !For 1.%"t& portaCli#FLSender> !()6e#tMD var Ar,> !e.tFileD !e.to> StringD &> &ntegerD 2/nction MontaNariavel> StringD var onta> StringD begin onta >W ffD in#L&MD 8hile !e.toO&P ba f[f do begin i2 !e.toO&P W fdf then )reaFD onta >W onta Z !e.toO&PD in#L&MD endD
+:
Borland
res"lt >W endD
ontaD
begin i2 (penDialog1.9.e#"te then begin S#reen.C"rsor >W #r3o"rKlassD !a)le1.(penD AssignFileLAr,' (penDialog1.FileCa eMD ResetLAr,MD i2 not 9(FLAr,M then repeat ReadEnLAr,'!e.toMD 8ith !a)le1 do begin &nsertD i >W 2D Field%yCa eLf9 pCofM.AsString >W MontaNariavelD Field%yCa eLfEastCa efM.AsString >W MontaNariavelD Field%yCa eLfFirstCa efM.AsString >W MontaNariavelD Field%yCa eLf0hone9.tfM.AsString >W MontaNariavelD Field%yCa eLf3ireDatefM.AsString >W MontaNariavelD Field%yCa eLfSalaryfM.AsString >W MontaNariavelD 0ostD endD /ntil 9(FLAr,MD CloseFileLAr,MD !a)le1.CloseD S#reen.C"rsor >W #rDe-a"ltD endD endD
Na os agora i portar o ar,"ivo Lno #aso 9 ployeeM' o -"n*$o do #o ando AssignFile e ini#ar " o)6eto de ar,"ivo te.to Ldeter inada pelo tipo de vari+vel "extFileM e o #o ando Reset prepara o o)6eto ini#iado para a grava*$o. (s #o andos de leit"ra s$o Read LE@ " #ara#tere de deter inado ar,"ivoM e ReadLn LE@ " a linha de deter inado ar,"ivoM ent$o o tra)alho agora ser+ de separar e peda*os a linha lida isto : realizado na -"n*$o Monta'ariavel ,"e ler+ peda*os de ar#ados do ar,"ivo e.portado.
+*
Borland
A01ndi.e '
alteradasM
5. Co o pa"sar "
var C" Se#> S all&ntD Start!i e> Eong&ntD )egin Start!i e >W Co4D repeat Appli#ation.0ro#essMessagesD "ntil Co4 a Start!i e Z C" Se# [ L1/51/Q2/Q2MD endD
8. Co o ostrar o
try S#reen.C"rsor >W #r3o"rKlassD g 9s#reva o a*$o a e.e#"tar a,"i h -inally S#reen.C"rsor >W #rDe-a"ltD endD Appli#ation.0ro#essMessagesD
pro#ed"re !For 1.D%KridDra4DataCellLSender> !()6e#tD #onst Re#t> !Re#tD Field> !-ieldD State> !KridDra4StateMD )egin i- !a)le1Client.AsString W ^JJJJI then )egin D%Krid.Canvas.%r"sh.Color >W #lRedD D%Krid.Canvas.Font.Color >W #lSilverD D%Krid.Canvas.FillRe#tLRe#tMD g Desenha o pano de -"ndo h D%Krid1.Canvas.!e.t("tLRe#t.Ee-tZ5' Re#t.!opZ1' Field.AsStringMD endD endD
++
Borland
Q. Co o #ha ar " o"tro progra a Ltipo o notepad do Bindo4sM a partir de " Lde tr@s aneiras di-erentes> nor al' a.i izado e ini izadoM>
Bin9.e#L^C>S4indo4sSnotepad.e.eI' SB\S3(BC(RMAEMD Bin9.e#L^C>S4indo4sSnotepad.e.eI' SB\S3(BMAJ&M&T9DMD Bin9.e#L^C>S4indo4sSnotepad.e.eI' SB\S3(BM&C&M&T9DMD
apli#ativo
-"n#tion !esta0ara0arL!esta&nteiro > &ntegerM > )ooleanD )egin i- L!esta&nteiro div 5M W L!esta&nteiro/5M then res"lt >W !r"e else res"lt >W FalseD endD
inteiro>
-"n#tion &s&ntegerL!estaString> StringM > )ooleanD )egin try Str!o&ntL!estaStringMD e.#ept (n 9Convert9rror do res"lt >W FalseD else res"lt >W !r"eD endD endD
+;