Del phi 5

DELPHI 5

Del phi 5
I NDI CE
O Ambiente de Desenvolvimento do Delphi 5.0 _____________________________________7
A Janela Principal __________________________________________________________________________ 7 A Paleta de Componentes ___________________________________________________________________ 7 A Barra de Ferramentas _____________________________________________________________________ 8 A Barra de Menus e os Menus de atalho ________________________________________________________ 9 Os Formulários ____________________________________________________________________________ 9 O Editor de Código _________________________________________________________________________ 9 O Code Explorer ___________________________________________________________________________ 9 O Object Inspector ________________________________________________________________________ 10 Navegando pelo ambiente __________________________________________________________________ 10 Formulários e Units________________________________________________________________________ 11 O que é o arquivo de projeto ________________________________________________________________ 11 Visualizando e entendendo o arquivo de projeto _________________________________________________ 11 Alterando o arquivo de projeto _______________________________________________________________ 12 Usando o Project Manager __________________________________________________________________ 13 Usando Project Groups ____________________________________________________________________ 13 Salvando um Project Group _________________________________________________________________ 14 Adicionando e removendo projetos em um Project Group__________________________________________ 14 Ativando um projeto _______________________________________________________________________ 14 Compilando e executando projetos ___________________________________________________________ 14 Compilando projetos_______________________________________________________________________ 14 Compilando Project Groups _________________________________________________________________ 14 Executando o aplicativo gerado ______________________________________________________________ 15 Arquivos .DFM ___________________________________________________________________________ 15 Arquivos .DCU ___________________________________________________________________________ 15 Arquivos .RES, .DOF e .CFG ________________________________________________________________ 16 Tipos de componentes _____________________________________________________________________ 16 Componentes visuais. _____________________________________________________________________ 16 Propriedades_____________________________________________________________________________ 16 Alterando propriedades em tempo de desenvolvimento _________________________________________ 16 Alterando propriedades em tempo de execução _______________________________________________ 18 Eventos _________________________________________________________________________________ 18 Associando código a um evento ___________________________________________________________ 18 Apagando eventos ______________________________________________________________________ 19 Métodos ________________________________________________________________________________ 19 Adicionando componentes a um formulário _____________________________________________________ 19 Manipulando componentes__________________________________________________________________ 20 Selecionando e redimensionando componentes _______________________________________________ 20 Duplicando e transferindo componentes _______________________________________________________ 21 Alinhando, travando e sobrepondo os componentes ______________________________________________ 21 Alinhando pela grade ____________________________________________________________________ 22 Travando componentes __________________________________________________________________ 23 Controlando a sobreposição de componentes_________________________________________________ 23 Adicionando formulários ____________________________________________________________________ 23 Especificando o formulário principal___________________________________________________________ 23 Ligando formulários _______________________________________________________________________ 24 Propriedades dos formulários________________________________________________________________ 25 Eventos dos formulários ____________________________________________________________________ 25 Métodos dos formulários ___________________________________________________________________ 26 Mostrando formulários _____________________________________________________________________ 26 A propriedade ModalResult _______________________________________________________________ 26 Usando o teclado com formulários ____________________________________________________________ 27 Alterando a ordem de tabulação______________________________________________________________ 27 Evitando que um componente receba o foco ____________________________________________________ 27

Estrutura de um aplicativo no Delphi_____________________________________________11 Trabalhando com Projetos ____________________________________________________11

Arquivos gerados pelo Delphi __________________________________________________15

Componentes e seus conceitos básicos __________________________________________16

Formulários e Caixas de Diálogo _______________________________________________23

Del phi 5
Controlando a criação dos formulários_________________________________________________________ 28 Imprimindo formulários _____________________________________________________________________ 28 Utilizando o objeto TFrame__________________________________________________________________ 29 Caixas de diálogo predefinidas_______________________________________________________________ 30

Trabalhando com menus _____________________________________________________32

Adicionando menus e abrindo o Menu Designer _________________________________________________ 32 Os componentes de menus _________________________________________________________________ 32 Construindo menus principais _______________________________________________________________ 32 Definindo "teclas de aceleração" e teclas de atalho_______________________________________________ 33 Criando submenus ________________________________________________________________________ 33 Construindo menus popup __________________________________________________________________ 34 Associando código aos comandos de um menu _________________________________________________ 34 Trabalhando com vários menus ______________________________________________________________ 35 Propriedades comuns______________________________________________________________________ 35 Eventos comuns __________________________________________________________________________ 37 Componente Button _______________________________________________________________________ 37 Propriedades __________________________________________________________________________ 37 Eventos_______________________________________________________________________________ 37 Componente Edit _________________________________________________________________________ 38 Propriedades __________________________________________________________________________ 38 Eventos_______________________________________________________________________________ 38 Componente Label ________________________________________________________________________ 38 Propriedades __________________________________________________________________________ 38 Eventos_______________________________________________________________________________ 39 Componente Memo _______________________________________________________________________ 39 Propriedades __________________________________________________________________________ 39 A propriedade Lines _____________________________________________________________________ 40 Eventos_______________________________________________________________________________ 41 Componente ListBox ______________________________________________________________________ 41 Propriedades __________________________________________________________________________ 41 Eventos_______________________________________________________________________________ 42 Componente ComboBox ___________________________________________________________________ 42 Propriedades __________________________________________________________________________ 42 Eventos_______________________________________________________________________________ 43 Componente CheckBox ____________________________________________________________________ 43 Propriedades __________________________________________________________________________ 43 Eventos_______________________________________________________________________________ 44 Componente RadioButton __________________________________________________________________ 44 Componente RadioGroup___________________________________________________________________ 44 Componente GroupBox ____________________________________________________________________ 44 Componente Panel ________________________________________________________________________ 45 Componente BitBtn________________________________________________________________________ 45 Usando o comando de atribuição _____________________________________________________________ 46 Entendendo identificadores _________________________________________________________________ 46 Declarando variáveis ______________________________________________________________________ 47 Tipos de variáveis ______________________________________________________________________ 47 Declarando constantes _____________________________________________________________________ 47 Tipos estruturados ________________________________________________________________________ 48 Tipos enumerados ________________________________________________________________________ 48 Arrays unidimensionais - Vetores _____________________________________________________________ 49 Arrays multidimensionais - Matrizes ___________________________________________________________ 49 Strings__________________________________________________________________________________ 50 Registros (Records) _______________________________________________________________________ 50 Controle de fluxo__________________________________________________________________________ 51 Usando blocos _________________________________________________________________________ 51 If-then-else ____________________________________________________________________________ 51 Usando else ___________________________________________________________________________ 51 Usando blocos com o comando if __________________________________________________________ 52 Aninhando comandos if __________________________________________________________________ 52 A estrutura case ________________________________________________________________________ 53 Usando loops __________________________________________________________________________ 53

Componentes visuais comuns _________________________________________________35

A linguagem Object Pascal ____________________________________________________46

Del phi 5 O loop for ________________________________________________________________________________________________ 53 O loop while ______________________________________________________________________________________________ 54 O loop repeat _____________________________________________________________________________________________ 54 O comando break__________________________________________________________________________________________ 55 O comando continue _______________________________________________________________________________________ 56 Procedures e Functions ____________________________________________________________________ 56 Definindo o valor de retorno de uma function _________________________________________________ 57 Chamando procedures e functions _________________________________________________________ 57 Onde criar procedures e functions __________________________________________________________ 57 Trabalhando com Exceções _________________________________________________________________ 58 Entendendo o código das Units ________________________________________________59 Rotinas úteis _______________________________________________________________60 O Editor de Código __________________________________________________________61 A estrutura básica de uma Unit ______________________________________________________________ 59 Rotinas para manipulação de strings __________________________________________________________ 60 Funções de conversão de tipo _______________________________________________________________ 60 Técnicas de navegação ____________________________________________________________________ 62 Usando Bookmarks _____________________________________________________________________ 62 Usando o recurso Code Browser ___________________________________________________________ 63 Os controles de navegação do Editor de Código _________________________________________________ 64 Localizando textos no arquivo atual_________________________________________________________ 64 Localizando textos em vários arquivos ______________________________________________________ 65 Outras técnicas para localização ___________________________________________________________ 65 Substituindo textos ______________________________________________________________________ 66 Configurando o Editor de Código ___________________________________________________________ 66 Code Parameters _______________________________________________________________________ 69 Code Templates ________________________________________________________________________ 70 Configurando os recursos do Code Insight ___________________________________________________ 71 Opções importantes da página Display _________________________________________________________________________ 67 Opções importantes da página Colors__________________________________________________________________________ 67 Usando os recursos Code Insight _____________________________________________________________________________ 68 Code Completion __________________________________________________________________________________________ 69 O depurador integrado _______________________________________________________72 Erros e tipos de erros ______________________________________________________________________ 72 Utilidades do Depurador ____________________________________________________________________ 73 Executando um programa até a posição do cursor _____________________________________________ 73 Executando um programa linha por linha ____________________________________________________ 73 O comando Trace Into ___________________________________________________________________ 74 O comando Step Over ___________________________________________________________________ 74 Usando os dois comandos ________________________________________________________________ 74 Interrompendo a execução________________________________________________________________ 74 Usando Breakpoints _______________________________________________________________________ 74 Definindo breakpoints____________________________________________________________________ 74 Mostrando os breakpoints definidos ________________________________________________________ 75 Verificando variáveis e expressões ___________________________________________________________ 76 Trabalhando com Watches _______________________________________________________________ 76 Avaliando e modificando expressões________________________________________________________ 76 A arquitetura de acesso a bancos de dados ____________________________________________________ 77 A arquitetura de acesso a bancos de dados no Delphi .Componentes básicos_________________________ 78 A Página Data Acess ____________________________________________________________________ 78 A página Data Controls __________________________________________________________________ 79 Um exemplo típico ________________________________________________________________________ 80 Usando o DataBase Desktop ________________________________________________________________ 80 Definindo um Alias ______________________________________________________________________ 80 Alterando o diretório de trabalho ___________________________________________________________ 82 Criando tabelas ________________________________________________________________________ 82 Adicionando dados a uma tabela ___________________________________________________________ 83 Alterando a estrutura de uma tabela ________________________________________________________ 84 Trabalhando com DataSets _________________________________________________________________ 85 Abrindo e fechando DataSets _____________________________________________________________ 85 Estados de um DataSet __________________________________________________________________ 85 Trabalhando com bancos de dados no Delphi: uma visão geral________________________77 Introdução ao Acesso a bancos de dados ________________________________________79 .

Del phi 5 Navegando em um DataSet _______________________________________________________________ 86 Modificando Datasets____________________________________________________________________ 87 Modificando campos ____________________________________________________________________ 88 Adicionando registros____________________________________________________________________ 88 Apagando registros _____________________________________________________________________ 89 Confirmando e cancelando mudanças_______________________________________________________ 89 Inserindo e Modificando registros inteiros ____________________________________________________ 89 Localizando registros com Locate __________________________________________________________ 90 Filtrando DataSets ______________________________________________________________________ 91 Usando Filter e Filtered __________________________________________________________________ 91 Usando o evento OnFilterRecord___________________________________________________________ 92 Eventos dos DataSets ___________________________________________________________________ 92 Controlando a atualização de componentes ____________________________________________________ 92 Componentes DataControls e Table Usando o componente DataSource______________________________ 93 Propriedades do componente DataSource ___________________________________________________ 93 Eventos do componente DataSource _______________________________________________________ 93 Usando o componente Table ________________________________________________________________ 94 Conectando-se a uma tabela de banco de dados ______________________________________________ 94 Controlando o acesso a uma tabela ________________________________________________________ 94 Trabalhando com Ranges ________________________________________________________________ 94 Componentes TField ______________________________________________________________________ 95 Criando campos persistentes______________________________________________________________ 95 Tipos de campos persistentes _____________________________________________________________ 96 Campos calculados _______________________________________________________________________ 97 Campos lookup___________________________________________________________________________ 98 Propriedades dos componentes TField ______________________________________________________ 99 O componente Batchmove _________________________________________________________________ 100 Configuração básica____________________________________________________________________ 100 Modos de operação ____________________________________________________________________ 100 Executando a operação de transferência ___________________________________________________ 100 Lidando com erros na transferência________________________________________________________ 101 Componentes DataControls ________________________________________________________________ 102 Propriedades DataSource e DataField _____________________________________________________ 102 Componente DBEdit ______________________________________________________________________ 102 Componente DBText _____________________________________________________________________ 102 Componente DBMemo ____________________________________________________________________ 102 Componente DBCheckBox_________________________________________________________________ 103 Componente DBRadioGroup _______________________________________________________________ 103 Componente DBImage ____________________________________________________________________ 103 Componentes DBListBox e DcomboBox ______________________________________________________ 104 Componentes DBLookupList e DBLookupCombo _______________________________________________ 104 Componente DBNavigator _________________________________________________________________ 105 Componente DBGrid _____________________________________________________________________ 106 O componente Query _____________________________________________________________________ 106 Configurando um componente Query ______________________________________________________ 106 Especificando a consulta SQL a ser executada_______________________________________________ 107 Trabalhando com parâmetros ____________________________________________________________ 108 Executando consultas __________________________________________________________________ 109 A linguagem Local SQL ___________________________________________________________________ 109 As duas partes de SQL _________________________________________________________________ 109 O comando SELECT ___________________________________________________________________ 110 Usando IN e BETWEEN_________________________________________________________________ 110 Usando LIKE e caracteres "curinga" _______________________________________________________ 111 Usando funções de agregação ___________________________________________________________ 111 O comando INSERT____________________________________________________________________ 111 O comando UPDATE ___________________________________________________________________ 111 O comando DELETE ___________________________________________________________________ 112 A linguagem de definição de dados O comando CREATE TABLE ________________________________ 112 O comando ALTER TABLE ______________________________________________________________ 112 O comando DROP TABLE _______________________________________________________________ 113 O comando CREATE INDEX _____________________________________________________________ 113 O comando DROP INDEX _______________________________________________________________ 113 Conexões ADO __________________________________________________________________________ 113 O componente TADOConnection__________________________________________________________ 115 Principais Propriedades ____________________________________________________________________________________ 115 Principais Eventos ________________________________________________________________________________________ 115 .

Del phi 5 TADOTable___________________________________________________________________________ 116 Principais métodos________________________________________________________________________________________ 116 Principais Propriedades ____________________________________________________________________________________ 116 Principais Eventos ________________________________________________________________________________________ 116 Principais Métodos________________________________________________________________________________________ 117 Principais Propriedades ____________________________________________________________________________________ 117 Principais Eventos ________________________________________________________________________________________ 118 Principais Metodos________________________________________________________________________________________ 118 TADOQuery __________________________________________________________________________ 117 TADODataSet_________________________________________________________________________ 118 TADOCommand _______________________________________________________________________ 118 TADOStoredProc ______________________________________________________________________ 119 TRDSConnection ______________________________________________________________________ 119 Componentes da palheta Interbase __________________________________________________________ 120 TIBDatabase__________________________________________________________________________ 120 TIBTransaction ________________________________________________________________________ 120 Principais Propriedades ____________________________________________________________________________________ 118 Principais Métodos________________________________________________________________________________________ 119 Principais Propriedades ____________________________________________________________________________________ 119 Palheta Interbase _________________________________________________________________________________________ 119 Principais Propriedades ____________________________________________________________________________________ 120 Principais Eventos ________________________________________________________________________________________ 120 Principais Propriedades: ___________________________________________________________________________________ 120 Principais Eventos ________________________________________________________________________________________ 120 Principais Métodos________________________________________________________________________________________ 120 Principais Propriedades ____________________________________________________________________________________ 121 Principais Propriedades ____________________________________________________________________________________ 121 Principais Propriedades ____________________________________________________________________________________ 121 Principais Propriedades ____________________________________________________________________________________ 121 Principais Propriedades ____________________________________________________________________________________ 122 Principais Eventos ________________________________________________________________________________________ 122 Principais Propriedades ____________________________________________________________________________________ 122 Principais Eventos ________________________________________________________________________________________ 122 Principais Metodos________________________________________________________________________________________ 122 Principais Propriedades: ___________________________________________________________________________________ 123 TIBTable _____________________________________________________________________________ 121 TIBQuery ____________________________________________________________________________ 121 TIBStoredProc ________________________________________________________________________ 121 TIBUpdateSQL ________________________________________________________________________ 121 TIBDataSet ___________________________________________________________________________ 122 TIBSQL______________________________________________________________________________ 122 TIBDatabaseInfo_______________________________________________________________________ 123 TIBSQLMonitor________________________________________________________________________ 124 TIBEvents ____________________________________________________________________________ 124 Componentes QuickReport ______________________________________________________________ 124 Os componentes do QuickReport ___________________________________________________________ 125 Criando um relatório simples _____________________________________________________________ 125 O Componente QuickRep _______________________________________________________________ 127 Principais Propriedades ____________________________________________________________________________________ 124 Principais Eventos ________________________________________________________________________________________ 124 Principais Metodos________________________________________________________________________________________ 124 Outros componentes importantes ___________________________________________________________ 128 O Componente QRLabel ________________________________________________________________ 129 O Componente QRDBText_______________________________________________________________ 129 O Componente QRSysData ______________________________________________________________ 129 O Componente QRExpr _________________________________________________________________ 129 Criando relatórios com agrupamento _________________________________________________________ 129 Palheta Servers _______________________________________________________________________ 132 Control Panel Applet ___________________________________________________________________ 134 Objeto TAppletModule __________________________________________________________________ 135 Internet Express _______________________________________________________________________ 135 Utilizando o DBNavigator com XML ________________________________________________________ 139 Bandas e tipos de bandas __________________________________________________________________________________ 127 Alterando a formatação geral do relatório ______________________________________________________________________ 127 Propriedades comuns a todas as bandas ______________________________________________________________________ 128 Principais Propriedades ____________________________________________________________________________________ 135 Principais Eventos ________________________________________________________________________________________ 135 .

clique na " aba" cor r es pondente. A paleta de componentes é dividida em vár ias páginas . a Paleta de Componentes e a B ar r a de Fer r amentas (todas des cr itas a s eguir ). O am bi en t e de des envolvi m ent o do D el ph i Nes te capítulo. As páginas mais us adas s ão a S tandar d (com componentes bás icos .la nor malmente. apes ar de ter uma apar ência difer ente do nor mal. AJanelaPrincipal Na Janela Pr incipal.la.0 O Delphi ofer ece um ambiente vis ual de des envolvimento r ico e ver s átil. Additional (com alguns componentes es peciais ).la e movê. Os que nunca us ar am outr o ambiente vis ual de des envolvimento como o Delphi (Vis ual B as ic. es tão a B ar r a de Menus . natur almente. na par te de cima da paleta de componentes . A Janela P r i ncipal APaletade C omponentes A paleta de componentes é uma das par tes mais utilizadas do Delphi. Minimizar a j anela pr incipal. Difer entemente de aplicativos comuns . Es s as páginas s ão ilus tr adas a s eguir . todo o ambiente (o Delphi inteir o) é fechado.los a for mulár ios . É a par tir des s a paleta que s e pode es colher componentes e adicioná. Por tanto é pos s ível minimizá. como botões e caix as de tex to).Del phi 5 OA mbiente de Desenvolvimento do Delphi 5. minimiza todas as outr as j anelas do Delphi – não é neces s ár io minimizar ou fechar cada uma das outr as j anelas pr imeir o. O ambiente do Delphi é compos to por vár ias j anelas independentes que podem s er s obr epos tas e r eor ganizadas livr emente na tela. como o Wor d e o Ex cel da Micr os oft. Par a pas s ar de uma página par a outr a. . localizada na par te de cima da tela. A j anela pr incipal é uma j anela comum. Quando a j anela pr incipal do Delphi é fechada. Vis ual C+ + . etc. max imizá. e as páginas Data Acces s e Data Contr ols (par a aces s o e manipulação de bancos de dados ). apr es entar emos as par tes pr incipais do ambiente de des envolvimento do Delphi.) podem es tr anhar inicialmente a or ganização vis ual do ambiente. o Delphi não é uma aplicativo MDI (com uma j anela pr incipal capaz de conter vár ias j anelas s ecundár ias ). Power B uilder . Cada página contém um conj unto de componentes r elacionados .

los . Finalmente. clique com o botão dir eito em qualquer local dentr o da bar r a e des ative/ative a opção cor r es pondente (vej a a figur a abaix o). você pode alter ar a or dem dos botões ar r as tando. Adici on an do bot ões à bar r a de f er r am ent as Ainda com a caix a de diálogo " Cus tomize" aber ta. Aqui s ão mos tr ados todos os comandos do Delphi. clique na aba " Commands " . clique na aba " T oolbar " . A bar r a de fer r amentas é for mada por vár ias par tes que podem s er r eor ganizadas livr emente.Del phi 5 ABarrade Ferramentas A B ar r a de Fer r amentas ofer ece aces s o r ápido aos comandos mais comuns do Delphi. par a fazer com que par tes da bar r a de fer r amentas voltem à s ua configur ação or iginal (a mes ma logo depois da ins talação do Delphi).os par a outr as pos ições da bar r a. . Par a es conder /mos tr ar uma des s as par tes . Par a r emover um botão. Na caix a de diálogo que apar ece. como cr iar for mulár ios . s imples mente ar r as te.o par a for a da bar r a de fer r amentas . A bar r a de fer r amentas pode s er configur ada de vár ias for mas . Par a cr iar um botão par a um comando. r etir ar botões da bar r a ou r eor dená. por ex emplo.s e. clique na bar r a com o botão dir eito e es colha o comando Cus tomize. chame o comando Cus tomize. ou compilar e ex ecutar aplicativos . abr ir e s alvar ar quivos . s elecione a par te que des ej a alter ar e clique no botão " Res et" . adicionar botões par a comandos chamados fr eqüentemente. Pode. Mos t r an do/ es con den do par t es da bar r a de f er r am en t as Par a adicionar um botão. ar r as te o comando par a a bar r a.

apenas par a comandos pouco comuns . Pode. ou cr ia um novo pr oj eto. O Formulários s Os for mulár ios (e o código as s ociado a eles .s e mudar de uma Unit par a outr a. Quando você entr a no Delphi. métodos . clas s es e pr opr iedades definidas na Unit. s er des de a j anela pr incipal até uma pequena caix a de mens agem. as Units ) cons tituem o cor ação de um aplicativo no Delphi. no Delphi – que contr ola como os componentes dos for mulár ios r eagem às ações do us uár io (os eventos ).s e as abas na par te de cima da j anela (vej a a figur a). Ver emos detalhes s obr e o Editor de Código mais adiante. As Units s ão ex ibidas no Editor de Código (Code Editor ). por ex emplo. Os menus de atalho (chamados com o botão dir eito do mous e) s ão muito us ados no Delphi. intr oduzido no Delphi 5. us ando. Os comandos mais comuns (como s alvar um ar quivo ou compilar um pr oj eto.Del phi 5 ABarrade Menus e os Menus de atalho Na bar r a de menus es tão todos os comandos que podem s er chamados no Delphi. per mite a navegação r ápida entr e par tes de uma Unit aber ta no Editor de Código. um for mulár io vazio é cr iado automaticamente. Nele é ex ibido um diagr ama hier ár quico. O Editor de Código pode mos tr ar vár ias Units ao mes mo tempo. com todas as var iáveis .0. podem s er chamados mais r apidamente us ando teclas de atalho. Há menus de atalho as s ociados a pr aticamente todas as par tes do ambiente de des envolvimento. OEditor de C ódigo A todo for mulár io. Os for mulár ios s ão as par tes vis íveis de um aplicativo no Delphi. For mulár ios podem s er us ados com muitas funções difer entes em um aplicativo. ou us ando os botões da bar r a de fer r amentas . A bar r a de menus é us ada. etc. nor malmente. por ex emplo). lis tas . Par a navegar par a um item es pecífico do código da Unit (a definição de um . O Code Ex plor er é ger almente pos icionado à es quer da do Editor de Código (vej a a figur a anter ior ). Neles s ão ins er idos componentes como botões . Um for mulár io pode. é as s ociado um pr ogr ama – chamado de Unit. O E di t or de Código e o Code E x pl or er OC Explorer ode O Code Ex plor er . tipos .

la. r ealize uma das s eguintes ações . Par a adicionar um novo item clique com o botão dir eito em um item de mes mo tipo e es colha o comando " New" . D I CA: Como padr ão. Ver emos como us ar o Obj ect ins pector em detalhe. O Delphi ofer ece vár ios r ecur s os par a navegar entr e es s as j anelas . ou quando um pr oj eto é aber to. ou es colha o comando View | Obj ect I ns pector . OO bject Inspector O Obj ect I ns pector (tr adução liter al: " I ns petor de obj etos " ) é us ado par a definir pr opr iedades e eventos par a os componentes . Edit| Envir onment options . ou es colha o comando View | T oggle For m /Unit.lo par a a fr ente das outr as j anelas : pr es s ione F11.Del phi 5 método ou var iável. mais adiante no cur s o. ou par a adicionar novos itens . s ão cr iadas muitas j anelas . s imples mente clique duas vezes no nome do item. o Code Ex plor er é ex ibido s empr e que o Delphi é inicializado. Par a que o Delphi não ex iba o Code Ex plor er automaticamente. bas ta es colher s eu nome nes s a lis ta. Par a alter nar entr e um for mulár io e a Unit as s ociada. es colha o comando View | Units (ou pr es s ione CT RL+ F12) e clique duas vezes no nome da Unit par a ex ibi. mude par a a página " Ex plor er " e des ative a opção " Automatically s how Ex plor er " . Par a ex ibir /es conder o Obj ect I ns pector . Par a s elecionar um componente. Outr a função impor tante do Obj ect I ns pector é s elecionar componentes por nome. pr es s ione F12. . As lis tas de pr opr iedades e eventos ex ibidas no Obj ect I ns pector mudam de acor do com o componente s elecionado. ou clique no botão T oggle For m/Unit na bar r a de fer r amentas (vej a figur a a s eguir ). Par a es conder o Code Ex plor er . Uma lis ta com o nome e o tipo de todos os componentes do for mulár io ativo s ão ex ibidos na par te de cima do Obj ect I ns pector . O Code Ex plor er pode s er us ado também par a r enomear itens . por ex emplo). Par a voltar a ex ibi. Par a ex ibir uma lis ta das Units no pr oj eto e ex ibir uma delas no Editor de Código. us e o comando View| Obj ect I ns pector . ou pr es s ione F11. clique no pequeno " x " no s eu canto dir eito. Par a mos tr ar o Obj ect I ns pector ou tr azê. Par a r enomear um item. clique no nome do item com o botão dir eito e es colha o comando " Rename" .lo. A combinação CT RL+ S HI FT + E também pode s er us ada par a alter nar entr e o Code Ex plor er e o Editor de Código. us e o comando View | Code ex plor er ou pr es s ione CT RL+ S HI FT + E . es colha o comando View | Window Lis t e clique duas vezes no nome da j anela. Navegando pelo ambiente Dur ante o des envolvimento de um aplicativo no Delphi. Par a tr azer uma j anela que não es tá vis ível par a a fr ente.

Quando você compila um pr oj eto no Delphi.Del phi 5 Par a ex ibir uma lis ta dos for mulár ios no pr oj eto e ex ibir um deles . Um ar quivo de pr oj eto é cr iado automaticamente quando o Delphi é inicializado. podes e cr iar Units independentes . o ar quivo de pr oj eto é o pr imeir o a s er compilado. us ando o Obj ect I ns pector e comandos de menu. aplicativo cr iado no Delphi é bas eada nos Delphi cr ia uma Unit as s ociada. O ar quivo de pr oj eto é um ar quivo tex to comum es cr ito em Obj ect Pas cal. Em outr as palavr as . com código que é compar tilhado por vár ios for mulár ios . o Delphi acr es centa a s ua declar ação ao código da Unit. us ados na cr iação de um aplicativo. Quando um componente é adicionado. e o código N OT A: Apes ar de s er comum cr iar aplicativos que s ó tenham Units as s ociadas a for mulár ios . par a ger ar o ar quivo final do aplicativo (em ger al. Trabalhando comProjetos Pr oj eto é o nome dado pelo Delphi ao conj unto de todos os for mulár ios . como ver emos depois . es colha o comando View | For ms (ou pr es s ione S HI FT + F12) e clique duas vezes no nome do for mulár io. . As Units contêm as declar ações (o nome e o tipo) de par a os eventos definidos par a es s es componentes . Par a vis ualizar o ar quivo de pr oj eto do pr oj eto atual. Na maior ia das vezes não s e deve alter ar dir etamente o código ger ado pelo Delphi. Par a cada for mulár io adicionado a um aplicativo. um ar quivo ex ecutável). A par tir dele. por ex emplo. Par a cada pr oj eto. Quando um componente é r emovido. Units e outr os obj etos devem s er compilados também. us e o comando Pr oj ect | View S our ce. Outr a função impor tante do ar quivo de pr oj eto é contr olar a or dem de cr iação dos for mulár ios . ou manipulando os componentes dir etamente no for mulár io. um pr oj eto é o código fonte us ado par a ger ar um aplicativo no Delphi. O código ger ado pode s er alter ado indir etamente. por maior que s ej a. Uma Unit Pas cal. Estruturade umaplicativo no Delphi Formulários e Units T oda a par te vis ual e toda a inter ação com o us uár io de um for mulár ios . s ua declar ação é r emovida também. Units e outr os obj etos . Visualizando e entendendo o arquivo de projeto O ar quivo de pr oj eto não é mos tr ado automaticamente no Editor de Código. há apenas um ar quivo de pr oj eto. B oa par te do código das Units é ger ado e mantido automaticamente pelo Delphi. Oque é o arquivo de projeto Par a cada pr oj eto. ou quando um novo pr oj eto é cr iado. o Delphi s abe ex atamente quais for mulár ios . a linguagem de pr ogr amação us ada cada componente no for mulár io. ou até vár ios aplicativos . que contém infor mações s obr e todas as par tes de um pr oj eto. o Delphi mantém um ar quivo de pr oj eto. o (tr adução liter al: " Unidade" ) é um pr ogr ama completo em Obj ect no Delphi.

como car r egar ou ler ar quivos de inicialização. A pr imeir a linha do ar quivo de pr oj eto contém o nome do pr oj eto.Run ex ecuta o aplicativo. e é ger almente o nome do ar quivo. Evite.pas " . N OT A: as chaves indicam comentár ios no Delphi. o us o da palavr a " pr oj ect" s er ia mais adequado no Delphi.. além de outr as infor mações impor tantes .pas " . Application.} indica o ar quivo de r ecur s os (Res our ce file) que es tá as s ociado ao pr oj eto. delimitado pelas palavr as . A palavr a " pr ogr am" é us ada par a manter compatibilidade com ver s ões anter ior es do T ur bo Pas cal (o pr ecur s or do Delphi). r etir ada a ex tens ão. Es te ar quivo é ger ado automaticamente pelo Delphi e r ar amente pr ecis a s er alter ado manualmente. ou us ando o comando Pr oj ect | Options . Es te é o nome que identifica o pr oj eto par a o Delphi. . Clar amente. quando neces s ár ias . por ex emplo. No entanto. e as s im por diante).um comando es pecial par a o compilador .chave in é us ada par a indicar o ar quivo que contém o código da Unit (" Unit1. deix ando.I nitialize r ealiza as tar efas de inicialização do aplicativo. Na figur a é indicado o us o de uma única Unit. Voltando ao ar quivo de pr oj eto. com o nome Unit1.Cr eateFor m cr ia um for mulár io na memór ia. Há um gr ande númer o de detalhes e opções que podem s er definidas . A ex tens ão . (os pr óx imos nomes ger ados . Aqui es tão r efer enciados todos os for mulár ios us ados no pr oj eto e s uas Units cor r es pondentes . A lterando o arquivo de projeto A não s er em cas os es peciais .s e de alter ar o nome do ar quivo de pr oj eto par a um nome mais s uges tivo na hor a de s alvar . entr e chaves .pas " ). " Pr oj ect3. devem s er feitas atr avés do Pr oj ect Manager .. Finalmente. é mos tr ado o nome do ar quivo de pr oj eto. Es ta linha nunca deve s er r emovida – s em ela s eu aplicativo não s er á compilado cor r etamente. s ão " Pr oj ect2.dpr " ) é ger ado automaticamente pelo Delphi. Na bar r a de título. Ele é atualizado automaticamente pelo Delphi quando s ão feitas alter ações no pr oj eto (quando um for mulár io é adicionado. us ar acentos ou es paços nos nomes dos s eus ar quivos . por ex emplo). na ex tr emidade de cima da j anela do Editor de Código. Uma chave s eguida por um cifr ão ( { $ ) indica o início de uma dir etiva de compilação . A última par te do ar quivo de pr oj eto é o bloco pr incipal. As alter ações no ar quivo de pr oj eto.dpr " . Por ex emplo. N OT A: Os nomes dados às Units e for mulár ios s ão os mes mos nomes dos ar quivos cor r es pondentes .DPR vem de Delphi Pr oj ect. O comando Application. Dir etivas de compilação s ão um r ecur s o avançado do Delphi que r ar amente é us ado dir etamente pelo pr ogr amador ..o pr onto par a a ex ibição na tela. Application. A única ex ceção é o cas o des cr ito acima. os nomes não s er ão iguais .chave begin e end. s e for em us ados es paços no nome do ar quivo.dpr " . S e. a linha { $R . cas o s ej am cr iados outr os pr oj etos .Del phi 5 A ilus tr ação mos tr a o ar quivo de pr oj eto mínimo. você chamou um for mulár io de " Relatór io de pr eços . A pr imeir a linha dentr o do bloco pr incipal. O nome mos tr ado na ilus tr ação (" Pr oj ect1. além de Units que não es tão as s ociadas a nenhum for mulár io. ou s e houver letr as acentuadas . aquele que é cr iado j unto com um novo pr oj eto " vazio" . o ar quivo de pr oj eto não deve s er alter ado manualmente. Lembr e. For m1). es ta Unit s er á identificada pelo nome " Cadas tr oPr oduto" no Delphi. o último comando do bloco pr incipal. é indicado o nome do for mulár io as s ociado à Unit (no cas o. Logo em s eguida. A palavr a. s e uma Unit for s alva com o nome " Cadas tr oPr oduto. O ar quivo de r ecur s os contém o ícone do aplicativo. o nome ger ado pelo Delphi s er á " Relatr iodepr eos " . Es paços e letr as acentuadas s ão s imples mente r etir ados (s em avis os ) do nome do ar quivo.. por tanto." (chamada de cláus ula us es ) indica quais Units s ão us adas pelo pr oj eto. A s egunda linha: " Us es .

Os Pr oj ect Gr oups facilitam a compilação e a depur ação de conj untos de pr oj etos r elacionados . pode s er copiado facilmente par a outr o pr oj eto do mes mo Pr oj ect Gr oup. Na par te es quer da da j anela do Pr oj ect Manager . Par a mos tr ar o código de uma Unit no Editor de Código. s imples mente clique no " + " ao lado do nome da Unit.PAS ) e dos ar quivos de des cr ição dos for mulár ios (ar quivos . a pr imeir a Unit (" UnAux iliar es " ) não es tá as s ociada a um for mulár io e por tanto apar ece de for ma difer ente na lis tagem. O código de um pr oj eto. O pr imeir o item da lis tagem (" S uper mar kt" ) é o nome do Pr oj ect Gr oup ao qual per tence o pr oj eto (ver emos como tr abalhar com Pr oj ect Gr oups mais adiante). ou par a ex ibir um for mulár io. exi bi do n o P r oj ect Manager . com vár ios ar quivos ex ecutáveis .0 intr oduziu os Pr oj ect Gr oups (Gr upos de Pr oj etos ).Del phi 5 Usando o Project Manager O Pr oj ect Manager (Ger enciador de Pr oj etos ) é uma fer r amenta útil que dá aces s o a todos os for mulár ios e Units de um pr oj eto. Na par te dir eita do Pr oj ect Manager . Os Pr oj ect Gr oups s ão úteis par a aplicativos complex os . Par a ex ibir o nome do for mulár io as s ociado a uma Unit. A ilus tr ação a s eguir mos tr a o Pr oj ect Manager par a um pr oj eto de tamanho médio. Usando Project G roups O Delphi 4. que per mitem tr abalhar com vár ios pr oj etos ao mes mo tempo. é mos tr ado o path das Units (ar quivos . No ex emplo ilus tr ado. U m P r oj ect Gr ou p com doi s pr oj et os . Uma das funções mais impor tantes do Pr oj ect Manager é a navegação entr e os ar quivos de um pr oj eto.DFM). com muitas Units e for mulár ios . por ex emplo. O us o do Pr oj ect Manager é es pecialmente impor tante par a pr oj etos complex os . s ão ex ibidas as Units que fazem par te do pr oj eto. As Units s ão agr upadas com os for mulár ios a elas as s ociados . ou com vár ias DLLs (bibliotecas de funções ). Par a ex ibir o Pr oj ect Manager . us e o comando View | Pr oj ect Manager . clique no s eu nome duas vezes .

é neces s ár io us ar o Pr oj ect Manager (não há comando de menu par a is s o). O comando Pr oj ect | B uild [ nome do pr oj eto] compila todos os ar quivos do pr oj eto. no entanto. Par a ver ificar a s intax e de todos os ar quivos do pr oj eto atual. ou pr oj etos j á ex is tentes a um Pr oj ect Gr oup. Par a r emover um pr oj eto de um Pr oj ect Gr oup. Outr a maneir a é us ar o botão Remove da bar r a de fer r amentas do Pr oj ect Manager . O comando Pr oj ect | Compile [ nome do pr oj eto] compila s omente os ar quivos do pr oj eto que for am alter ados des de a última compilação.B PG. C ompilando projetos A compilação. N OT A: S e você us ar o comando File | S ave all par a s alvar todos os ar quivos de um pr oj eto. Es s es dois comandos funcionam de for ma s emelhante aos comandos Pr oj ect | Compile e Pr oj ect | B uild. Não é ex ibida nenhuma mens agem. Par a adicionar um novo pr oj eto. mas apenas um deles pode es tar ativo. us e o comando Pr oj ect | Add Ex is ting Pr oj ect e es colha o pr oj eto a s er adicionado (ar quivo . us e o comando Pr oj ect | Add New Pr oj ect. o Delphi mantém um ar quivo com a ex tens ão . es colha o comando Pr oj ect | S yntax Check [ nome do pr oj eto] .s e compilar e ex ecutar um pr oj eto a qualquer momento dur ante o des envolvimento (contanto que não haj a er r os no código. volta ao es tado anter ior . clique no s eu nome duas vezes . e não . O pr oj eto ativo apar ece em negr ito no Pr oj ect Manager . Es te ar quivo.s e adicionar novos pr oj etos . Par a is s o. também. Par a adicionar um pr oj eto ex is tente. No Pr oj ect Manager . ou us e o botão Activate da bar r a de fer r amentas do Pr oj ect Manager . A dicionando e removendo projetos emumProject G roup Pode. us e os comandos Pr oj ect | Compile All Pr oj ects e Pr oj ect | B uild All Pr oj ects . onde pode s er es colhido o tipo de pr oj eto. ger a o código ex ecutável do aplicativo. Par a s alvar o ar quivo do Pr oj ect Gr oup. é clar o). além de ver ificar a s intax e dos pr ogr amas . Es s e pr ocedimento é muito r ápido. o ar quivo do Pr oj ect Gr oup s er á s alvo também. A ex ecução também pode s er r ealizada de vár ias for mas . Par a ativar um pr oj eto. Os com andos de com pil ação ( par a um pr oj et o ch am ado " E dit or " ) C ompilando Project G roups É pos s ível compilar todos os pr oj etos de um Pr oj ect Gr oup. Há vár ias maneir as de compilar um pr oj eto no Delphi. por que o Delphi não pr ecis a ger ar um ar quivo final. ou com as teclas de atalho (vej a a s eguir ). Há dois comandos par a r ealizar a compilação no Delphi: Compile e B uild. Es te comando abr e a caix a de diálogo New I tems . clique com o botão dir eito no nome do Pr oj ect Gr oup (o pr imeir o nome ex ibido) e es colha o comando S ave Pr oj ect Gr oup. que um mes mo pr oj eto pode fazer par te de vár ios Pr oj ect Gr oups difer entes .DPR).Del phi 5 Salvando umProject G roup Par a cada Pr oj ect Gr oup. É pos s ível ver ificar s e os ar quivos de um pr oj eto contêm er r os de s intax e. alter ados ou não. O Delphi ver ifica a s intax e e mos tr a os er r os r es ultantes em uma nova j anela. O pr oj eto ativo é aquele que é compilado ou ex ecutado com os comandos do menu Pr oj ect. com a difer ença de que compilam todos os pr oj etos do Pr oj ect Gr oup. S e não houver er r os . abr a o Pr oj ect Manager (View | Pr oj ect Manager ). s ó é es cr ito no dis co quando é s alvo ex plicitamente pelo pr ogr amador . C ompilando e executando projetos Pode. ambos no menu Pr oj ect. Note que um pr oj eto não é apagado quando é r emovido de um Pr oj ect Gr oup. A tivando umprojeto Um Pr oj ect Gr oup pode conter vár ios pr oj etos . s imples mente clique no nome do pr oj eto a s er r emovido e pr es s ione DELET E. Vale notar .

A rquivos . S e for em encontr ados er r os .DPR) e as Units (ex tens ão .DFM dos for mulár ios e as units (ar quivos .DFM contêm infor mações detalhadas s obr e o for mulár io e s eus componentes . S ão ar mazenados em um for mato binár io. clique com o botão dir eito dentr o do Editor de Código (em cima do tex to do ar quivo DFM) e es colha o comando View as For m. .s e também. por padr ão não s ão ex ibidas infor mações s obr e o andamento da compilação. no entanto. Os ar quivos DCU tor nam mais r ápidas a compilação e a linkagem de aplicativos no Delphi.Del phi 5 apenas o pr oj eto ativo.DCU (de " Delphi Compiled Unit" ). Os ar quivos . es colha o comando T ools | Envir onment Options . a qualquer momento (depois da pr imeir a compilação).lo.PAS ) s ão pr oces s ados e tr ans for mados em ar quivos compilados inter mediár ios . ou pr es s ione F9. Você pode também ex ecutar o aplicativo de for a do Delphi. legível apenas a par tir do Delphi.DOF. par a tes tá. Par a voltar à vis ão nor mal do for mulár io.PAS ). por ex emplo. . Es s as infor mações es tão dis poníveis . mencionamos dois dos mais impor tantes : o ar quivo de pr oj eto (ex tens ão . Vár ios outr os ar quivos s ão ger ados na pr imeir a compilação do pr oj eto. e podem s er mos tr adas dur ante a compilação. mude par a a página " Pr efer ences " .DFM. Par a is s o. eles s ão ex ibidos na par te de baix o do Editor de Código. clique no for mulár io com o botão dir eito e es colha o comando View as T ex t.DC U Quando um pr oj eto é compilado no Delphi.DFM cons tituem o ver dadeir o " código fonte" do pr ogr ama e s ão (ger almente) os únicos ar quivos impr es cindíveis par a a ger ação do aplicativo final. us e o comando Pr oj ect | I nfor mation for [ nome do pr oj eto] . é que o Delphi é capaz de identificar e inter ceptar os er r os que ocor r er em dur ante a ex ecução do aplicativo.DFM Os ar quivos .RES . mas podem s er facilmente conver tidos par a ar quivos tex to e ex ibidos no Editor de Código. Es tes ar quivos s ão gr avados em for mato binár io e não podem (nem devem) s er aber tos dir etamente. us ando o Ex plor er do Windows . e ative a opção " S how Compiler Pr ogr es s " . A rquivos . . Par a ex ecutar o aplicativo ativo a par tir do Delphi: Es colha o comando Run | Run. Pode. ex ibir as infor mações s obr e a compilação. Os ar quivos .DPR. você pode ex ecutar o aplicativo ger ado de dentr o do Delphi. o ar quivo é ex ibido dentr o do Editor de Código. Mos tr ando infor mações s obr e a compilação Como o compilador do Delphi é muito r ápido. com a ex tens ão . E x em pl o de i nf or m ações de com pil ação par a um pr oj et o Executando o aplicativo gerado Depois de compilar um pr oj eto. Par a is s o. Nas s eções anter ior es .DFM). o Delphi compila novamente o pr oj eto. O Delphi us a o mes mo nome da Unit as s ociada.CFG e . A vantagem de ex ecutar o aplicativo de dentr o do Delphi. os ar quivos . S e o pr oj eto tiver s ido alter ado depois da última compilação. e o aplicativo não é ex ecutado.DFM (ar quivos de des cr ição de for mulár io) s ão cr iados par a cada for mulár io.PAS e . A rquivos gerados pelo Delphi Um pr oj eto no Delphi é cons tituído de ar quivos de vár ios tipos . Outr os ar quivos muito impor tantes ger ados s ão os ar quivos de des cr ição de for mulár io (ex tens ão . Par a mos tr ar o ar quivo DFM as s ociado a um for mulár io. como os ar quivos . acr es centando apenas a ex tens ão .

DOF e . Par a es colher um valor par a uma pr opr iedade des s e tipo. com apenas os valor es " T r ue" ou " Fals e" per mitidos . As mais s imples des tas s ão as pr opr iedade booleanas . cur s or es e outr os r ecur s os r elacionados ao Windows . A alter ação e o us o dir eto dos ar quivos . s imples mente clique ao lado do nome da pr opr iedade no Obj ect I ns pector .RES es tá além do es copo des te cur s o bás ico. Os componentes vis uais . s ão lis tados os valor es par a cada pr opr iedade. Os ar quivos .DO e . Par a alter ar es s e tipo de pr opr iedade.Del phi 5 A rquivos . Ex emplos de contr oles s ão botões .C F FG Os ar quivos . Es s es ar quivos contêm. Pr opr iedades podem s er definidas dur ante o des envolvimento. bar r as de r olagem. por ex emplo. Tipos de componentes Componentes podem s er divididos em dois tipos bás icos : componentes não.CFG nunca devem s er alter ados dir etamente.DOF e . Na par te dir eita do Obj ect I ns pector . Componentes podem s er us ados par a cons tr uir aplicativos completos r apidamente. ou contr oles .RES . etc. Propriedades Cada componente no Delphi apr es enta um conj unto de pr opr iedades que deter minam o compor tamento e a apar ência do componente.CFG. Algumas pr opr iedades per mitem a es colha a par tir de lis tas ex tens as . C omponentes e seus conceitos básicos Os componentes s ão a par te mais impor tante da maior ia dos aplicativos cr iados no Delphi. As pr opr iedades mais comuns s ão as com valor es numér icos ou s tr ings . caix as de tex to. P r opr iedades n um ér icas e s t r i n gs Algumas pr opr iedades s ão r es tr itas a uma lis ta de valor es . O Delphi ofer ece uma gr ande quantidade de componentes . Es s es ar quivos s ão alter ados indir etamente us ando o comando Pr oj ect | Options . s ão us ados par a manter infor mações s obr e opções do compilador e do linkeditor . o ícone do aplicativo. . e es colha uma das opções da lis ta ex ibida (vej a a figur a a s eguir ). Há vár ios tipos de pr opr iedades no Delphi. ao lado do nome da pr opr iedade. também ger ados automaticamente. Al t er ando pr opr i edades em t empo de des envol vi ment o As pr opr iedades de um componente que podem s er alter adas em tempo de des envolvimento s ão lis tadas na par te es quer da do Obj ect I ns pector . s ão ger ados automaticamente pelo Delphi.vis uais e componentes vis uais (contr oles ). algumas vezes com poucos cliques do mous e. Os ar quivos .RES. . C omponentes visuais. s imples mente digite um novo valor ou s tr ing. s ão componentes com os quais o us uár io pode inter agir dir etamente. ou alter adas dur ante o tempo de ex ecução. imagens . Os componentes vis uais têm a mes ma apar ência em tempo de des envolvimento e em tempo de ex ecução (s alvo r ar as ex ceções ).

como as pr opr iedades booleanas . aumentando a conveniência par a o pr ogr amador . no entanto. Par a abr ir o editor de pr opr iedades . com muitas combinações de valor es pos s íveis . ilus tr ada acima).s e clicar duas vezes ao lado da pr opr iedade. Pr opr iedades que podem s er alter adas com um editor de pr opr iedades apar ecem com r eticências . ou clicar duas vezes ao lado da pr opr iedade. quando s ão s elecionados no Obj ect I ns pector . Os editor es de pr opr iedades s ão comuns par a pr opr iedades compos tas (como a pr opr iedade Font. o editor de pr opr iedades é s imples mente outr a for ma de alter ar a pr opr iedade.Del phi 5 DI CA: par a pr opr iedades com lis tas de valor es . Es s e r ecur s o é es pecialmente útil par a pr opr iedades com poucos valor es pos s íveis . pr imeir o clique duas vezes no nome da pr opr iedade par a abr ir s ua lis ta de s ubpr opr iedades . Par a outr as pr opr iedades mais complex as . Nes s e cas o. pode. o Delphi ofer ece editor es de pr opr iedades (pr oper ty editor s ). As pr opr iedades compos tas apar ecem no Obj ect I ns pector pr ecedidas de um s inal " + " (quando não ex pandidas ). Os valor es das s ubpr opr iedades deter minam o valor final da pr opr iedade compos ta. Vej a um ex emplo comum (par a um componente Memo) na figur a a s eguir . E x em pl os de pr opr iedades e s u bpr opr i edades com pos t as . bas ta clicar nas r eticências . Par a definir es tes valor es par a uma pr opr iedade compos ta. par a ex ibir o pr óx imo valor da lis ta. contêm vár ias s ubpr opr iedades . Pr opr iedades compos tas . os editor es de pr opr iedades s ão a única opção. As s ubpr opr iedades podem s er de qualquer tipo (inclus ive compos tas ). Em s eguida alter e os valor es das s ubpr opr iedades des ej adas . O editor de pr opr iedades var ia muito dependendo do tipo de pr opr iedade. U m a pr opr iedade com um a li s t a de opções Par a algumas pr opr iedades complex as . Outr o tipo de pr opr iedade é a pr opr iedade compos ta.

alter ando s ua pr opr iedade Enabled par a Fals e. B utton1.B utton1Click(S ender : T Obj ect). As s oci ando códi go a um event o Os eventos dis poníveis par a um componente s ão lis tados na página Events do Obj ect I ns pector . a lis ta de eventos é ex tens a. Há algumas pr opr iedades que s ó podem s er alter adas us ando pr ogr amação. Es s as pr opr iedades não s ão lis tadas no Obj ect I ns pector e por tanto s ó es tão aces s íveis a par tir de pr ogr amas .s e as s ociar um tr echo de código que é ex ecutado quando o evento acontece. Par a o componente B utton. que ocor r e quando o botão é clicado. Note que o s ímbolo par a a atr ibuição de Obj ect Pas cal é difer ente da maior ia das outr as linguagens (: = ). S e uma pr opr iedade for alter ada com vár ios componentes s elecionados . For m1. todos es s es componentes pas s ar ão a ter o mes mo valor par a a pr opr iedade alter ada. . o Obj ect I ns pector mos tr a as pr opr iedades comuns a todos eles . Par a cada evento.Del phi 5 Cli qu e nas r et i cên ci as … … par a exi bi r o edit or de pr opr iedades par a a pr opr iedade s el eci on ada D I CA: pode. j á com um " es queleto" do código par a o evento. No lado dir eito é es pecificado o valor . Nes s e cas o. Quando vár ios componentes s ão s elecionados em um for mulár io. por ex emplo. No entanto.Enabled: = Fals e. pode. begin | end. Es s as alter ações devem s er feitas us ando pr ogr amação. O código par a os eventos de todos os componentes em um for mulár io é ar mazenado na Unit as s ociada ao for mulár io. Comandos des s e tipo s ão os comandos mais s imples e mais us ados no Delphi. o lado es quer do da atr ibuição define o componente e a pr opr iedade que s er á alter ada (s epar ados por pontos ). s omente poucos eventos s ão us ados com fr equência. Al t er ando pr opr i edades em t empo de ex ecução As pr opr iedades de um componente podem também s er alter adas em tempo de ex ecução.Caption: = ‘Pr incipal’. Eles definem como o aplicativo r eage às ações do us uár io (ou de outr os componentes ). o evento padr ão é OnClick. S ão chamados de atr ibuições (como em outr as linguagens de pr ogr amação).s e alter ar pr opr iedades de vár ios componentes ao mes mo tempo. Par a muitos componentes . Vej a um ex emplo des s e es queleto: pr ocedur e T For m1. O Delphi mos tr a o Editor de Código. O s eguinte tr echo de código alter a o título de um for mulár io chamado " For m1" par a " Pr incipal" e depois des abilita um botão chamado " B utton1" . Eventos Os eventos deter minam a par te dinâmica de um aplicativo. Há tr ês for mas bás icas par a adicionar eventos a um componente: Clicar duas vezes no componente: is s o alter a o evento padr ão do componente. O evento padr ão é ger almente o mais us ado. Alter ar uma pr opr iedade de um componente us ando pr ogr amação é s imples . Cada componente ofer ece um conj unto de eventos es pecíficos .

(Note que alguns componentes não ofer ecem nenhum método). per manecendo ligado a outr os componentes . O evento pode s er s imples mente des ligado de um componente. no Obj ect I ns pector . Par a is s o. I s s o s eleciona o nome do evento. Apr es entamos todas elas a s eguir .lo. Em s eguida clique na opção Methods . Em s eguida. No for mulár io. aces s íveis s omente atr avés de pr ogr amação.s e pr oceder como antes par a digitar o código as s ociado ao evento. No ex emplo a s eguir . s elecione o componente no for mulár io e pr es s ione F1.Del phi 5 Entr e o begin e o end é digitado o código a s er ex ecutado quando o us uár io clica no botão (o Delphi j á pos iciona o cur s or nes s e local automaticamente). ou pode s er r emovido inteir amente do código. s ão us ados par a ler ou alter ar pr opr iedades de um componente. Um evento pode s er apagado em " dois níveis " . . O componente é adicionado no local clicado. A par tir daí. s alve o ar quivo. na paleta de componentes (mude par a a página da paleta que contém o componente. deix ando apenas o código ger ado automaticamente pelo Delphi (a pr imeir a linha. ar r as te par a definir o tamanho des ej ado par a o componente. end. Métodos Métodos (bas icamente) s ão oper ações ofer ecidas por componentes do Delphi. O Delphi r emove o evento e todas as ligações a es s e evento. Par a adicionar um componente s em us ar a paleta de componentes Chame o comando View | Component Lis t. deve. par a cor r igir um er r o no des envolvimento por ex emplo.B utton1Click(S ender : T Obj ect). pr ocedur e T For m1. Em s eguida.Caption : = ‘Pr incipal’.s e r ealizar uma das ações des cr itas a s eguir . Apagando event os Pode. Não é neces s ár io s elecionar novamente o componente. S e j á houver outr os componentes no for mulár io. Par a ver a lis ta de métodos ofer ecidos por um componente. begin For m1. você pr ecis a us ar o r ecur s o de aj uda do Delphi (os métodos não s ão lis tados no Obj ect I ns pector ). Os métodos de um componente. Par a adicionar vár ias cópias de um mes mo componente: Na paleta de componentes . Faça is s o quando for neces s ár io as s ociar o mes mo código a eventos de componentes difer entes . Uma caix a com todos os componentes dis poníveis . no Obj ect I ns pector e es colha o nome do pr ocedimento da lis ta que apar ece. Par a adicionar código par a qualquer outr o evento. Clicar duas vezes ao lado do evento des ej ado (no Obj ect I ns pector ): mos tr a o código par a o evento no Editor de Código. Par a r emover um evento inteir amente do código. clique novamente no componente (na paleta de componentes ) par a des ativá. Par a definir o tamanho de um componente no momento em que é adicionado: Na paleta de componentes . B utton1. ou par a r ealizar tar efas es peciais . Par a des ligar um evento de um componente. Quando ter minar . outr os componentes adicionados us ando es s e método s ão colocados um pouco abaix o e à dir eita do últimos adicionados . Clique no for mulár io. antes de cada clique. Par a adicionar um componente a um local es pecífico do for mulár io: Es colha o componente a s er adicionado. A maneir a des cr ita aqui funciona s omente par a os eventos padr ão dos componentes . na par te de cima da j anela de aj uda. pode. I s s o gar ante que os componentes não " des apar eçam" uns por tr ás outr os . apague (pr es s ione DELET E e depois ENT ER).s e apagar eventos definidos par a um componente. (S e ainda não houver nenhum código definido par a eventos no for mulár io. Par a adicionar um componente ao centr o do for mulár io: Na paleta de componentes . s elecione o componente e clique no lado do evento a s er r emovido. a lis ta apar ece vazia). o begin e o end).Enabled : = Fals e. s e neces s ár io). lis tados em or dem alfabética é ex eibida (vej a a figur a). ou compile o pr oj eto. clique no componente. A dicionando componentes aumformulário Há vár ias técnicas par a adicionar componentes a um for mulár io. no local onde des ej a adicionar o componente. clique duas vezes no componente. apague todo o código dentr o do evento. Es s es s er ão os comandos ex ecutados quando o componente chamado " B utton1" for clicado uma vez. clique no componente s egur ando a tecla S HI FT . dois comandos for am adicionados par a o evento. Clique no for mulár io (vár ias vezes ) nos locais des ej ados . Es colher um pr ocedimento j á definido par a um evento: clique do lado dir eito do nome do evento.

Vej as as mais impor tantes des s as técnicas a s eguir . ou s elecione o componente e clique no botão " Add to for m" . Par a s elecionar vár ios componentes em uma mes ma ár ea: Clique em uma ár ea vazia do for mulár io pr óx ima aos componentes e ar r as te. feche a caix a. S el eci onando e r edi mens i onando component es Par a fazer alter ações em um componente. r ealize uma das s eguintes oper ações : Clique no componente. S elecione o nome do componente na lis ta localizada na par te de cima do Obj ect I ns pector (vej a a ilus tr ação a s eguir ).Del phi 5 Clique duas vezes no nome do componente. Ao final. Repita a oper ação par a cada componente que des ej a adicionar . Manipulando componentes O Delphi ofer ece vár ias técnicas par a a or ganização pr ecis a de componentes em um for mulár io. S el eci on e um com pon en t e da li s t a par a s el eci on á-lo n o f or m ul ár i o Par a s elecionar vár ios componentes . s er ão s elecionados . é neces s ár io pr imeir o s elecioná. T odos os componentes que es tiver em dentr o des te r etângulo. . Vej a as maneir as mais comuns .lo. um de cada vez: S egur e a tecla S HI FT e clique em cada um dos componentes . Um r etângulo pontilhado é ex ibido enquanto você ar r as ta (vej a a figur a abaix o). ou par cialmente dentr o dele. Par a s elecionar um único componente em um for mulár io. Clique em uma ár ea vazia do for mulár io e em s eguida us e T AB par a alter nar par a o componente. N a par t e de cim a do Obj ect I n s pect or s ão li s t ados os n om es de t odos os com ponent es no f or m ul ár i o.

Na caix a de diálogo ex ibida (figur a acima). Clique em um local vazio do for mulár io e es colha o comando Edit | Pas te (CT RL + V). As opções dis poníveis s ão ex plicadas a s eguir . A única difer ença entr e a cópia e o or iginal é a s ua pr opr iedade Name. a cópia r es ultante mantém as mes mas pr opr iedades que o componente or iginal e continua as s ociada aos mes mos eventos . Par a r edimens ionar (alter ar o tamanho de) um único componente: S elecione o componente e ar r as te uma das alças (pequenos quadr ados ) que apar ecem em volta dele. " Lar gur a" : Es pecifique aqui a lar gur a em pix els de todos os componentes s elecionados . travando e sobrepondo os componentes Par a manter um vis ual unifor me e or ganizado nos s eus for mulár ios . ou Panel). Par a movê.) clique dentr o des s e componente.Del phi 5 S e os componentes es tiver em dentr o de um Gr oupB ox ou de um Panel mantenha a tecla CT RL enquanto ar r as ta. Par a s elecionar todos os componentes em um for mulár io. muitas vezes é neces s ár io alinhar componentes um pelo outr o. N o ch an ge S hr ink t o s m al l es t Gr ow do l ar ges t W i dt h H ei gh t " Nenhuma mudança" : es colha es s a opção par a alter ar s omente a outr a dimens ão. s elecione os componentes e es colha o comando Edit | S ize (ou clique em um dos componentes com o botão dir eito e es colha o comando S ize). Par a fazer is s o. Cut e Pas te do menu Edit. cas o contr ár io. " Reduzir par a o menor " : r eduz o tamanho de todos os componentes s elecionados par a o tamanho do menor componente s elecionado. Os componentes s ão copiados e s ão pos icionados ligeir amente abaix o e à dir eita dos componentes or iginais . Par a r edimens ionar vár ios componentes ao mes mo tempo. Panel.los par a dentr o de um componente de agr upamento (Gr oupB ox . Duplicando e transferindo componentes No Delphi. s elecione os componentes e es colha o comando Edit | Copy (ou pr es s ione CT RL+ C). ou as teclas de atalho cor r es pondentes . ou par a dentr o de um componente de agr upamento (como um Gr oupB ox . Par a tr ans fer ir componentes . (Dois componentes não podem ter o mes mo nome em um for mulár io). s elecione os componentes e es colha o comando Edit | Cut (ou pr es s ione CT RL+ X). que é mudada automaticamente pelo Delphi quando o componente é copiado. Quando um componente é duplicado des s a maneir a. Você pode alinhar componentes de tr ês maneir as bás icas no Delphi. Par a alinhar componentes com a Alignment palete S elecione os componentes a s er em alinhados Es colha o comando View | Alignment palette par a ex ibir a s eguinte j anela: . não há um comando que per mita duplicar um componente dir etamente. " Aumentar par a o maior " : aumenta o tamanho de todos os componentes .s e também us ar os comandos do menu Edit par a tr ans fer ir componentes de um for mulár io par a outr o. A linhando. Par a mover os componentes par a outr o for mulár io clique no for mulár io. defina as novas dimens ões par a os componentes . par a o tamanho do maior componente s elecionado. Par a duplicar um ou mais componentes em um for mulár io. (Note que as opções s ão as mes mas par a as duas dimens ões ). Pode. é neces s ár io us ar os comandos Copy. etc. " Altur a" : A altur a de todos os componentes s elecionados . us ando a Alignment palette (Paleta de alinhamento) Us ando a caix a de diálogo Align. Es colha o comando Edit | Pas te (CT RL+ V). o Gr oupB ox ou Panel s er á movido. us e o comando Edit | S elect All. ou Alinhando pela gr ade (gr id).

Es paçar igualmente. alter e os valor es das opções Gr id s ize X (es paçamento hor izontal) e Gr id s ize Y (es paçamento ver tical). As opções s ão equivalentes às apr es entadas na Alignment palette. s ão a gr ade (gr id) do for mulár io. Par a is s o. Você pode também es conder a gr ade. Na caix a Alignment (figur a abaix o). hor izontalmente Alinhar pelos centr os dos componentes . A gr ade " atr ai" componentes par a pos ições pr edefinidas . E x i bi ção da gr ade com doi s val or es par a o es paçam en t o Par a alter ar o es paçamento da gr ade ou des ativá. ver ticalmente Alinhar pelo centr o do for mulár io. Você pode des ativar a gr ade. ou alter ar s eu es paçamento. Uma gr ade com um es paçamento menor per mite o alinhamento mais pr ecis o (e mais flex ível) dos componentes . s em des ativá.la par a qualquer local na tela.la: Es colha o comando T ools | Evir onment options . Ou es colha o comando Edit | Align. des ligue a opção S nap to gr id. des ligue a opção Dis play gr id. ver ticalmente. na ver tical Alinhar pelo lado dir eito dos componentes Alinhar pela bas e dos componentes Par a alinhar componentes com a caix a de diálogo Alignment: S elecione os componentes . na página Pr efer ences . Clique no botão apr opr iado na paleta. facilitando o alinhamento. Clique com o botão dir eito em cima de um dos componentes s elecionados e es colha o comando Align.Del phi 5 Es s a paleta é uma " bar r a de fer r amentas flutuante" . na hor izontal Es paçar igualmente. Você pode movê. hor izontalmente Alinhar pelo centr o do for mulár io. Par a alter ar o es paçamento da gr ade. dur ante o tempo de des envolvimento.la. Par a des ativar a gr ade. Al i nhando pel a gr ade Os pontos mos tr ados em um for mulár io. . Os botões da paleta s ão des cr itos na tabela abaixo: Alinhar pelo lado es quer do dos componentes Alinhar pelo topo dos componentes Alinhar pelos centr os dos componentes . defina as opções de alinhamento des ej adas e clique em OK .

A dicionando formulários Há vár ias maneir as de adicionar um for mulár io vazio a um pr oj eto no Delphi. É es s e for mulár io. como os componentes Label. S peedbutton e B evel.los .s e alter ar a or dem de s obr epos ição. bar r as de fer r amentas e outr os componentes impor tantes que s ão us ados por .los . Os componentes adicionados mais r ecentemente s ão colocados " por cima" dos mais antigos . Além dis s o. N OT A: componentes gr áficos . ver emos vár ias maneir as par a cr iar novos for mulár ios e como or ganizá. Par a tr azer um componente par a fr ente ou mandar um componente par a tr ás : S elecione o componente e clique nele com o botão dir eito do mous e. na página " New" . par a evitar que s ej am des alinhados acidentalmente.Del phi 5 T r avando component es Depois de or ganizar e alinhar os componentes . clique duas vezes no ícone " For m" Especificando o formulário principal T odo aplicativo cr iado no Delphi deve ter um de s eus for mulár ios definidos como for mulár io pr incipal. ger almente.los e conectá. Par a des tr avar a pos ição dos componentes . Par a tr avar a pos ição dos componentes : Es colha a comando Edit | Lock contr ols . clique no botão chamado New for m (vej a abaix o): Es colha o comando File | New e. etc. novos componentes adicionados ficam tr avados também (o que não é muito pr ático! ). es colha o comando Edit | Lock contr ols novamente. na bar r a de fer r amentas . tr azendo um componente par a fr ente ou enviando. Pode. Nes te capítulo. O for mulár io pr incipal é o for mulár io que é cr iado e ex ibido pr imeir o no aplicativo. você pode tr avá. j anelas s ecundár ias . Es colha o comando B r ing to fr ont (T r azer par a fr ente) ou S end to back (Mandar par a tr ás ). I s s o tr ava a pos ição dos componentes em todos os for mulár ios do pr oj eto. não podem s er colocados na fr ente de componentes " aj anelados " (a maior ia dos demais ).o par a tr ás . como caix as de diálogo. Ver emos também como definir a or dem em que os for mulár ios s ão cr iados e como us ar as caix as de diálogos pr edefinidas do Delphi. A or dem de s obr epos ição padr ão é a or dem em que os componentes s ão adicionados ao for mulár io. o que contém a bar r a de menus . Cont r ol ando a s obr epos i ção de component es Componentes podem s er s obr epos tos em um for mulár io. Es colha o comando File | New for m. Formulários e C aixas de Diálogo Uma inter face com o us uár io no Delphi é ger almente compos ta por um for mulár io pr incipal e vár ios outr os for mulár ios .

mas is s o pode s er alter ado facilmente. O Delphi alter a o código par a o s eguinte: unit UnContr oleEs toque. Par a definir um for mulár io como o for mulár io pr incipal. Na página " For ms " . I s s o gar ante que o for mulár io s ej a o pr imeir o a s er ex ibido. deve s er pos s ível ver ificar os valor es entr ados na caix a a par tir do for mulár io pr incipal. inter face us es Windows . var Contr oleEs toque: T Contr oleEs toque. Es colha o comando Pr oj ect | Options . es colha o for mulár io da lis ta ao lado de " Main for m" (vej a figur a). Gr aphics . type T Contr oleEs toque = clas s (T For m) end. Você cr ia uma ligação entr e for mulár ios adicionando r efer ências aos for mulár ios nas cláus ulas us es das Units .Del phi 5 vár ios for mulár ios s ecundár ios . por ex emplo. Quando s e us a uma caix a de diálogo par a a entr ada de infor mações . Como padr ão. a Unit chamada " UnCadas tr oGames " foi es colhida. o Delphi acr es centa o nome da Unit do outr o for mulár io à cláus ula us es do for mulár io ativo. Mes s ages . Dialogs . S ys Utils . o Delphi define o pr imeir o for mulár io adicionado como o for mulár io pr incipal. Quando você liga um for mulár io a outr o. Clas s es . D I CA: dur ante o des envolvimento. Es s as r efer ências podem s er adicionadas manualmente. ou atr avés de um comando de menu (o que ger almente é mais fácil). muitas vezes s er á neces s ár io ligar for mulár ios par a que o código de um for mulár io pos s a ter aces s o aos componentes do outr o. Es colha o comando File | Us e unit e es colha o for mulár io a s er r efer enciado (vej a a figur a a s eguir ). . facilitando na hor a dos tes tes . Par a ligar um for mulár io a outr o for mulár io: S elecione o for mulár io que pr ecis a s e r efer ir ao outr o for mulár io. por ex emplo. Ligando formulários No tr abalho com vár ios for mulár ios . é neces s ár io ligar o for mulár io pr incipal à caix a de diálogo. For ms . Par a is s o. Na figur a. Contr ols . você pode tor nar o for mulár io com que es tá tr abalhando no for mulár io pr incipal.

O for mulár io não pode s er r edimens ionado. Define a apar ência das bor das do for mulár io e s e o for mulár io pode s er r edimens ionado ou não. bi Max i m i z e: mos tr a o botão max imizar no for mulár io. (Es ta é a opção padr ão). poD ef au l t P os On l y : s omente a pos ição do for mulár io é definida pelo Windows . Deter mina como o for mulár io s er á ex ibido inicialmente no aplicativo (minimizado. . O for mulár io não pode s er r edimens ionado s em bor das . B or der S t yl e P os i t i on W i n dow S t at e Eventos dos formulários Há dezenas de eventos par a os for mulár ios .Del phi 5 implementation us es UnCadas tr oGames . Es s a opção pode s er us ada par a cr iar " bar r as de fer r amentas flutuantes " . poD es kt opCen t er : s emelhante à opção poS cr een Cen t er . Vej a a s eguir des cr ições des s as pr opr iedades .DFM} end. A dis tância (em pix els ) entr e a par te inter na da bor da de baix o do for mulár io até s ua bar r a de título. os for mulár ios apr es entam vár ias pr opr iedades ex clus ivas . O Delphi não contr ola nem o tamanho nem a pos ição. poD ef au l t S i z eOn l y : s omente o tamanho é definido pelo Windows . por ex emplo. Propriedades dos formulários Além das pr opr iedades que todos os componentes apr es entam. em pix els . { $R * . A altur a e a lar gur a totais do for mulár io. mas a pos ição não do for mulár io não é aj us tada par a aplicativos que us am vár ios monitor es . bs T ool W i n dow : como bs S i n gl e. Quando o us uár io clica em uma ár ea vazia no for mulár io. max imizado ou r es taur ado). bi Mi n i m i z e: mos tr a o botão minimizar no for mulár io. que per mitem alter ar s ua apar ência e s eu compor tamento. mas o for mulár io é mos tr ado com um bar r a de título mais es tr eita. P r opr i edade Act i veCon t r ol Capt i on H ei gh t . a pos ição pode s er aj us tada par a que o for mulár io caiba inteir o em um dos monitor es . A s eguir apr es entamos os eventos mais us ados . O for mulár io não pode s er r edimens ionado. é o contr ole definido aqui que r ecebe o foco. como Height e Width. Mos tr a s omente o botão Fechar . S e vár ios monitor es es tiver em s endo us ados (no Windows 98). A pos ição é a que foi definida em tempo de des envolvimento. bs S i n gl e: O for mulár io não pode s er r edimens ionado e é mos tr ado com bor das com linhas s imples . S ó apar ece s e bi Max i m i z e ou bi Mi n i m i z e es tiver em Fals e. w s Max i m i z ed : mos tr a o for mulár io max imizado. Deter mina a pos ição e o tamanho do for mulár io em tempo de ex ecução. bs S i z eabl e: (opção padr ão). Es te é o padr ão par a as caix as de diálogo. Opções : w s N or m al : mos tr a o for mulár io com tamanho nor mal (nem max imizado nem minimizado). poS cr een Cen t er : o tamanho do for mulár io é mantido igual ao definido em tempo de des envolvimento. As s eguintes opções es tão dis poníveis : bs D i al og : o. mas a pos ição é no centr o da tela. bs N on e: . bs S i z eT ool W i n : como bs T ool W i n dow . O tex to ex ibido da bar r a de título do for mulár io. bi H el p : botão de aj uda (inter r ogação). W i dt h Cl i en t H ei gh t Cl i en t W i dt h B or der I con s D es cr i ção Es ta pr opr iedade deter mina qual contr ole r ecebe o foco quando o for mulár io é mos tr ado. A dis tância hor izontal (em pix els ) entr e as par tes inter nas das bor das es quer da e dir eita do for mulár io. w s Mi n i m i z ed : mos tr a o for mulár io minimizado. O for mulár io pode s er r edimens ionado e é mos tr ado com bor das . poD ef au l t a pos ição e o tamanho do for mulár io s ão deter minados pelo Windows . Muitos deles s ão us ados apenas r ar amente. O tamanho é o que foi definido em tempo de des envolvimento. Es s e botão é us ado par a ex ibir a página de aj uda definida par a o for mulár io (s e houver ). Os contr oles que s ão ex ibidos na B ar r a de título do for mulár io. As opções par a Pos ition s ão as s eguintes : poD es i gn ed : a pos ição e o tamanho do for mulár io s ão os mes mos definidos em tempo de des envolvimento. Você pode definir quatr o opções par a B or der I cons : bi S ys t em Men u : mos tr a o Menu de Contr ole (também chamado " Menu de S is tema" ). mas o for mulár io pode s er r edimens ionado.

Pode. ou us ando o comando Clos e. I s s o faz com que o for mulár io s ej a fechado quando o componente B utton é clicado.B tNaoModalClick(S ender : T Obj ect). Mostrando formulários For mulár ios podem s er mos tr ados de for ma modal (us ando o método S howModal) ou de for ma não. a ex ecução do aplicativo não é inter r ompida.. adicionar um componente B utton ao for mulár io e alter ar s ua pr opr iedade ModalRes ult par a mr Clos e.Del phi 5 E ven t o On Cr eat e D es cr i ção Chamado quando o for mulár io é cr iado (automaticamente ou manualmente).S howModal.s e. S e o for mulár io for o pr incipal o aplicativo é encer r ado... begin Caix a. begin Caix a. ou quando o us uár io tenta fechar o for mulár io (clicando no ‘X’ por ex emplo). S e Can Cl os e não for alter ado. o código continua a s er ex ecutado. logo depois do comando Cl os e. Mét odo Cl os e D es cr i ção O método Clos e fecha o for mulár io. mes mo enquanto o for mulár io es tá s endo ex ibido. até que o us uár io feche o for mulár io} . a ex ecução do aplicativo é inter r ompida e s ó continua quando o us uár io fecha o for mulár io (cancelando ou confir mando as opções es colhidas . mes mo antes do for mulár io s er fechado} . pr ocedur e T For m1. Quando um for mulár io é mos tr ado us ando o método S how.modal (us ando S how). ou par a pedir confir mações par a ações r ealizadas .S how. Es te evento é muito us ado par a r ealizar a inicialização de var iáveis ou outr as oper ações que devem s er r ealizadas logo no início da ex ecução (como a conex ão a bancos de dados . mos tr ar r es ultados . F ocu s Con t r ol Us e Focus Contr ol (Nome_ do_ Componente) par a mover o foco par a o componente es pecificado no for mulár io. o código pár a de s er ex ecutado. S howModal é o método mais us ado par a as caix as de diálogo. par a s olicitar uma confir mação antes de fechar o for mulár io. par a um for mulár io chamado " Caix a" . Mos tr a o for mulár io na tela. end. I s s o per mite que o us uár io r ealize outr as oper ações no aplicativo. A ex ecução do aplicativo continua (não é bloqueada). Es s e evento pode s er us ado. dentr o do código do evento. Es te evento pode s er us ado par a liber ar var iáveis . o for mulár io é fechado e o evento On Cl os e é chamado. par a ver ificar s e o for mulár io r ealmente pode s er fechado. ou tiver o valor T r ue no final do código do evento. S h ow S h ow Modal Mos tr a o for mulár io na tela. O par âmetr o Can Cl os e do evento deter mina s e o for mulár io s er á fechado ou não. por ex emplo). por ex emplo). Ocor r e quando o for mulár io é fechado – pelo us uár io. Nota: o evento OnClos eQuer y (s e ex is tir ) é chamado antes do evento OnClos e. On S h ow On Cl os e Métodos dos formulários Vej a a s eguir uma des cr ição dos métodos mais comumente us ados par a os for mulár ios . pr ocedur e T For m1.s e alter ar a pr opr iedade ModalRes ult de botões no for mulár io par a que eles r ealizem automaticamente ações comuns .. por ex emplo. par a evitar o fechamento do for mulár io. por ex emplo. Alter e es te par âmetr o par a F al s e. On Cl os eQu er y Es te evento é chamado. { aqui. { aqui. for mulár ios us ados par a s olicitar infor mações do us uár io. mas bloqueia a ex ecução do aplicativo até que o for mulár io s ej a fechado.B tModalClick(S ender : T Obj ect). end. pode. ou fechar tabelas de bancos de dados . A pr opr i edade Modal R es ul t Quando s e mos tr a for mulár ios de for ma modal (us ando S howModal). por ex emplo. O tr echo de código a s eguir ilus tr a o us o dos método S how e S howModal. Chamado quando o for mulár io é mos tr ado na tela (ger almente us ando S how ou S howModal). Quando um for mulár io é mos tr ado us ando S howModal. O método S howModal r etor na o . (O componente com foco é aquele que pode s er es colhido dir etamente com o teclado).

Alguns componentes . Por ex emplo. Evitando que umcomponente recebao foco Muitas vezes . us ar a tecla T AB par a mover o foco par a um botão no for mulár io e depois pr es s ionar ENT ER.S howModal. N OT A: a or dem de tabulação s ó tem efeito em tempo de ex ecução. você pr ecis a ex ecutar o aplicativo.s e ativos ) quando é pr es s ionada a tecla T AB . O componente que es tá com o foco pode s er alter ado. como mos tr a o tr echo de código abaix o: . A or dem de tabulação pode s er definida de vár ias maneir as no Delphi. if Res ultado = mr OK then { fazer alguma cois a} if Res ultado = mr Cancel then { fazer outr a cois a} . Es s e r ecur s o pode s er us ado par a fazer decis ões de acor do com o que foi es colhido no for mulár io. . s elecione o componente da lis ta e us e as s etas par a cima ou par a baix o. S ão lis tados o nome e o tipo de cada componente na or dem de tabulação atual (vej a a ilus tr ação a s eguir ). O valor de T abOr der deve s er um valor inteir o e não deve haver valor es duplicados no mes mo for mulár io (o Delphi não per mite). Os componentes Label e S peedB utton s ão os ex emplos mais comuns .. não é neces s ár io que todos os componentes em um for mulár io s ej am capazes de r eceber o foco (us ando a tecla T AB ). como os componentes Panel e Gr oupB ox ger almente não pr ecis am r eceber foco. Em tempo de des envolvimento..s e. o que equivale a clicar no botão. As teclas mais comuns de navegação s ão a tecla T AB e as s etas do teclado. Na caix a que apar ece.. Par a evitar que um componente r eceba o foco: Alter e s ua pr opr iedade T abS top (" Par ada de tabulação" ) par a Fals e. Par a alter ar a or dem de tabulação de um componente. Faça o s eguinte: clique com o botão dir eito em uma ár ea vazia do for mulár io e es colha o comando T ab Or der . ou ativado com o teclado. Há outr a maneir a de alter ar a or dem de tabulação. Res ultado : = Caix aConfir macao. faça T abOr der = 1 (a contagem de T abOr der começa de zer o). Par a tes tar a or dem de tabulação. por ex emplo. A lterando aordemde tabulação A or dem de tabulação é a or dem em que os componentes de um for mulár io r ecebem o foco (tor nam. N OT A: alguns componentes não podem r eceber o foco – não s e pode us ar a tecla T AB par a chegar até eles com o teclado. a or dem de tabulação depende s omente da or dem em que os componentes for am adicionados . A maneir a mais dir eta é alter ar a pr opr iedade T abOr der par a cada componente.Del phi 5 valor definido na pr opr iedade ModalRes ult. s ão lis tados todos os componentes que podem r eceber foco do for mulár io. par a que um componente s ej a o s egundo a r eceber o foco quando o us uár io pr es s iona a tecla T AB . Usando o teclado comformulários A maior ia dos aplicativos par a Windows per mite o us o do teclado par a a navegação entr e componentes de um for mulár io. Pode..

es colha o comando Pr oj ect | Options e mude par a a página " For ms " .S howModal. Além de definir s e um for mulár io deve s er cr iado ou não. s elecione o for mulár io e es colha o comando File | Pr int. Os nomes dos for mulár ios dis poníveis . Quando um for mulár io é movido par a a lis ta " Available For ms " . por ex emplo. clique no botão > . ou par a r eduzir o tempo de inicialização do aplicativo). Par a alter ar a or dem em que os for mulár ios s ão cr iados (s omente par a a lis ta da es quer da).lo. Par a impr imir um for mulár io. Você pode também clicar no botão > > par a mover todos os for mulár ios par a a s egunda lis ta. ou cons ome muitos r ecur s os da máquina (aces s ando um banco de dados . mas você pode fazer com que for mulár ios não s ej am cr iados automaticamente (par a poupar memór ia. Fr mPr odutos ). Outr os cas os em que é melhor não cr iar um for mulár io automaticamente é quando es s e for mulár io não é us ado com fr equência. você pode definir a or dem em que os for mulár ios s ão cr iados . Es s a é a configur ação padr ão. Os nomes de todos os for mulár ios no pr oj eto s ão ex ibidos na lis ta " Auto. mas que não s er ão cr iados automaticamente. Par a ex ibir o for mulár io. end. O ex emplo a s eguir us a es s e comando par a cr iar um for mulár io (chamado " Fr mPr odutos " ) antes de mos tr á. begin Application. por ex emplo. Uma maneir a s imples de fazer is s o é atr avés do mes mo comando ger ado automaticamente pelo Delphi. você deve antes cr iá. Par a es pecificar quais for mulár ios devem s er cr iados em tempo de ex ecução. Em s eguida.lo na memór ia. As linhas com os comandos Application. A s eguinte caix a é ex ibida.Cr eateFor m. Fr mPr odutos . as s im que o aplicativo é ex ecutado. Application.Cr eateFor m(T Fr mPr odutos . ar r as te o nome do for mulár io par a outr a pos ição da lis ta. par a manter um contr ole or ganizado dos for mulár ios que j á es tão pr ontos . A or dem dos comandos também é alter ada de acor do com a or dem definida na caix a Pr oj ect Options (ilus tr ação anter ior ).Cr eateFor m(…) dos for mulár ios colocados na s egunda lis ta (" Available For ms " ) s ão r emovidas do ar quivo de pr oj eto.cr eate for ms " .Del phi 5 C ontrolando acriação dos formulários Quando você adiciona for mulár ios a um aplicativo. . N OT A: as mudanças des cr itas alter am também o ar quivo de pr oj eto. o Delphi faz com que todos es s es for mulár ios s ej am cr iados na memór ia do computador . por ex emplo).Pr odutos Click(S ender : T Obj ect). Na lis ta da es quer da s elecione os for mulár ios que você não des ej a que s ej am cr iados dur ante a ex ecução. ele não é mais cr iado automaticamente quando o aplicativo é inicializado. apar ecem na lis ta " Available for ms " . pr ocedur e T Fr mPr incipal. Imprimindo formulários Algumas vezes é útil impr imir os for mulár ios de um aplicativo.

A utilização de Fr ames é muito s imples . O mais inter es s ante é que es te novo Fr ame pode também s er adicionado a s ua palheta de componentes . s endo as s im ins tanciado futur amente em s uas outr as aplicações de for ma independente da or iginal. (" I mpr imir par a caber na página" ) Aj us ta o tamanho do for mulár io par a que ocupe o maior es paço pos s ível da página. P r int t o f it page N o s cal i n g Utilizando o objeto TFrame O obj eto T Fr ame tem o pr opós ito des te componente é cr iar uma clas s e incor por ada de vár ios outr os componentes . S er á adicionado um obj eto par ecido com o T Panel no For m contendo os obj etos incluídos no Fr ame. O valor inicial des s a pr opr iedade depende da r es olução atual e é calculada quando o Delphi é car r egado. bas ta clicar em 'File | New Fr ame. Um novo Fr ame s er á cr iado em for ma de um for mulár io. I nclua os obj etos que des ej a utilizar . S elecione o Fr ame cr iado na j anela ex ibida. e clique em Ok.Del phi 5 Es colha uma das opções da caix a e clique em OK . e adicione ao For m pr incipal um obj eto T Fr ame da palheta de componentes . O código é mantido na Unit do Fr ame. As opções s ão des cr itas a s eguir : P r opor t i on al (" Pr opor cional" ) Aj us ta o for mulár io pr opor cionalmente ao valor da pr opr iedade Pix els Per I nch do for mulár io.'. As alter ações feitas em obj etos T Fr ame s ão automaticamente r efletidas nas ins tâncias que a r efer enciam... . (" S em aj us te de tamanho" ) I mpr ime o for mulár io com o mes mo tamanho que é mos tr ado na tela.

ou avis os par a o us uár io. m bOK Cancel . 0 ) . Há dois comandos par a mos tr ar caix as de mens agem no Delphi. Elas s ão caix as modais (bloqueiam a ex ecução do pr ogr ama quando s ão ex ibidas ). Es s es comandos per mitem que aplicativos com r ecur s os s imples de entr ada e s aída s ej am cr iados r apidamente. Mt W ar nin g Mes s ageD lg( 'Mens agem de avi s o. Os cinco tipos dis poníveis s ão ilus tr ados a s eguir . como caix as de mens agem (Mes s age B ox es ) e caix as de entr ada (I nput B ox es ). begin S howMes s age('Es te comando não pode s er us ado no momento. 0 ) . O comando tem vár ios par âmetr os que devem s er es pecificados . O mais s imples é S howMes s age. m t I n f or m at i on. Us e o comando S howMes s age par a mos tr ar uma mens agem s imples par a o us uár io. botões adicionais e outr os elementos . A caix a de mens agem ex ibida é a s eguinte: Como padr ão. que mos tr a apenas uma mens agem e um botão OK .< Númer o de aj uda> ). O comando Mes s ageDlg mos tr a uma caix a de mens agem que pode conter s ímbolos es peciais . C aixas de diálogo predefinidas O Delphi ofer ece vár ios comandos par a a ex ibição de caix as de diálogo comuns . com um botão OK . m t W ar n in g. é ex ibido o nome do pr oj eto na bar r a de título da caix a de mens agem.'). m bOK Can cel . Mt I n f or m at i on Mes s ageD l g( ' Men s agem de i nf or m ação. além do comando us ado par a ex ibir cada tipo de caix a. A caix a é fechada quando o botão OK é clicado.< B otões > . end. Mt Con f i r m at i on Mes s ageD lg( 'Men s agem de . No ex emplo abaix o. Mes s age B ox es (Caix as de Mens agem) As caix as de mens agem s ão us adas par a ex ibir r es ultados . er r os . m t E r r or .B utton1Click(S ender : T Obj ect). A mens agem é ex ibida em uma pequena caix a.Del phi 5 O objeto TFrame inserido dentro de um formulário. Vej a a s intax e do comando Mes s ageDlg: Mes s ageDlg(< Mens agem> .< T ipo da Caix a> . uma caix a de mens agem é ex ibida quando o botão B utton1 r ecebe um clique: pr ocedur e T For m1. Mt E r r or Mes s ageD l g( ' Men s agem de er r o' . como s ímbolos e títulos difer entes . Já o comando Mes s ageDlg ofer ece mais opções .

m bOK Cancel . Par a a entr ada de infor mações s imples . Es s a função mos tr a um caix a s imples com um campo par a a entr ada (um componente Edit) de dados e os botões OK e Cancelar . I nfelizmente. par a mos tr ar uma caix a de mens agem de avis o com os botões . é us ada uma var iável ‘NomeDoPais ’. mbAll Por ex emplo. No. end. < T ex to do pr ompt> . mbNo. I gnor e e Help. No e Cancel. você pode us ar a função I nputB ox . 'Digite o nome do país : '. do tipo S tr ing: pr ocedur e T For m1. Mos tr a os botões Abor t. lis tando o nome dos botões entr e colchetes .s e também adicionar botões es pecíficos . Pode. I nputB ox r etor na um S tr ing com o tex to digitado pelo us uár io. com ex ceção da opção mtCus tom que ex ibe o nome do pr oj eto como título (e não mos tr a s ímbolo es pecial). Par a r ecuper ar o que foi digitado na I nputB ox . O ter ceir o par âmetr o – < B otões > – é us ado par a definir o conj unto de botões que s er á ex ibido na par te de baixo da caix a de mens agem. 'Digite o nome do país : '.B utton1Click(S ender : T Obj ect). mbI gnor e. A função I nputB ox r ecebe tr ês par âmetr os : I nputB ox (< T ítulo da Caix a> . 0 ) . os títulos s ão s empr e em inglês . mbNo. mbHelp. Retr y e Cancel Mos tr a os botões OK e Cancel. Des ej a inter r omper a ex ecução do aplicativo?’. < T ex to padr ão> ). 0). 0 ) Note que os títulos das caix as de mens agem s ão s empr e o nome do tipo da caix a. Os conj untos pr edefinidos s ão r es umidos a s eguir : MbYes NoCancel MbAbor tRetr yI gnor e MbOK Cancel Mos tr a os botões Yes . . begin NomeDoPais : = I nputB ox ('Es colha de país '. Um deles foi us ado nos ex emplos anter ior es : mbOK Cancel. m t Con f i r m at i on. Yes . mbI gnor e. mbAbor t. Os botões dis poníveis s ão: mbYes . Há alguns conj untos de botões pr edefinidos . us e uma var iável par a ar mazenar o valor . 'B r as il'). mbHelp] . Não há como es pecificar outr os títulos par a as caix as us ando o comando Mes s ageDlg. Vej a um ex emplo a s eguir : I nputB ox ('Es colha de país '. [ mbYes . 'B r as il'). m bOK Can cel . mbOK . us e um comando como o s eguinte (a caix a é mos tr ada logo depois ): Mes s ageDlg(‘Houve um er r o de leitur a no dis co. No ex emplo a s eguir . S howMes s age('Nome do país es colhido: ' + NomeDoPais ).Del phi 5 m bOK Cancel . Mt Cu s t om Mes s ageD lg( 'Out r a m en s agem ' . con f i r m ação' . mtWar ning. mbCancel. m t Cu s t om . 0 ) . var NomeDoPais : S tr ing. que mos tr a os botões OK e Cancel. mbRetr y.

us ando a função I nputB ox . é pos s ível cr iar menus completos r apidamente. O Menu D es igner é aber t o com o pr im ei r o m enu s el eci on ado. você j á pode vis ualizar o menu no for mulár io. A dicionando menus e abrindo o Menu Designer Menus no Delphi s ão cr iados us ando os componentes MainMenu e PopupMenu. com comandos . ou clique com o botão dir eito no componente de menu e es colher o comando Menu Des igner . Cont i n ue di git an do os com an dos da m es m a m an ei r a. Com os r ecur s os do Menu Des igner do Delphi. mes mo em tempo de des envolvimento. us ando o Menu Des igner . pr es s i one a s et a par a di r eit a n o t ecl ado. O t ex t o di gi t ado apar ece n a pr opr i edade Capt ion. teclas de atalho. Par a mos tr ar o Menu Des igner par a um componente de MainMenu ou PopupMenu. Agor a di git e o t ext o par a o com an do. Es tes s ão os pr imeir os componentes da página S tandar d da paleta de componentes (vej a a figur a abaix o).Del phi 5 O ex emplo lê um nome de país . Depois de fechar o Menu Des igner . Clique duas vezes no componente MainMenu par a abr ir o Menu Des igner e s iga os pas s os a s eguir par a cada oper ação. É a par tir des s es ícones que s ão cons tr uídos os menus pr incipais e popup. Depois de cr iar um menu. você pode alter á. Você pode t am bém cli car n o pr óx im o t ít ul o.lo facilmente com o Menu Des igner . e ex ibe es s e nome em uma caix a de mens agem. O Delphi abr e o Menu Des igner dentr o de uma j anela s epar ada. Trabalhando commenus Os Menus s ão par te impor tante da maior ia dos aplicativos par a Windows . ou r emover comandos . O componentes de menus s Os dois componentes de menus s ão ex ibidos como ícones no for mulár io. . Par a cr iar um menu pr incipal em um for mulár io. A s eqüência de figur as a s eguir ilus tr a o pr ocedimento bás ico par a a cons tr ução de um menu pr incipal. D i gi t e o n ovo t ít ul o e pr es s i one E N T E R . Você pode ins er ir . P r es s i on e E NT E R out r a vez par a pas s ar par a o pr óxi m o com an do. faça o s eguinte: clique duas vezes no componente de menu. C onstruindo menus principais Menus pr incipais s ão os menus que apar ecem no topo das j anela pr incipal do aplicativo. Dois tipos bás icos de menus podem s er cr iados : menus pr incipais e menus popup. n o Obj ect I n s pect or . D epoi s de di gi t ar um t ít ul o. P ar a pas s ar par a o pr óxim o t ít u l o de m en u. Con t i nu e da m es m a f or m a par a adi cion ar os out r os com andos . apagar . pr es s i on e E NT E R . adicione um componente MainMenu e clique no componente duas vezes par a mos tr ar o Menu Des igner . s epar ador es e outr as opções . D i gi t e u m t ít ul o par a o m en u . por ex emplo. uma fer r amenta es pecífica par a a cr iação de menus . O pos i ção do pr im ei r o com an do do m en u é s elecion ada.

Par a apagar um comando: mova o cur s or par a o comando e pr es s ione DELET E (ou Del). O Delphi acr es centa um linha hor izontal (o s epar ador ) ao menu. ou par a dentr o de outr o menu (ou s ubmenu). Os s epar ador es s ão us ados par a or ganizar menus ex tens os . combinações de teclas . Par a adicionar um s epar ador a um menu: no Menu Des igner . s elecione o menu e alter e a pr opr iedade S hor tcut. agr upando comandos r elacionados . Note que o " E" apar ece s ublinhado no menu. es te s ubmenu também é apagado. Par a definir teclas de atalho par a um comando de menu. O pr ocedimento par a cr iar um s ubmenu é ex plicado na ilus tr ação abaix o: (Pag. As teclas de atalho s ão. Pr es s ione a tecla I NS ERT (ou I ns ). Par a definir teclas de aceler ação par a um título de menu ou comando. As s im. CT RL+ S HI FT + 1. As teclas de aceler ação s ão as letr as que apar ecem s ublinhadas nos menus . o Delphi per mite que s ej am definidas teclas de aceler ação e teclas de atalho. Definindo "teclas de aceleração" e teclas de atalho Par a que comandos de menus pos s am s er es colhidos r apidamente us ando o teclado. As teclas de atalho s ão us adas par a es colher comandos de menu r apidamente.) em vez de um nome par a o comando e pr es s ione ENT ER. B as ta digitar o tex to par a o comando. As teclas de atalho apar ecem ao lado dos comandos . na ver dade. como mos tr a a figur a abaix o. Você pode mover o comando par a outr a pos ição do mes mo menu. Um s epar ador apar ece como uma linha hor izontal entr e os comandos do menu. Um novo comando vazio é cr iado logo depois do cur s or . O es paço ocupado pelo s epar ador é menor quando o aplicativo é ex ecutado. como CT RL+ C. us ando ALT + E. a letr a " E" do menu " Editar " foi definida como tecla de aceler ação. é pos s ível es colher o menu com o teclado. s em a neces s idade de abr ir os menus . pelo teclado. C riando submenus Os s ubmenus s ão s imples mente " menus dentr o de menus " . nos menus . digite um " &" dentr o de s ua pr opr iedade Caption. Um comando ou título de menu com uma tecla de aceler ação pode s er es colhido. o s ubmenu é movido j unto com o comando. etc. Pode. us ando ALT com a tecla definida. T odos os comandos (e s ubmenus ) do menu s ão apagados . S e houver um s ubmenu as s ociado ao comando.s e es colher um item da lis ta ou digitar uma combinação dir etamente.29) . U m s epar ador em t em po de des en volvim ent o… … e em t em po de execução.Del phi 5 Par a ins er ir um novo comando: mova o cur s or (a bar r a az ul) par a o comando antes da pos ição que des ej a par a o novo comando. Par a mover um comando par a outr a pos ição: Ar r as te o comando par a outr a pos ição. antes do car acter e a s er definido como tecla de aceler ação. digite um hífen( . Par a apagar um menu inteir o: mova o cur s or par a o título do menu e pr es s ione DELET E. S e o comando movido contiver um s ubmenu. Na figur a a s eguir .

Depois . bas ta alter ar a pr opr iedade PopupMenu do componente par a o nome do componente PopupMenu adicionado. inclus ive B uttons . Nes te evento. Em s eguida. Cont i n ue di git an do os n ovos com ando s egui dos por E N T E R . atr avés do Menu Des igner . Muitas das pr opr iedades dos menus s ão definidas indir etamente. s ubmenu. digite o código a s er ex ecutado quando o comando for es colhido no aplicativo. digite o nome de cada comando. Par a alter ar es s as pr opr iedades . ou comando de menu no Menu Des igner .Del phi 5 P ar a adici on ar um s u bm enu a um com an do. no Menu Des igner . Par a cons tr uir um menu popup (adicionar itens e s ubmenus ) pr oceda da mes ma maneir a que par a os menus pr incipais Clique duas vezes no componente PopupMenu par a abr ir o Menu Des igner . s ão tr atados como componentes no Delphi. C onstruindo menus popup As técnicas us adas par a a cons tr ução de menus popup s ão pr aticamente as mes mas que as us adas par a os menus pr incipais . as s im como os pr ópr ios menus . Par a acr es centar outr as opções como s epar ador es ou teclas de atalho us e as mes mas técnicas des cr itas anter ior mente. Memos e for mulár ios . pr imeir o s elecione um menu. A figur a abaix o mos tr a um ex emplo de um menu popup no Menu Des igner : U m m en u popu p n o Men u D es i gn er A ssociando código aos comandos de ummenu Par a as s ociar código a um comando de menu (ou de s ubmenu). mas há algumas pr opr iedade que s ó podem s er alter adas dir etamente com o Obj ect I ns pector . como os outr os componentes comuns . Os menus popup podem s er as s ociados a muitos tipos de componentes . A s eguir s ão des cr itas algumas pr opr iedades impor tantes dos menus e dos comandos de menus . você deve adicionar um componente PopupMenu ao for mulár io que contém o componente. Par a as s ociar um menu popup a um componente. s el eci on e o com an do e pr es s ion e CT R L + S et a da D i r eit a. pois um menu popup é for mado por apenas um conj unto de comandos (e s ubmenus ). Note que os comandos de menus . O pr ocedimento é até mais s imples . s eguido de ENT ER. D i gi t e o pr im ei r o com an do do s u bm enu e pr es s i on e E NT E R . P ar a volt ar ao m en u pr i n ci pal. Eles pos s uem pr opr iedades e eventos . dê um duplo clique no comando. u s e E S C. I s s o ger a o código par a o evento OnClick do comando. P r opr i edade D es cr i ção .

a linha de código a s eguir . Par a es conder . e cor es do s is tema. Col or As cor es pr edef in idas do D el phi Cl Aqu a Cl Gr een cl Mar oon Azul pis cina Ver de es cur o Vinho cl F u ch s i a cl L i m e cl N avy Rox o clar o Ver de limão Azul mar inho cl Gr ay cl L t Gr ay cl Ol i ve Cinza es cur o Cinza clar o Ver de oliva . (Algumas pr opr iedades des cr itas não es tão dis poníveis par a todos os componentes ). O Menu Des igner per mite pas s ar de um menu par a outr o em um for mulár io. A altur a do componente s e tor na a mes ma do componente pai. Nes te capítulo. as bor das e as bar r as de r olagem. dependendo do que es tá s endo feito pelo us uár io. al T op/ al B ot t om : alinhamento pelo t opo/ bas e do componente pai. Por ex emplo. P r opr i edade Al i gn D es cr i ção Al i gn deter mina o alinhamento do componente em r elação ao for mulár io (ou a outr o componente em que es tej a contido). Quando Ch ecked = T r u e. Elas s ão apr es entadas na tabela a s eguir . inclus ive vár ios menus pr incipais . A ár ea cliente par a um for mulár io. As cor es pr edefinidas apar ecem no início da lis ta. que não dependem do s is tema. que dependem da configur ação definida no Painel de Contr ole do Windows . r apidamente. C omponentes visuais comuns Os componentes vis uais . Opções : alN on e: s em alinhamento es pecífico. E n abl ed R adi oI t em S h or t cu t Vi s i bl e Trabalhando comvários menus Um for mulár io pode conter vár ios menus . Alter e Default par a T r u e par a tor nar o comando s elecionado no comando padr ão do menu. alter a o menu pr incipal do for mulár io " For mPr incipal" par a o menu " MainMenu2" . é toda a ár ea do for mulár io menos a bar r a de título. Apes ar de s er pos s ível acr es centar vár ios menus pr incipais (componentes MainMenu) a um for mulár io.Menu: = MainMenu2. é ex ibido uma pequeno ‘v’ do lado es quer do do comando. O comando padr ão apar ece em negr ito no menu e é o comando es colhido quando s e clica duas vezes no título do menu. Comandos do mes mo gr upo com R adi oI t em = T r u e s ão mutuamente ex clus ivos : quando um comando do gr upo é ligado. Alter e Vi s i bl e par a ex ibir ou es conder um comando ou menu.Del phi 5 Capt i on Ch ecked D ef au l t Capt i on deter mina o tex to que apar ece no título ou comando de um menu. dentr o do Menu Des igner . Es s a pr opr iedade pode s er alter ada dur ante a ex ecução do aplicativo. N OT A: de agor a em diante chamar emos os componentes vis uais de apenas " componentes " . s omente um menu pr incipal pode es tar ativo de cada vez. Depois clique duas vezes em um item da lis ta. Propriedades comuns Os componentes vis uais pos s uem vár ias pr opr iedades comuns entr e s i. A lar gur a do componente s e tor na a mes ma do componente pai. al Cl i en t : alinhamento pela ár ea cliente do componente pai. clique com o botão dir eito e es colha o comando S elect Menu par a ex ibir a lis ta de menus do for mulár io. Ch ecked é us ado par a comandos que podem es tar ligados ou des ligados (opções ). Es ta pr opr iedade é us ada ger almente alter ada s omente em tempo de ex ecução. ver emos detalhes s obr e os componentes vis uais mais impor tantes e mais comumente us ados . s ão us ados par a a inter ação dir eta com o us uár io. As cor es dis poníveis dividem. faça Vi s i bl e = F al s e. (Es te é um r ecur s o dis ponível.s e em cor es pr edefinidas . par a des ativar ou ativar um comando. Alter e E n abl ed par a ativa ou des ativar o comando. todos os outr os s ão des ligados . R adi oI t em é s emelhante Ch ecked . O menu pr incipal us ado em um for mulár io é deter minado pela pr opr iedade Menu do for mulár io.Par a pas s ar par a um menu par a outr o. As teclas de atalho us adas par a ex ecutar o comando dir etamente pelo teclado. Um menu des ativado ( E n abl ed = F al s e) apar ece acinzentado em tempo de ex ecução e não pode s er es colhido. For mPr incipal. também chamados de contr oles . Des cr evemos a s eguir as mais impor tantes des s as pr opr iedades . mas mos tr a um pequeno cír culo no lado es quer do do comando. Color deter mina a cor da par te inter na do componente. mas pouco us ado no Windows ). por ex emplo. al L ef t / al R i gh t : alinhamento pela es quer da/dir eita do componente pai.

Es s a pr opr iedade – uma pr opr iedade compos ta – pode s er alter ada no Obj ect I ns pector . Habilita a ex ibição de " dicas " par a o componente. Par a um componente E di t . em pix els . em pix els . Max W i dt h : as lar gur as mínima e máx ima em pix els . o tex to definido na H ei gh t . O nome que identifica o componente. em pix els . A opção cr D ef au l t us a o cur s or padr ão do Windows (ger almente cr Ar r ow). tanto no Obj ect I n s pect or como em todos os pr ogr amas . o tex to apar ece mais clar o e não pode s er editado. T op é s emelhante. você deve alter ar a pr opr iedade S h ow H i n t par a T r u e. Par a que a dica r ealmente apar eça. Cu r s or T i pos de cu r s or es cr Ar r ow cr Cr os s cr lI B eam cr S QLWait cr S ize cr NES W cr NS cr Help cr NWS E cr WE cr UpAr r ow cr No cr Hour Glas s cr Dr ag cr NoDr op cr HandPoint cr HS plit cr VS plit cr MultiDr ag cr AppS tar t P r opr i edade E n abl ed D es cr i ção Alter e E n abl ed par a Fals e par a des ativar o componente. N OT A: alguns componentes (como B uttons ) s ó apar ecem des ativados em tempo de ex ecução. quando o mous e é colocado s obr e o contr ole. A opção cr N on e faz com que não s ej a mos tr ado um cur s or . Enabled = T r ue F on t Enabled = Fals e A fonte utilizada no contr ole. Defina aqui um menu popup par a o componente. do lado es quer do do for mulár io à bor da es quer da do componente. Os outr os tipos de cur s or es s ão mos tr ados a s eguir . Mi n W i dt h . W i dt h H int L ef t . Max H ei gh t : as altur as mínima e máx ima. Deter minam a altur a e a lar gur a do componente. T op N am e P opu pMen u S h ow H i n t . S e es ta for T r u e. Defina aqui um tex to par a a " Dica" que s er á ex ibida quando o cur s or do mous e pár a s obr e o contr ole por um momento. mas par a a dis tância ver tical. Cons tr aints é compos ta pelas s eguintes s ubpr opr iedades : Mi n H ei gh t . Par a um componente B u t t on . L ef t deter mina a dis tância. ou us ando a caix a de fonte padr ão do Windows (clicando nas r eticências ). Um componente des ativado não per mite inter ação com o us uár io (ele pár a de funcionar ).cinza Pr eto cl R ed cl W h i t e cl B l u e Ver melhão B r anco Azul pur o cl S i l ver cl Y el l ow Cinza médio Amar elão Es ta pr opr iedade deter mina as dimens ões mínimas e máx imas per mitidas par a o componente. Us e es ta opção par a definir o tipo de cur s or ex ibido. o tex to s e tor na acizentado e o componente não aceita mais cliques .Del phi 5 cl P u r pl e cl T eal cl B l ack Con s t r ai n t s Rox o es cur o Azul. por ex emplo.

Um componente per de o foco. Alter e D ef au l t par a T r u e. par a que o botão s ej a ativado com a tecla E NT E R . Vej a detalhes s obr es os mais impor tantes des s es eventos a s eguir . e de longe o mais us ado. A tecla é es pecificada no par âmetr o K ey (do tipo Char ) do evento. O valor padr ão (vis ível) é T r u e. On E x i t On K eyP r es s C omponente Button O componente B utton é. que ocor r e quando o botão é clicado uma vez. que pode s er us ado como identificador do componente. por ex emplo (vej a o capítulo s obr e Obj ect P as cal par a mais s obr e a es tr utur a cas e). (Vej a mais s obr e a or dem de tabulação no capítulo " For mulár ios e Caix as de Diálogo" ). ou us ando o teclado (com a tecla T AB e as teclas de dir eção). On E n t er é chamado quando o componente r ecebe o foco. Pode. On E x i t é chamado quando um componente per de o foco. O evento On Cl i ck . Vi s i bl e Eventos comuns Alguns eventos s ão comuns à maior ia dos componentes vis uais .s e us ar a pr opr iedade T ag (tr adução: " etiqueta" . E vent os O evento mais impor tante. Um númer o inteir o. Deter mina s e o componente es tá vis ível ou não. . On K eyP r es s ocor r e quando uma tecla é pr es s ionada e s oltada. um dos componentes mais comuns em aplicativos par a Windows . defina es ta pr opr iedade como F al s e. T abS t op T ag T abOr der define a or dem de tabulação do componente. P r opr i edade Capt i on Can cel D ef au l t D es cr i ção Capt i on deter mina o tex to ex ibido no botão. quando outr o componente r ecebe o foco (s omente um componente pode es tar com o foco em um for mulár io). E x em pl os de com ponent es B ut t on P r opr i edades Vej a a s eguir as pr opr iedades impor tantes do componente B utton. OnClick é o evento padr ão par a es s e componente. Um componente r ecebe o foco quando é ativado de alguma maneir a – us ando o mous e (com um ou mais cliques ). quando o ponteir o do mous e é deix ado por alguns momentos s obr e o contr ole. O evento On D bl Cl i ck ocor r e quando o componente r ecebe um clique duplo. E ven t o On Cl i ck On D bl Cl i ck On E n t er D es cr i ção Es te é o evento mais us ado par a quas e todos os componentes . também com o botão es quer do (botão padr ão) do mous e.Del phi 5 pr opr iedade H i n t é ex ibido em um pequena caix a amar ela (a " dica" ). com o botão es quer do (botão padr ão) do mous e. " identificação" ) em es tr utur as cas e. par a o componente B utton é o evento OnClick. Es ta pr opr iedade nor malmente s ó é alter ada (e s ó tem efeito) em tempo de ex ecução. O valor de T abOr der s ó faz s entido s e a pr opr iedade T abS top es tiver definida como T r ue. T abOr der . Alter e Can cel par a T r u e par a que o botão s ej a ativado com a tecla E S C. s em s ignificado es pecífico. ocor r e quando o componente r ecebe um clique. Par a es conder um componente. O componente que " r ecebe" o evento é o que es tá com o foco.

S el T ex t E vent os Além dos eventos comuns . s ão des cr itas as pr opr iedades mais impor tantes do componente Label. s e não houver tex to s elecionado. S el L en gt h . P r opr i edade D es cr i ção . mas não a lar gur a. mas r es tr ingindo o tex to par a maiús culas Defina aqui a Quantidade máx ima de car acter es que podem s er digitados dentr o do E di t . T udo o que é digitado é s ubs tituído pelo car acter e es pecificado em P as s w or dCh ar . S el T ex t pode s er us ado par a s ubs tituir o tr echo s elecionado por outr o tr echo de tex to. como telefones e códigos . P r opr i edade Au t oS el ect Au t oS i z e Ch ar Cas e D es cr i ção S eleciona automaticamente todo o tex to no E di t quando o componente r ecebe o foco no for mulár io. S el T ex t é o tex to s elecionado no Edit. C omponente Label O componente Label é us ado. ecU pper Cas e: tem efeito s emelhante ao de ecL ow er Cas e. o componente Edit ofer ece o evento OnChange. por ex emplo). OnChange é o evento padr ão par a o componente Edit. O valor zer o (o padr ão) não impõe limites . P r opr i edades A s eguir . O tex to de um Label é alter ado atr avés da s ua pr opr iedade Caption. Você pode ler os valor es de S el S t ar t ou S el L en gt h par a deter minar o tr echo s elecionado no E di t . E x em pl os de com ponent es E di t P r opr i edades S eguem des cr ições das pr opr iedades mais impor tantes do componente Edit. us e o componente Memo. S el S t ar t é a pos ição do pr imeir o car acter e s elecionado no E di t . que per mite a alter ação nor mal do tex to. ou a pos ição do cur s or . par a identificar componentes em um for mulár io. Par a tex tos com mais de uma linha. Max L en gt h P as s w or dCh ar R eadOn l y S el S t ar t . S ão tr ês as opções dis poníveis : ecN or m al : (padr ão) per mite digitar tex tos de qualquer maneir a (maiús culas e minús culas em qualquer or dem). ecL ow er Cas e: r es tr inge todo o tex to a minús culas . A opção F al s e é a opção padr ão. Max Length é ideal par a limitar o tamanho da entr ada par a valor es ou tex tos com tamanhos fix os . é aj us tada. Aj us ta a altur a do E di t automaticamente (no cas o de mudanças de fonte ou tamanho. Contr ola a " caix a" (maiús culas e minús culas ) do tex to digitado no E di t . S el L en gt h é o númer o de car acter es s elecionados . S omente a altur a. Es s e componente s upor ta apenas uma linha de tex to. mes mo s e o us uár io us ar as teclas S H I F T e CAP S L OCK . O padr ão é '# 0' que faz com que o tex to digitado apar eça nor malmente. Define o car acter e ex ibido no componente quando o tex to é digitado (nor malmente as ter is cos s ão utilizados ). O evento OnChange ocor r e quando o tex to no Edit é alter ado.los par a s elecionar um tr echo difer ente. des cr ito em s eguida. ou alter á. T odo o tex to é tr ans for mado par a minús culas . como OnClick e OnDblClick.Del phi 5 C omponente Edit O componente Edit per mite a entr ada (e a ex ibição) de tex tos e valor es . ger almente. Alter e R eadOn l y par a T r u e par a não per mitir que o us uár io alter e o conteúdo do E di t .

Par a as pr opr iedades comuns ao componente Edit vej a a s eção s obr e es s e componente. os eventos OnClick e OnDblClick s ão utilizados par a r ealizar alguma oper ação es pecial no componente as s ociado ao Label. acr es cente um car acter e " &" dentr o da pr opr iedade Caption.las . Quando o us uár io pr es s iona a tecla de atalho definida par a o L abel . O componente ao qual o L abel es tá as s ociado. Algumas vezes .Del phi 5 Al i gn m en t Au t oS i z e F ocu s Con t r ol O alinhamento do tex to do L abel em r elação à ár ea que lhe foi r es er vada Deter mina s e o L abel deve ter s eu tamanho aj us tado automaticamente ou não. Opções : t l T op/ t l Cen t er / t l B ot t om : alinham o tex to do Label pelo t opo/ cen t r o/ bas e da ár ea r es er vada. E x em pl os de com ponent es Mem o P r opr i edades Vej a a s eguir detalhes s obr e as mais impor tantes pr opr iedades (ex clus ivas ) do componente Memo. Deter mina s e o tex to do L abel é quebr ado em vár ias linhas quando não há es paço s uficiente par a ex ibi. Clique duas vezes ao lado des s a pr opr iedade no Obj ect I n s pect or (ou clique nas r eticências ) par a ex ibir a j anela " S tr ing lis t editor " (ilus tr ação a s eguir ). T AB e vár ias outr as teclas comuns de edição. par a per mitir as quebr as de linhas e F al s e par a evitá. Us e T r u e. Pode.s e us ar E N T E R . Digite o tex to nor malmente na j anela. . Layout deter mina o alinhamento ver tical do tex to do Label em r elação à ár ea r es er vada par a ele. (Vej a mais s obr e a pr opr iedade Lines a s eguir ). o componente r ecebe o foco. C omponente Memo O componente Memo é uma ex tens ão do componente Edit que per mite a edição de vár ias linhas de tex to. como em " Pr o&duto" . Par a definir uma tecla de atalho par a um L abel . (Labels não podem r eceber o foco). Ele apr es enta todas as pr opr iedades do componente Edit e mais algumas es pecíficas par a per mitir o tr abalho com tr echos ex tens os de tex to. L ayou t W or dW r ap E vent os Os eventos de um Label s ão r ar amente utilizados . quando o compr imento do s eu tex to (valor da pr opr iedade Caption) é alter ado.lo em uma linha s ó. ou " &Abr ir " . P r opr i edade L i n es D es cr i ção A pr opr iedade L i n es deter mina o tex to ex ibido no Mem o .

S cr ol l B ar s W an t R et u r n s W an t T abs W or dW r ap A pr opr i edade L i nes A pr opr iedade Lines .) pr ocedur e T For mT es teMemo.Append(‘Outr a linha’). que deter mina o conteúdo do componente Memo. A difer ença entr e Add e Append é que Add r etor na um valor : o índice da linha adicionada. t aCen t er (alinhar pelo centr o). na par te de baix o. As opções r es tantes s ão: s s Ver t i cal : mos tr a s omente a bar r a de r olagem ver tical. A opção padr ão é s s N on e . Car acter es de tabulação s ão ins er idos na pos ição do cur s or .s e. os T AB s digitados vão par a o for mulár io. us e o método Delete (Í ndice). Vár ios outr os componentes . Por ex emplo. O ex emplo a s eguir apaga as pr imeir as cinco linhas de um componente Memo.Lines . Par a adicionar linhas . Defina W an t R et u r n s como F al s e. e t aR i gh t Ju s t i f y (alinhar pela dir eita). (Note que a pr opr iedade Lines é index ada a par tir de zer o. Já s e W an t T abs es tiver em T r u e. Append não r etor na um valor . s e um for mulár io tem um botão padr ão que é ativado com a tecla E N T E R ( D ef au l t = T r u e). como o Lis tB ox e o ComboB ox também us am pr opr iedades des te tipo. um conj unto index ado de s tr ings . var I : I nteger . pode. ou Memo1. ver ificar ou alter ar a linha com um deter minado índice. us ando a tecla E N T E R (ou R E T U R N ). s s B ot h : mos tr a as duas bar r as de r olagem. o botão padr ão é es colhido – não é ins er ida um nova linha no tex to. Es ta pr opr iedade é s emelhante a W an t R et u r n s (acima). como em: Memo1. par a pas s ar a digitação da tecla E N T E R par a o for mulár io.s e digitar novas linhas no Mem o . por ex emplo adicionar ou r emover linhas . s s H or i z on t al : mos tr a s omente a bar r a de r olagem hor izontal. Deter mina quais bar r as de r olagem s ão ex ibidas par a o Mem o . N OT A: mes mo com W an t T abs em F al s e. O valor T r u e ativa a quebr a automática de linhas . pode. ou apagar todas as linhas .B tApagar Click(S ender : T Obj ect). Pode. Deter mina s e as linhas de tex to dentr o do Mem o s ão quebr adas automaticamente ou não.Add(‘Uma linha’). S ão tr ês as opções dis poníveis : t aL ef t Ju s t i f y (alinhar à es quer da). pas s ando o foco par a outr os componentes (da for ma us ual). . S e W an t T abs es tiver em F al s e.Lines . us ando CT R L + E N T E R . que não ex ibe nenhuma das duas bar r as de r olagem. Pr opr iedades do tipo T S tr ings podem s er manipuladas de vár ias maneir as . N OT A: mes mo com W an t R et u r n s em F al s e. us e o método Add ou Append. Alter e W an t R et u r n s par a T r u e par a per mitir que os us uár ios cr iem novas linhas dentr o do Mem o . e a pr opr iedade W an t R et u r n s es tá definida como F al s e.Del phi 5 O S t r in g li s t edit or Al i gn m en t Define como é alinhado o texto dentr o do componente Memo. do lado dir eito. s ó que par a a tecla T AB . à dir eita e abaix o do Memo.s e digitar T AB s em um Mem o us ando CT R L + T AB . os T AB s vão par a dentr o do Memo. Par a r emover linhas . é do tipo T S tr ings .

Par a r emover todas as linhas . E vent os Os eventos mais impor tantes do componente Memo s ão os mes mos do componente Edit e têm o mes mo s ignificado. S e I n t egr al H ei gh t for definida como T r u e. end. mas as teclas CT R L e S H I F T não funcionam.1 downto 0 do Memo2.Lines . as linhas de um Memos ão copiadas . o último item da lis ta s ó s er á ex ibido s e couber inteir amente na par te de baix o da lis ta (não apar ecendo cor tado). par a outr o (a pr opr iedade Count r etor na o númer o de linhas ).Lines . Outr a maneir a mais s imples é us ar o método Clear do Memo. Finalmente. o valor de E x t en dedS el ect não impor ta.Lines . na or dem inver s a. us e o método Clear .contíguos ) e S H I F T (par a s elecionar uma s equência de itens ). S e o númer o de colunas for maior que um. Os itens ex ibidos s ão definidos alter ando a pr opr iedade I tems . begin for I : = Memo1. end. Defina S or t ed como T r u e par a que os i t en s do L i s t B ox s ej am or denados alfabeticamente (ou numer icamente). Fals e lis ta as opções na or dem em que for am Mu l t i S el ect . Quando ambas Mu l t i S el ect e E x t en dedS el ect es tão em T r u e. os itens do L i s t B ox s ão dis pos tos em colunas e é ex ibida uma bar r a de r olagem hor izontal.Add(Memo1. por ex emplo. C omponente ListBox O componente Lis tB ox ex ibe uma lis ta de itens que podem s er es colhidos com um clique do mous e. I t em s é ex atamente equivalente à pr opr iedade L i n es do componente Mem o . us e a pr opr iedade Lines s eguida pelo índice da linha. s e Mu l t i S el ect es tiver em Fals e. pois s omente um item pode s er s elecionado na lis ta.B tI nvLinhas Click(S ender : T Obj ect).Del phi 5 begin for I : = 0 to 4 do Memo1. vár ios itens podem s er s elecionados na lis ta us ando as teclas CT R L (par a s elecionar itens não.Lines [ I ] ). E x t en dedS el ect I n t egr al H ei gh t S or t ed . Com I n t egr al H ei gh t em F al s e. como em Memo1. Deter mina o numer o de colunas do L i s t B ox .Clear . No ex emplo a s eguir . E x em pl os de com ponent es L i s t B ox P r opr i edades As pr opr iedades mais impor tantes do componente Lis tB ox s ão des cr itas a s eguir . como em Memo1.Clear . As duas maneir as s ão completamente equivalentes . pr ocedur e T For mT es teMemo. o último item é mos tr ado mes mo que apar eça cor tado no final da lis ta.Delete(I ). Memo1. A pr opr iedade E x t en dedS el ect é us ada em as s ociação com a pr opr iedade Mu l t i S el ect par a per mitir a s eleção de vár ios itens no L i s t B ox . O evento OnChange acontece quando o tex to do Memo é alter ado.Lines [ 9] r etor na a décima linha. Par a ler /alter ar uma linha es pecífica. S e E x t en dedS el ect ed es tiver em F al s e (com Mu l t i S el ect em T r u e) é pos s ível s elecionar vár ios itens (bas ta clicar ). P r opr i edade I t em s Col u m n s D es cr i ção A pr opr iedade I t em s deter mina os itens ex ibidos no L i s t B ox . O evento OnClick ocor r e quando o us uár io clica em qualquer local do inter ior do Memo. entr e colchetes .Lines .Count. var I : I nteger .

S e mais de um item es tiver s elecionado. Es ta pr opr iedade é do tipo T S tr ings e é idêntica à pr opr iedade Lines do Memo e à pr opr iedade I tems do Lis tB ox . Es tas pr opr iedades . O pr imeir o item do L i s t B ox tem índice zer o. com elementos par a todos os itens do L i s t B ox . T opI n dex D es cr i ção Deter mina o númer o de itens lis tados (o padr ão é 8) Leia I temI ndex par a deter minar o índice do item s elecionado no ComboB ox .1. O evento OnDblClick é chamado quando um item do Lis tB ox é clicado duas vezes . A pr opr iedade S el ect ed é um ar r ay de valor es bool ean os . o índice do pr imeir o item s elecionado é r etor nado.B tMover Click(S ender : T Obj ect). C omponente C omboBox O componente ComboBox é uma combinação de um componente Edit com um componente Lis tBox .1 do if Lis tB ox 1. O ComboB ox mos tr a uma lis ta de opções (o Lis tB ox ) e uma ár ea onde s e pode digitar livr emente (o Edit).Count. par a definir o pr imeir o item ex ibido no L i s t B ox . s ão idênticas às de mes mo nome par a o componente Lis tB ox (vej a a s eção s obr e es te componente). Vej as as mais impor tantes pr opr iedades a s eguir .Del phi 5 adicionadas . I t em I n dex . Max L en gt h O númer o máx imo de car acter es que pode s er digitado na par te de cima do ComboB ox (a ár ea de digitação). Mu l t i S el ect . S e nenhum item es tiver s elecionado I t em I n dex r etor na . var I : I nteger . Leia/alter e T opI ndex par a deter minar /alter ar o pr imeir o item ex ibido na lis ta de opções (par te de baix o do ComboB ox ). S el Cou n t . por ex emplo.Lines . P r opr i edade D r opD ow n Cou n t I t em I n dex . end. como adicionar o item s elecionado a outr o componente. Es s e evento é ger almente us ado par a r ealizar ações imediatas . us adas par a a s eleção de múltiplos itens .S elected[ I ] then Memo1.I tems [ I ] ). . Leia T opI n dex (também em tempo de ex ecução) par a deter minar o índice do pr imeir o item vis ível no L i s t B ox . T opI n dex Leia I t em I n dex (em tempo de ex ecução) par a deter minar o índice do item s elecionado no L i s t B ox . S el Cou n t S el ect ed S el Cou n t r etor na o númer o de itens s elecionados no L i s t B ox . E vent os O evento OnClick par a um Lis tB ox é chamado quando um item da lis ta é s elecionado com o mous e. E x em pl os de com ponent es Com boB ox P r opr i edades O componente ComboBox apr es enta quas e todas as pr opr iedades dos componentes Lis tB ox e Edit. I t em s Os itens lis tados na par te de baix o no ComboB ox . S e Max Length for zer o (o valor padr ão).I tems . E x t en dedS el ect . Alter e o valor de T opI n dex . O s eguinte código lê os valor es em S el ect ed par a copiar todos os itens s elecionados em um L i s t B ox par a um componente Mem o : pr ocedur e T For m1. begin for I : = 0 to Lis tB ox 1.Add(Lis tB ox 1. o númer o é ilimitado.

O es tado inicial do Ch eckB ox . des mar cado (unchecked). Ela deter mina a apar ência e o compor tamento (o es tilo) do Com boB ox . o Com boB ox per mite que s ej a es colhido um valor da lis ta ou que s ej a digitado um valor na par te de cima. cs S i m pl e: é uma opção us ada nas caix as " Abr ir " e " S alvar " da maior ia dos aplicativos par a Windows . O evento OnClick é chamado quando o us uár io clica em algum item da lis ta. O s ignificado des s e es tado depende do aplicativo. Vej a abaix o a apar ência de um Ch eckB ox par a cada um dos tr ês es tados : Ch ecked S t at e cbUnchecked cbChecked cbGr ayed . Alter e Al l ow Gr ayed par a T r u e par a per mitir mais um es tado par a o Ch eckB ox : o es tado acinzentado. C omponente C heckBox O componente CheckB ox é us ado par a per mitir a es colha de opções não mutuamente ex clus ivas (vár ias opções podem s er es colhidas ao mes mo tempo). Par a cada CheckB ox há um título as s ociado. par a que os itens do ComboB ox s ej am or denados Es ta é uma das pr opr iedades mais impor tantes . ou acizentado (gr ayed). O us uár io fica r es tr ito s omente às opções da lis ta. a lis ta s e aj us ta automaticamente. Um CheckB ox pode es tar em tr ês es tados : mar cado (checked). cs D r opD ow n L i s t : com es ta opção. P r opr i edades As pr opr iedades mais impor tantes do componente CheckB ox s ão des cr itas a s eguir .Del phi 5 S el ect ed S or t ed S t yl e Alter e S or ted par a T r ue alfabeticamente. E vent os O evento OnChange é chamado quando o tex to na par te de cima da lis ta é alter ado. F als e des mar ca. Us e S t at e par a alter ar ou ler o es tado do Ch eckB ox . Os tr ês es tados pos s íveis s ão cbU n ch ecked (des mar cado). As opções s eguintes s ão as mais us adas : cs D r opD ow n : com es ta opção. a par te de cima da caix a não pode s er alter ada. Par a es s a opção. Aqui a lis ta de opções é s empr e ex ibida (o númer o de itens ex ibidos depende do tamanho do Com boB ox ). T r u e mar ca o Ch eckB ox . Ele pode. O título que identifica o Ch eckB ox . enquanto você digita na par te de cima. P r opr i edade Al i gn m en t Capt i on Al l ow Gr ayed D es cr i ção O alinhamento do título do Ch eckB ox . cs Dr opDown cs Dr opDownLis t cs S imple T ex t O tex to na par te de cima do Com boB ox . indicar que uma opção es tá em um es tado inter mediár io: nem ligada nem des ligada. A opção cbGr ayed s ó tem efeito s e a pr opr iedade Al l ow Gr ayed for T r u e. fazendo o item mais pr óx imo do que es tá s endo digitado pas s ar a s er a pr imeir a da lis ta. por ex emplo. cbCh ecked (mar cado) e cbGr ayed (acinzentado).

Par a is s o. ou apagar ou acr es centar RadioB uttons . C omponente G roupBox O componente Gr oupB ox é muito útil par a a or ganização de for mulár ios complex os . Como par a o componente CheckB ox . OnClick é o evento mais us ado par a RadioGr oups . Dentr o do código par a o evento OnClick. ver ifique a pr opr iedade I temI ndex par a deter minar qual RadioB utton foi s elecionado. Par a or ganizar os RadioB uttons em mais de uma coluna. . Um clique também automaticamente mar ca (ou des mar ca) o CheckB ox . Um RadioB utton s ó pode es tar em dois es tados : ligado ou des ligado. O componente RadioGr oup (des cr ito a s eguir ) é ger almente us ado em vez do componente RadioB utton. Par a adicionar RadioB uttons . E x em pl os de R adi oB ut t on s As pr opr iedades do componente RadioB utton s ão pr aticamente as mes mas que par a o componente CheckB ox . alter e a pr opr iedade Columns .lo e par a Fals e par a des ligá. ver ifique a pr opr iedade Checked. aumente ou diminua o tamanho do RadioGr oup.Del phi 5 E vent os O evento OnClick é o evento mais us ado par a o componente CheckB ox . Par a alter ar o es paçamento entr e cada RadioB utton. alter e a pr opr iedade I tems . Alter e a pr opr iedade Checked do botão par a T r ue par a ligá. A pr opr iedade I temI ndex deter mina qual RadioB utton es tá s elecionado. Par a alter ar os títulos dos RadioB uttons . O evento OnClick ocor r e quando o CheckB ox r ecebe um clique. que s ó pode conter RadioB uttons . o evento mais us ado é o evento OnClick.lo. C omponente RadioG roup O componente RadioGr oup é uma ver s ão es pecial do componente Gr oupB ox (des cr ito a s eguir ). C omponente RadioButton O componente RadioB utton é us ado ger almente par a a es colha entr e opções mutuamente ex clus ivas (uma opção cancela a outr a). alter e a pr opr iedade I tems (da mes ma for ma que par a os componentes Lis tB ox e ComboB ox ). E x em pl os de R adi oGr ou ps Os RadioB uttons dentr o de um RadioGr oup não podem s er alter ados dir etamente. Os eventos do componente RadioB utton s ão ex atamente os mes mos que os do componente CheckB ox . N OT A: você não pr ecis a us ar o evento OnClick par a ver ificar s e um CheckB ox es tá mar cado ou não. os componentes contidos nele s ão movidos ou apagados também. O es paçamento é aj us tado automaticamente. Componentes adicionados a um Gr oupB ox pas s am a fazer par te do Gr oupB ox . S e o Gr oupB ox for movido ou apagado.

Vej a a s eguir as pr opr iedades us adas com mais fr eqüência. O Delphi ofer ece vár ios eventos par a os componentes Gr oupB ox . S ó tem efeito quando a pr opr iedade B evel I n n er tem o valor bvL ow er ed ou bvR ai s ed . alter e s ua pr opr iedade Caption. mas es tes s ão r ar amente us ados . us e os eventos des s es componentes . A maior ia das pr opr iedades do componente Panel afetam apar ência do componente no for mulár io. O tex to ex ibido dentr o do P an el . Par a es colher o tipo do B itB tn. com a capacidade de ex ibir imagens e r ealizar algumas ações comuns . Há vár ios tipos pr edefinidos de componentes B itB tn. A opção bvN on e (a opção padr ão) r etir a o efeito tr idimens ional da par te inter na do P an el . O tex to é deter minado pela pr opr iedade Capt i on . como o Gr oupB ox . um componente s ó pode s er movido par a for a dele us ando os comandos Cut e Pas te. S e você apagar todo o tex to des s a pr opr iedade. C omponente Panel O componente Panel é us ado. s imples mente clique dentr o do Gr oupB ox ao adicionar o componente. A opção bvL ow er ed faz com que a par te inter na par eça " abaix ada" . bvR ai s ed tem o efeito contr ár io (apar ência levantada). s ó que par a a par te ex ter na do P an el . P r opr i edade Al i gn m en t B evel I n n er D es cr i ção Deter mina o alinhamento do tex to do P an el (s e houver ). A . B evelI nner = bs Rais ed B evel Ou t er B evel W i dt h B evelI nner = bs Lower ed I dêntico à pr opr iedade B evel I n n er . Uma vantagem do Panel em r elação ao Gr oupB ox é a s ua ver s atilidade. pr incipalmente nos s eus r ecur s os vis uais . Es pecifica a maneir a como a par te inter na do P an el é ex ibida. Depois de adicionado a um Gr oupB ox . A dis tância entr e os efeitos tr idimens ionais inter no e ex ter no. C omponente BitBtn O componente B itB tn é uma ver s ão es pecializada do componente B utton. par a agr upar componentes r elacionados . A intens idade do efeito tr idimens ional (vej a as figur as ). alter e a pr opr iedade K ind. E s te componente é muito us ado par a a cr iação de caix as de diálogo. a caix a de gr upo s e tr ans for ma apenas em um contor no r etangular (is s o é us ado com fr equência). B evelWidth = 1 B or der S t yl e B or der W i dt h Capt i on B evelWidth = 5 B evelWidth = 10 Deter mina s e é ex ibida ou não uma moldur a em volta do P an el . Par a alter ar o título de um Gr oupB ox .Del phi 5 E x em pl o de Gr ou pB ox Par a adicionar um componente a um Gr oupB ox . Par a lidar com eventos dos componentes dentr o de um Gr oupB ox .

bem como a ação r ealizada. begin Edit1. cas o contr ár io. etc. dependem do valor es colhido par a a pr opr iedade K ind. 2. Um identificador não pode começar com um númer o. Usando o comando de atribuição O comando de atr ibuição é um dos mais us ados em muitas linguagem de pr ogr amação. pr ocedur es .Del phi 5 apar ência do botão (a imagem e o tex to que apar ecem nele). Ex emplos de identificador es s ão nomes de var iáveis . ◊ Roni Peter s on Entendendo identificadores I dentificador es (I dentifier s ) s ão os nomes que identificam os elementos de um pr ogr ama em Obj ect Pas cal. O comando de atr ibuição é us ado par a a alter ar valor es de var iáveis e pr opr iedades no Delphi. Es s e valor pode s er outr a var iável ou pr opr iedade. ou com o car acter e de s ublinhado (_ ).T ex t : = 'Novo tex to'. functions e componentes . como j á vimos . cons tantes . o Delphi ger a er r os na compilação. Os tipos mais comuns de B itB tns s ão ilus tr ados a s eguir . Memo1. Um identificador deve s eguir as s eguintes r egr as bás icas : 1. Pode ter até 63 car acter es . if ou end. Em Obj ect Pas cal todos os identificador es us ados devem s er declar ados . Os ar quivos de pr oj eto e as Units . a par te dir eita é o novo valor que s er á atr ibuído à var iável ou pr opr iedade.B utton1Click(S ender : T Obj ect). . Nos capítulos anter ior es us amos vár ias vezes pequenas par tes da linguagem Obj ect Pas cal (dentr o do código par a os eventos . Quando você declar a um identificador . númer os ou s ublinhados .ReadOnly : = T r ue. Já mos tr amos vár ios ex emplos que us am atr ibuição. Os tipos dos dois lados devem s er os mes mos . 3. end.Color : = clRed. Os outr os car acter es de um identificador (do s egundo em diante) podem s er letr as . ou outr a ex pr es s ão. por ex emplo). Val or de K i n d bkAbor t bkCan cel bkCl os e B kI gn or e Apar ên ci a do B it B t n Val or de K i n d bkN o bkOK bkR et r y bkY es Apar ên ci a do B it B t n AlinguagemO bject Pascal A linguagem Obj ect Pas cal é a linguagem por tr ás de quas e todas as par tes de um aplicativo no Delphi. a par te es quer da é um nome de uma var iável ou de uma pr opr iedade.). Um identificador não pode s er uma palavr a r es er vada da linguagem Obj ect Pas cal (como begin. 5. você es tá definindo um tipo par a ele (como inteir o. O comando de atr ibuição. Aqui es tá mais um: pr ocedur e T For m1. Edit1. uma cons tante. por ex emplo). I dentificador es devem começar s empr e com letr as . s ão es cr itos em Obj ect Pas cal. O código us ado par a cr iar os componentes pr edefinidos do Delphi é também pr aticamente todo nes s a linguagem. S tr ing. ou pelo menos compatíveis . 4. como s e vê é for mado por duas par tes . Nes te capítulo ver emos como us ar r ecur s os mais avançados da linguagem e como cr iar pr ogr amas que não dependam s omente da inter face com o us uár io. Qualquer car acter e que pas s e des s e limite é ignor ado pelo compilador do Delphi.

S oma: = X + Y. lembr e. S oma: I nteger . O tipo ideal par a valor es monetár ios (us e es te tipo em vez de Double. com quatr o cas as decimais . S tr ings podem ter tamanho pr aticamente ilimitado.chave var . end. As s ume. Y: = S tr T oI nt(Edit2.324 até 1. Númer os r eais de alta pr ecis ão. par a es s es valor es ). ou no início de uma pr ocedur e ou function (antes da palavr a.5808 até 922337203685477. Númer os r eais de alta pr ecis ão.B utton1Click(S ender : T Obj ect). com o r es ultado da s oma.chave cons t cons tituem o chamado bloco de cons tantes . S howMes s age('S oma = ' + I ntT oS tr (S oma)).483.chave con s t .5807 (mais de 900 tr ilhões ).147.147.s e que há dois componentes Edit no for mulár io. Y e S oma). As funções S tr T oI nt e I ntT oS tr conver tem o tipo de S tr ing par a o I nteger (I nteir o) e de I nteger par a S tr ing.483. Y: I nteger . os s eguintes er r os s er iam mos tr ados na compilação (na par te de baix o do Editor de Código): Por tanto. j unto com a palavr a. Declar ações devem s er agr upadas no início do pr ogr ama.s e s empr e de declar ar todas as var iáveis us adas nos s eus pr ogr amas ! T i pos de var i ávei s O tipo declar ado par a uma var iável define o conj unto de valor es per mitidos par a aquela var iável.Del phi 5 Declarando variáveis A declar ação de uma var iável define o nome e o tipo da var iável.T ex t). pr ocedur e T For m1. Valor es booleanos s ó podem ter valor es T r ue (ver dadeir o) ou Fals e (fals o). Há vár ios tipos muito par ecidos entr e s i. As declar ações das cons tantes . que s ão us ados apenas par a manter compatibilidade com ver s ões anter ior es da linguagem Pas cal. As declar ações . O pr ogr ama (tr ivial) abaix o mos tr a um ex emplo de declar ação de var iáveis .0 x 10 .647 até 2. T am an h o 4 bytes 8 bytes 8 bytes 8 bytes B ool ean Ch ar S t r ing 1 byte 1 byte Var iável Declarando constantes Cons tantes s ão us adas em pr ogr amas par a ar mazenar valor es que não podem (ou não devem) s er alter ados em um pr ogr ama. I dêntico a Double. T i po I n t eger D ou bl e R eal Cu r r en cy D es cr i ção Númer os inteir os (s em par te fr acionár ia) que podem var iar de . Car acter es ANS I (padr ão) Cadeias de car acter es com tamanhos que podem var iar dinamicamente. S ão declar adas tr ês var iáveis inteir as (X. r es pectivamente. Declar ações de cons tantes devem s er pr ecedidas pela palavr a.7 x 10 308 . Declar ações de var iáveis devem s er pr ecedidas pela palavr a. S e as var iáveis des s e pr ogr ama não fos s em declar adas . Abaix o lis tamos os tipos mais comumente us ados .T ex t).2. Uma var iável com es s e tipo pode var iar de – 922337203685477. Podem var iar de 5. Ao contr ár io das . Um caix a de mens agem é ex ibida no final. Us ado par a númer os muito gr andes ou muito pr ecis os .chave begin). com até 16 dígitos s ignificativos .647. j unto com a palavr a. begin X: = S tr T oI nt(Edit1. onde s ão digitados os dois valor es a s er em s omados . Há uma gr ande quantidade de tipos dis poníveis em Obj ect Pas cal. Númer os r eais de alta pr ecis ão. var X.chave var cons tituem o chamado bloco de declar ação de var iáveis .

Aqui. você pode us á. " VelocidadeMax ima" com tipo Real (ou Double) e " T itulo" com tipo S tr ing. O s eguinte ex emplo ger a um er r o de compilação..360. Vej a alguns ex emplos : type T DiaUtil = (S egunda. que deve s er colocada antes das definições dos tipos (tal como var e cons t). Tipos estruturados Pode. Regis tr os e vár ios outr os . Quinta.. VelocidadeMax ima = 225. T Hor aValida = 0. Quar ta. T Fabr icante = (Chevr olet. pr ocedur e T For mT es teRange. Tipos enumerados A declar ação de um tipo enumer ado lis ta dir etamente todos os valor es que uma var iável pode conter . bas eando. T ipos cr iados a par tir dos tipos bás icos s ão chamados T ipos Es tr utur ados . Além dis s o. Fabr icante: T fabr icante. Quando uma var iável e definida com um tipo de inter valo. ver ifica as alter ações nes ta var iável e ger a er r os de compilação quando os limites do inter valo s ão violados . Você define novos tipos us ando a palavr a. S ex o: T s ex o. o Delphi. a var iável " Hor a" s ó pode es tar entr e 0 e 23 e a var iável " angulo" deve es tar entr e 0 e 360.360.. A linguagem Obj ect Pas cal per mite também cr iar T ipos enumer ados . T ipos de inter valo s ão úteis quando é neces s ár io limitar uma var iável a um inter valo contínuo de valor es . T itulo = ‘Ecos s is temas ’. de acor do com o valor definido par a cada cons tante. Feminino). I nteger . Vej a a s eguir ex emplos de definições de tipos de inter valo: type T Gr aus = 0. T Maius cula = ‘A’. T S ex o = (Mas culino. ou de tipos enumer ados . Vej a alguns ex emplos : cons t Altur a = 100.’Z ’. Volks wagen).23. type T Gr au = 0. Os tipos de inter valo s ão s eqüências de valor es dos tipos B oolean. dur ante a compilação. No ex emplo. O bloco type deve s er pos icionado antes dos blocos var e cons t.B utton1Click(S ender : T Obj ect). var Hor a: T Hor aValida. como s e fos s em tipos pr edefinidos . na linha des tacada. como de 1 a 100. uma s eqüência de valor es de mes mo tipo. Depois de definir os novos tipos .s e nos tipos pr edefinidos . Eles s ão deduzidos pelo Delphi. O ex emplo mais comum de tipo es tr utur ado é o Ar r ay.s e cr iar novos tipos em Obj ect Pas cal. Lar gur a = 200. Angulo: T Gr aus . var . S ex ta).Del phi 5 var iáveis .. Vej a ex emplos de declar ações que us am os tipos definidos acima: var DiaUtil: T diaUtil. as cons tantes devem ter s eus valor es definidos logo na declar ação. Char . For d.los nor malmente nas declar ações das var iáveis .17. T er ca. os tipos das cons tantes não s ão definidos ex plicitamente.chave type. as cons tantes " Altur a" e " Lar gur a" s ão ar mazenadas com tipo I nteger . ou de " A" a " Z " . Note como é us ado o s ímbolo " = " par a definir os valor es par a as cons tantes e não o s ímbolo de atr ibuição: " : = " .

indicando que os limites do inter valo for am violados (a var iável T emp pas s ar ia do limite. var I : I nteger . Ar r ays com duas dimens ões (bidimens ionais ) s ão us ados par a ar mazenar tabelas de valor es . Os elementos de um ar r ay s ão index ados : par a aces s ar um valor de um ar r ay. mude par a a página Compiler e ative a opção Range Checking. N OT A: O compor tamento padr ão do Delphi é não ver ificar er r os de inter valo em tempo de ex ecução (como o er r o do ex emplo anter ior ).. S alar ios : ar r ay [ 1. o Delphi pôde detectar o er r o. digite o nome do ar r ay. { código omitido} end. Aqui. { Er r o de ex ecução! } S howMes s age(I ntT oS tr (T emp)).100] of I nteger . end.B utton1Click(S ender : T Obj ect). No cas o anter ior ..50 a 250: pr ocedur e T For m1. 360. end.360.Vetores Os Ar r ays s ão us ados com fr eqüência. no loop for ). Quando s ão us adas ex pr es s ões mais complex as (cálculos por ex emplo). por que for am us ados valor es cons tantes par a a var iável. pr aticamente em qualquer pr ogr ama. end. type T Gr au = 0. Quadr ados : ar r ay [ 1.100] of s tr ing. Ar r ays s ão s eqüências index adas de valor es do mes mo tipo.. O ex emplo a s eguir declar a um ar r ay " quadr ados " com 100 inteir os e depois pr eenche es s e ar r ay com os quadr ados dos númer os de . es colha o comando Pr oj ect | Options . O índice pode s er qualquer ex pr es s ão que tenha como r es ultado um valor inteir o.. a var iável " Nomes " é uma s eqüência de 100 pos ições do tipo s tr ing e " S alar ios " é uma s eqüência de 50 valor es do tipo Real. var T emp: T Gr au. begin for I : = . Os ar r ays que vimos até agor a têm apenas uma dimens ão. A mens agem de er r o ger ada é " Cons tant ex pr es s ion violates s ubr ange bounds " . Por ex emplo: Nomes [ 32] .50 to 250 do Quadr ados [ I ] : = (I * I ). O ex emplo a s eguir pas s ar ia na compilação.Del phi 5 T emp: T Gr au. begin for T emp: = 0 to 720 do { Er r o de compilação!} begin . Pode- .. begin T emp: = 200. T emp: = (T emp * 2).B utton2Click(S ender : T Obj ect). mas a linha des tacada ger ar ia uma ex ceção do tipo ERangeEr r or (T emp r eceber ia o valor 400. A rrays unidimensionais . pr ocedur e T For mT es teRange.50] of Real.Matrizes Ar r ays multidimens ionais s ão s imples mente " ar r ays de ar r ays " . s eguido do índice entr e colchetes . maior que o máx imo per mitido pelo tipo T gr au: 360). Vej a alguns ex emplos de declar ações de ar r ays : var Nomes : ar r ay [ 1. A rrays multidimensionais . o Delphi s ó pode detectar o er r o em tempo de ex ecução. Par a que o Delphi r ealmente ver ifique s e as var iáveis es tão dentr o dos limites ..

Pr eco: = 259.100] of Double ModeloEdificio: ar r ay [ 1.95. O tr echo de código abaix o. Par a aces s ar um elemento de um ar r ay multidimens ional.002x ’.500] of I nteger ... Des cr icao: s tr ing[ 50] . For necedor : s tr ing[ 50] . S tr ings longos têm o compr imento pr aticamente ilimitado (2 GigaB ytes ). us ando índices . Os campos do r egis tr o " T Pr oduto" definido acima. 1.78] ModeloEdificio[ 150. Par a declar ar um S tr ing cur to. Por ex emplo: T abelaGr afico[ 56. 1.For necedor : = ‘Eletr os ul’. e o ar r ay " ModeloEdificio" tem 500x 500x 500 = 125 milhões de elementos . Depois de definir um r egis tr o. end.s e aces s ar cada car acter e do S tr ing individualmente.500. Há dois tipos de S tr ings em Obj ect Pas cal: S tr ings longos e S tr ings cur tos . 1. us e o nome da var iável s eguido por um ponto e o nome do campo.500. Pr oduto. type T Pr oduto = r ecor d Codigo: s tr ing[ 12] . s ão Codigo. Nome[5] r etor na o quinto car acter e do S tr ing " Nome" (os car acter es s ão index ados a par tir de 1).chave s tr ing s eguida pelo tamanho des ej ado. Os elementos de um r egis tr o s ão chamados de campos . For necedor e Quantidade.Del phi 5 s e também definir ar r ays de 3 ou mais dimens ões . s ão us ados vár ios índices (um par a cada dimens ão). tem 100x 100 = 10.chave s tr ing. Des cr icao. Registros (Records) Os r egis tr os s ão conj untos de var iáveis de tipos difer entes . Quantidade: I nteger ..100.. Vej a um ex emplo que define um r egis tr o par a ar mazenar dados s obr e pr odutos . s epar ados por vír gulas . Pr oduto. Eles s ão declar ados us ando s omente a palavr a. no ex emplo.. Pr eco: Cur r ency.500] of T Pr oduto. Pr eco. . por ex emplo. Pr oduto. Um r egis tr o pode s er manipulado como um único elemento e é definido us ando a palavr a.Codigo: = ‘005. entr e colchetes . Es toque: ar r ay [ 1.chave r ecor d (r egis tr o em inglês ).000 elementos . Por ex emplo. S tr ing cur tos têm o compr imento limitado em 255 car acter es . { um S tr ing longo} Como um S tr ing é um ar r ay de car acter es . por ex emplo. { um S tr ing cur to com no máx imo 30 car acter es } T ex to: S tr ing.115. define valor es par a cada um dos campos da var iável pr oduto: Pr oduto. us e a palavr a. pode.82] Strings S tr ings em Obj ect Pas cal s ão ar mazenados inter namente como ar r ays de car acter es (ar r ays do tipo Char ). mas es tes s ão pouco us ados e ocupam muita memór ia. Vej a a s eguir ex emplos de declar ações dos dois tipos de S tr ings : var Nome: S tr ing[ 30] . O númer o de elementos de um ar r ay multidimens ional é o r es ultado da multiplicação de todas as s uas dimens ões . Par a aces s ar um campo de uma var iável do tipo r egis tr o. você pode declar ar uma var iável com o novo tipo de r egis tr o ou até definir um ar r ay com o novo tipo. como no ex emplo abaix o: var Pr oduto: T Pr oduto. O ar r ay " T abelaGr afico" . Vej a ex emplos de definições de ar r ays multidimens ionais : var T abelaGr afico: ar r ay [ 1.Des cr icao: = ‘Liquidificado indus tr ial Walita 2001’..

Já us amos blocos vár ias vezes nos ex emplos mos tr ados até aqui. s ão cr iados os for mulár ios do aplicativo). O ex emplo abaix o.002x ’. Pode. while e r epeat. total < = 1000. Quando você pr ecis a ex ecutar ou não um conj unto de comandos dependendo de uma condição. end. C ontrole de fluxo Os pr ogr amas mos tr ados até aqui não fazem nada além de definir novos tipos .Enabled = T r ue. O comando if ver ifica uma condição e ex ecuta um comando ou bloco de comandos s omente s e a condição for ver dadeir a. U s ando bl ocos Um bloco é um conj unto de comandos delimitado pelas palavr as chave begi n e en d . você deve us ar blocos par a delimitar es s es conj untos . por ex emplo. O ex emplo a s eguir mos tr a uma mens agem difer ente dependendo do valor da var iável " x " : if x > limite then S howMes s age(‘Limite ultr apas s ado! ’). els e S howMes s age(‘S em pr oblemas . como nos loops for . Condições s ão ger almente compar ações . O comando da s egunda par te (depois de els e) é ex ecutado quando a condição é fals a. S ão es s as oper ações que cons tituem o contr ole de flux o de um pr ogr ama. is to é pode haver blocos dentr o de blocos .Enabled = Fals e) then B utton2. ou loops dentr o de loops . A es tr utur ação em blocos da linguagem Obj ect Pas cal é uma de s uas car acter ís ticas mais elegantes e poder os as . como a > b. Des cr icao: = ‘Liquidificado indus tr ial Walita 2001’. que ver emos a s eguir . nada acontece. Há vár ias maneir as de us ar o comando if. No ar quivo de pr oj eto.s e us ar o comando with: with pr oduto do begin Pr eco: = 259.chave then. T odo pr ogr ama em Obj ect Pas cal deve ter pelo menos um bloco: o bloco pr incipal. Par a que pr ogr amas r ealmente " façam alguma cois a" . B locos podem s er aninhados . delimitada pela palavr a.chave els e. etc. ativa um botão (chamado " B utton2" ) s omente s e ele es tiver des ativado (com Enabled = Fals e). if (B utton2.Del phi 5 Pr oduto. For necedor : = ‘Eletr os ul’. U s ando el s e Um comando if pode também apr es entar uma s egunda par te. Par a evitar a r epetição do nome do r egis tr o em cas os como es te. O comando if é s empr e us ado com a palavr a. x = 1. Outr o us o impor tante de blocos é par a a r epetição de um conj unto de comandos vár ias vezes . Há também vár ias funções pr edefinidas que r etor nam valor es booleanos e que também podem s er us adas como condições . Cas o contr ár io. .las .95. I s s o é útil em es tr utur as complex as .Quantidade: = 8. I f-t hen-el s e O comando mais us ado par a fazer decis ões s imples é o comando if.s e também us ar o valor de uma pr opr iedade como condição. Vej a a mais s imples a s eguir : if condição then comando. como ifs dentr o de ifs .’). ou r epetir comandos . entr e outr as cois as . Codigo: = ‘005. pode. eles devem s er capazes de tomar decis ões de acor do com as entr adas do us uár io. declar ar var iáveis e alter á. Quantidade: = 8. Aqui a condição é qualquer ex pr es s ão que tenha valor booleano (T r ue ou Fals e). um bloco contém o código pr incipal do pr oj eto (onde. até que uma cer ta condição s ej a s atis feita.

a pr imeir a mens agem é ex ibida.B utton1Click(S ender : T Obj ect). S howMes s age('Divis or inválido'). mudando a cor do for mulár io par a cinza. S e não.T ex t). .vír gula (. end.5 e. o pr imeir o bloco do if é ex ecutado: o for mulár io muda par a ver melho e uma mens agem é ex ibida.0) then S howMes s age('Apr ovado na final') els e if Nota > 8. Res ultado: Real. S e o divis or for zer o. Divis or : = S tr T oFloat(Edit2. As funções S t r T oF l oat e F l oat T oS t r conver tem de S tr ings par a númer os r eais e de númer os r eais par a S tr ings . ). Par a is s o você deve us ar blocos de comandos . if nota < 5. Par a is s o.vír gula. S omente o último end do comando if deve ter minar com ponto. Vej a um ex emplo: pr ocedur e T For m1. cas o contr ár io (qualquer valor maior ou igual a 5). o s egundo bloco (depois do els e) é ex ecutado. pode.0 then S howMes s age('Repr ovado por média') els e if (Nota > = 5. Na maior ia das vezes . var Dividendo. end.then e outr o par a o els e. Ani nhando comandos i f Muitas vezes . Acompanhe o flux o do pr ogr ama: s e a nota for menor que 5. begin Dividendo: = S tr T oFloat(Edit1.B utton1Click(S ender : T Obj ect). S howMes s age('Res ultado = ' + FloatT oS tr (Res ultado)). o pr ogr ama ver ifica s e a nota é maior que 8. a s egunda mens agem é ex ibida.5).0) and (Nota < 7. Divis or . if Divis or = 0 then begin Color : = clRed. Pode. end els e begin Color : = clS ilver . é neces s ár io ex ecutar mais de um comando s e uma cer ta condição for ver dadeir a. O ex emplo lê uma nota digitada pelo us uár io e mos tr a uma mens agem que var ia de acor do com o valor da nota.chaves s emelhantes : or e not. Vej a um ex emplo completo: pr ocedur e T For m1. Note os dois blocos de comandos : um par a o if.T ex t).T ex t).e. " . O pr ogr ama calcula a divis ão de dois valor es do tipo Real (lidos a par tir de dois componente Edit). r es pectivamente. um pr ogr ama deve decidir entr e mais de duas opções . s e for . N OT A: no pr ogr ama acima foi us ada a palavr a chave and par a cr iar uma condição mais complex a. Res ultado : = Dividendo/Divis or . Note como o end depois do pr imeir o bloco não é s eguido de ponto. mos tr a a ter ceir a mens agem. var Nota: Real.s e us ar qualquer combinação de not.5 then S howMes s age('Apr ovado com ex celência') els e S howMes s age('Apr ovado s imples mente') end.s e us ar comandos if aninhados (um if dentr o de outr o). Es s a é uma r egr a obr igatór ia da linguagem Obj ect Pas cal: um end antes de um els e nunca deve s er s eguido por " . S e o divis or não for zer o.Del phi 5 U s ando bl ocos com o comando i f A ver s ão s imples do comando if us ada nos ex emplos acima tem us o muito limitado.e. A mens agem depois do último els e s ó é ex ibida s e nenhuma das condições anter ior es for ver dadeir a (is s o acontece s e a nota es tiver entr e 7 e 8. begin Nota : = S tr T oFloat(Edit1. Há mais duas palavr as . o pr ogr ama checa a s egunda condição: s e a nota es tiver entr e 5 e 7.

Ele depende s omente do valor inicial e do valor final do contador . a mens agem " Outr o númer o" s ó é mos tr ada s e o valor da var iável " numer o" for maior que 1000 ou menor que 1. // final do cas e end.Del phi 5 and e or par a cr iar novas condições . end. var Numer o: I nteger . 6. Nele s ão us ados loops for aninhados par a multiplicar 100 valor es por 20 tax as difer entes .. É calculado também o total dos valor es da tabela ger ada. 2. que s ão definidos no início do loop. cas e Numer o of 1. 7 : begin S howMes s age('Númer o pr imo menor que 10').s e. U s ando l oops Os loops (" laços " ) s ão es tr utur as us adas par a r epetir vár ias vezes s equências de comandos . end. entr etanto de us ar par êntes es par a agr upar as condições .1000: S howMes s age('Númer o entr e 10 e 1000'). 3.Add(I ntT oS tr (Numer o* I )). por ex emplo. . r es pectivamente. uma var iável inteir a que é aumentada (incr ementada) automaticamente cada vez que o loop é ex ecutado. O ex emplo a s eguir é mais complex o. Vár ios outr os loops for s imples s ão us ados . Note que uma mes ma var iável pode s er us ada vár ias vezes em loops for difer entes . 10. O númer o de r epetições do loop for é fix o. a es tr utur a cas e da linguagem Obj ect Pas cal é em ger al mais clar a e mais r ápida que uma s eqüência de ifs aninhados . Vej a a s eguir um ex emplo s imples . Os par êntes es us ados no pr ogr ama anter ior . tipos de inter valo e tipos enumer ados ). Vej a um ex emplo: pr ocedur e T For m1. Por is s o não é neces s ár io us ar begin e end. begin Numer o : = S tr T oI nt(Edit1. pr ocedur e T For m1. 5.T ex t). begin Numer o : = S tr T oI nt(Edit1. A es t r ut ur a cas e Quando é neces s ár io decidir entr e muitas opções em um pr ogr ama. pr ocedur e T For m1. car acter es . Lembr e. s ão todos obr igatór ios .T ex t). 9: S howMes s age('Númer o ímpar menor que dez'). O loop for O loop for é o mais r ápido e mais compacto dos tr ês tipos de loops . // final da pr ocedur e Uma es tr utur a cas e deve s er ter minada com end e pode ter uma par te opcional els e. Color : = clB lue. Na es tr utur a cas e uma var iável é compar ada com vár ios valor es (ou gr upos de valor es ) e o comando (ou bloco de comandos ) cor r es pondente é ex ecutado. No ex emplo acima. O loop for é us ado par a r ealizar um númer o fix o de r epetições . Numer o: I nteger . for I : = 1 to 50 do Lis tB ox 1. de acor do com o númer o entr ado em um Edit. var I : I nteger . Os loops while e r epeat r epetem um bloco de comandos até que uma condição s e tor ne fals a ou ver dadeir a. els e S howMes s age('Outr o númer o'). end. ger ando uma tabela – um ar r ay bidimens ional – com o " cr uzamento" de todos os valor es e tax as .B utton1Click(S ender : T Obj ect). Es te pr ogr ama mos tr a os pr imeir os 50 múltiplos do númer o digitado em um Edit. a es tr utur a cas e é pulada inteir amente). Os comandos depois do els e s ó s ão ex ecutados s e a var iável não for igual a nenhum dos valor es es pecificados (s e não houver a par te els e. Há tr ês tipos de loops em Obj ect Pas cal. 8: S howMes s age('Númer o par menor que dez'). 4. Os múltiplos s ão adicionados a um Lis tB ox .I tems . que mos tr a mens agens difer entes .B utton1Click(S ender : T Obj ect).B utton1Click(S ender : T Obj ect). Es s e loop us a um contador . Uma es tr utur a cas e s ó pode s er us ada com valor es or dinais (inteir os . O loop for us ado aqui contém um único comando.

T enha cuidado. Além dis s o. Valor I nicial. begin Valor I nicial : = S tr T oFloat(Edit1. { Ler valor inicial par a x } Lis tB ox 1. T otal: Cur r ency. T abela: ar r ay [ 1. Lis tB ox 1. end. devido à es tr utur a s imples do loop r epeat.100] of Cur r ency. o loop é ex ecutado novamente. ao lado da palavr a. os comandos do loop não pr ecis am s er delimitados por begi n e en d .Clear . a condição é tes tada no início de cada r epetição.. //Calcular tax as for I : = 1 to 20 do T ax as [ I ] : = I / 100. No ex emplo a s eguir .. o loop é ex ecutado par a s empr e. O loop while O loop while é um loop mais ver s átil que o for .T ex t). No loop while. é que a condição us ada no loop deve s e tor nar fals a em algum momento. por tanto. o pr ogr ama s ai do loop e ex ecuta o comando imediatamente depois . I s s o faz com que o loop s ej a s empr e ex ecutado. Nele. J: I nteger . Valor es : ar r ay [ 1. O loop repeat O loop r epeat é uma ver s ão " inver tida" do loop while. end. begin x : = S tr T oI nt(Edit1. de alter ar pelo menos uma das var iáveis envolvidas na condição. //Calcular valor es } for i: = 1 to 100 do Valor es [ I ] : = (Valor I nicial + (i * 100)). por ex emplo. até que a condição es pecificada s e tor ne fals a. pelo menos uma vez. J] . o valor digitado em um Edit é lido. é s ubtr aído 10 do valor de " x " e adicionado o r es ultado (conver tido em um s tr ing) a um Lis tB ox .100] of Cur r ency. while x > 0 do x : = x + 1. pr ocedur e T For m1.. Cas o contr ár io. dentr o do while. e o pr ogr ama ficar á pr es o par a s empr e dentr o do while. J] : = Valor es [ I ] * T ax as [ J] .Add(I ntT oS tr (x )). ou um bloco de comandos . conver tido e colocado em uma var iável " x " . //Multiplicar valor es por tax as e s omar r es ultados } T otal: = 0. { Limpar a lis ta de valor es } while x > 0 do begin x : = x . embor a um pouco mais complex o. T ax as : ar r ay [ 1. var x : I nteger . O pr ogr ama entr a em um " loop infinito" . Vej a um ex emplo: . um valor inicial negativo par a a var iável " x " far ia com que o while fos s e pulado inteir amente na pr imeir a vez.B utton1Click(S ender : T Obj ect). O númer o de r epetições não é pr ees tabelecido como no loop for . O loop while r epete um comando.I tems . I s s o acontece quando a condição é fals a j á na entr ada do loop. Outr a car acter ís tica impor tante do loop while. Note que é pos s ível que os comandos de um loop while não s ej am ex ecutados nenhuma vez. No pr ogr ama acima.. a condição x > 0 nunca s e tor nar á fals a (x s er á s empr e maior que zer o). r epetindo o pr oces s o até que " x " s ej a menor ou igual a 0. Es s e é um er r o cometido com fr eqüência. for I : = 1 to 100 do for J: = 1 to 20 do begin T abela[ I . A condição do loop r epeat apar ece no final. Vej a uma ex emplo de um loop infinito com while: x : = 1.20] of Double. 1. a condição é ver ificada s omente no final do loop. T otal: = T otal + T abela[ I . Quando a condição é fals a. S e a condição tes tada for ver dadeir a.I tems .chave until (" até" ). Em s eguida. end.Del phi 5 var I . pr incipalmente em loops while com condições mais complex as .20.T ex t).10. end. Aqui.

o código s er ia mais longo e menos elegante: pr ocedur e T For m1.'Entr e com um númer o de 1 a 100'. Entr ada: s tr ing. for I : = 1 to 1000 do if A[ I ] < > B [ I ] then br eak. Valor : = S tr T oI nt(entr ada). O ex emplo compar a os elementos de dois ar r ays A e B .. Valor : = S tr T oI nt(E ntr ada). S howMes s age('Entr ada aceita. o valor da var iável i no final do loop s er á 1000 e a pr imeir a mens agem é mos tr ada. Note que a I nputB ox é ex ibida pelo menos uma vez.. de 1000 elementos cada um (o cálculo par a os valor es dos ar r ays não é mos tr ado). Vej a um ex emplo s imples : var A. Valor : I nteger . Valor : = S tr T oI nt(entr ada). Além dis s o. com o comando br eak.. Es te código tem ex atamente o mes mo efeito que o anter ior . Na ver dade. . while (Valor < 1) or (Valor > 100) do begin Entr ada : = I nputB ox (''.'').B utton1Click(S ender : T Obj ect). . until (Valor > = 1) and (Valor < = 100). . var Entr ada: s tr ing. há uma r epetição das linhas de código que lêem a entr ada.').'').B : ar r ay[ 1.'')). Mas note que a condição us ada no loop while é o opos to da condição do loop r epeat. S e while tives s e s ido us ado em vez de r epeat.s e mudanças s emelhantes às mos tr adas aqui. O código mos tr a uma I nputB ox vár ias vezes . begin r epeat Entr ada: = (I nputB ox (''.1000] of I nteger . var Valor : I nteger . S e o loop for quebr ado antes de ter minar . que pode algumas vezes tor nar o código mais s imples . for ou r epeat).B utton1Click(S ender : T Obj ect). end. pois é us ado um loop r epeat. end. qualquer pr ogr ama que us e r epeat pode s er conver tido em um pr ogr ama us ando while. begin Entr ada: = I nputB ox (''. até que a entr ada s ej a válida (entr e 1 e 100). 'E ntr e com um númer o de 1 a 100'. O comando break O comando br eak é us ado par a s air imediatamente de um loop (while. o comando br eak inter r ompe o loop for imediatamente e os outr os elementos dos ar r ays não s ão checados . fazendo. O loop r epeat é apenas uma conveniência. o valor de i s er á menor que 1000 e a s egunda mens agem s er á mos tr ada.'Entr e com um númer o de 1 a 100'. if i = 1000 then S howMes s age('T odos os elementos s ão iguais ') els e S howMes s age('O elemento com índice ' + I ntT oS tr (I ) + ' é difer ente').Del phi 5 pr ocedur e T For m1. end. I s s o é neces s ár io por que a var iável " valor " é tes tada no início do loop e pr ecis a s er inicializada pr imeir o. S howMes s age('Entr ada aceita. S e todos os elementos for em iguais .. Quando é encontr ada a pr imeir a difer ença nos ar r ays .').. I : I nteger .

Uma pr ocedur e ou function pode ter zer o ou mais par âmetr os . . T odos os eventos s ão pr ocedur es ..T ex t= '') or (EditS obr enome.. .. Quando o comando continue é encontr ado.. . O ex emplo mais comum de pr ocedur e no Delphi é o código ger ado par a os eventos de um componente.....B tCadas tr ar Click(S ender : T Obj ect)..: tipo2.. I : I nteger .100] of I nteger . Vej a mais um ex emplo de um evento: pr ocedur e T For mCadas tr o.: tipo1. o par âmetr o mais comum é o par âmetr o " S ender " . function nome da function (par am1.: tipo2.Del phi 5 O comando continue O comando continue é us ado dentr o de loops par a for çar a pr óx ima ex ecução do loop. Com is s o. o s egundo comando dentr o do loop s ó é ex ecutado quando A[ I ] é difer ente de zer o...Add(I ntT oS tr (i)). No cas o dos eventos . par am2. type { definições de tipos } var { declar ações de var iáveis } cons t { definições de cons tantes } begin { cor po } end.. em vár ios pontos de um pr ogr ama. que indica o componente que ger ou o evento. o pr ogr ama volta imediatamente par a ou início do loop e os comandos depois de continue não s ão ex ecutados . Procedures e Functions As pr ocedur es (pr ocedimentos ) e functions (funções ) s ão os blocos bás icos dos pr ogr amas cr iados em Obj ect Pas cal.'). begin if (EditNome. a s intax e é pr aticamente idêntica.T ex t= '') then S howMes s age('Campos não podem s er vazios ') els e begin . type { definições de tipos } var { declar ações de var iáveis } . Vej a um ex emplo que adiciona todos os valor es difer entes de zer o de um ar r ay a um Lis tB ox . Lis tB ox 1. Par a functions . par am2.. o comando continue faz com que o loop s ej a r epetido imediatamente (voltando par a o começo do loop)..). end. que podem s er chamados vár ias vezes . var A: ar r ay[ 1.. Pr ocedur es e functions s ão blocos independentes de código.: tipo1. A difer ença entr e pr ocedur es e functions é s imples : functions r etor nam um valor . par am1. for I : = 1 to 100 do begin if A[ I ] = 0 then continue. end.. A única difer ença é que o tipo do valor r etor nado deve s er es pecificado no final da pr imeir a linha. pr ocedur es não. A s intax e par a uma pr ocedur e é a s eguinte: pr ocedur e nome da pr ocedur e (par am1. end. Quando o elemento A[ I ] do ar r ay for zer o. . .. Pr ocedur es e functions s ão às vezes chamadas de r otinas .I tems . par am1. S howMes s age('S uces s o no cadas tr o.): tipo de r etor no..

Os valor es de cem pr eços . Chamando pr ocedur es e funct i ons Depois de definir uma pr ocedur e ou function. Par a es pecificar a pas s agem por r efer ência. apes ar de completo. vêm os blocos de declar ação type. a r otina pode alter ar dir etamente a var iável pas s ada. Defi ni ndo o val or de r et or no de uma funct i on O valor r etor nado por uma function pode s er definido de duas maneir as : atr ibuindo um valor par a o nome da function. begin Dobr o: = Numer o * 2. end. em qualquer lugar da Unit em que foi definida. Quando s ão us ados par âmetr os . depois das declar ações das var iáveis globais . a r otina r ecebe uma r efer ência à var iável pas s ada ou. Em s eguida. var Pr eco: Cur r ency). O par âmetr o Pr eco é pas s ado por r efer ência (us ando.. Quando uma var iável é pas s ada por r efer ência. Os par âmetr os . A pas s agem por valor é o tipo padr ão de pas s agem de par âmetr os na linguagem Obj ect Pas cal. Os par âmetr os s ão var iáveis pas s adas par a as pr ocedur es e functions (r otinas ). Alter ações r ealizadas na var iável não têm efeito depois da r otina ter minar (ou r etor nar ). Onde cr i ar pr ocedur es e funct i ons Há r egr as par a o pos icionamento das pr ocedur es no código: as pr ocedur es devem s er colocadas s omente depois da par te implementation da Unit (vej a a s eguir ). (O valor de p no final s er á 450. par a ilus tr ar melhor os conceitos envolvidos ). Os par âmetr os de uma r otina s ão opcionais . A for ma como os par âmetr os s ão pas s ados é definida no cabeçalho da r otina. Pr eco é alter ado dentr o da pr ocedur e e es s a alter ação é per manente. O valor de T ax a pode s er alter ado dentr o da pr ocedur e.chave var antes do nome do par âmetr o. É nes te bloco que fica o código ex ecutável da pr ocedur e. O par âmetr o T ax a é pas s ado por valor . ou alter ando a var iável es pecial Res ult.. var e cons t (não neces s ar iamente nes s a or dem). ar mazenados no ar r ay Pr ecos . A pr imeir a linha. dos ex emplos anter ior es . T odos es tes s ão opcionais . Des contar (10. . bas ta es pecificar o s eu nome e valor es par a s eus par âmetr os (s e houver ). em outr as palavr as . Entendendo par âmetr os . devem ter s eus tipos es pecificados e devem s er s epar ados por vír gulas . begin Pr eco: = ((Pr eco – Pr eco) * (T ax a / 100)). end. " . Vej a um ex emplo que us a os dois tipos de pas s agem de par âmetr os : pr ocedur e Des contar (T ax a: Real. Depois do cabeçalho.0). .. chamada de cabeçalho. A var iável pas s ada s e compor ta como uma var iável local..la dir etamente no s eu código. mas as alter ações não ter ão efeito depois de a pr ocedur e r etor nar . s ão alter ados no evento OnClick do componente B utton1. pois a pr ocedur e ou functions pode não pr ecis ar de nenhuma var iável além das es pecificadas nos s eus par âmetr os . deve s empr e ter minar com " . " . Quando uma var iável é pas s ada por valor . Es ta pr ocedur e r ecebe dois par âmetr os : T ax a e Pr eco. O s eguinte tr echo de código mos tr a como chamar a pr ocedur e Des contar (definida acima) par a r ealizar um des conto de 10% s obr e um pr eço p. P: = 500. S ão comuns r otinas (pr incipalmente pr ocedur es ) s em nenhum par âmetr o. O ex emplo a s eguir us a a pr ocedur e Des contar e uma var iação da function Dobr ar . foi mantido deliber adamente s imples . s e ex is tir em. você pode chamá. vem o bloco pr incipal (ou cor po) da pr ocedur e.s e a palavr a var antes do par âmetr o). us e a palavr a. es tes podem s er pas s ados por valor ou por r efer ência. . no cabeçalho da r otina. a pr ópr ia var iável.Del phi 5 cons t { definições de cons tantes } begin { cor po} end. Com es s e tipo de pas s agem de par âmetr os .0. a r otina r ecebe apenas um cópia da var iável. delimitado por begin e end. P). Par âmetr os do mes mo tipo podem s er agr upados . (O pr ogr ama. Par a chamar uma pr ocedur e ou function. es s es gr upos devem s er s epar ados por " . As duas funções a s eguir s ão ex atamente equivalentes : function Dobr o1(Numer o: I nteger ): I nteger .

tr y { comandos que podem levantar ex ceções } finally { comandos s empr e ex ecutados .. como des tr uir componentes . end. o Delphi levanta uma ex ceção. begin // Des contar em 25% os pr imeir os 20 pr odutos . Quando ocor r e um er r o em um pr ogr ama. O pr imeir o tipo de bloco pr otegido é chamado de bloco tr y.. havendo ex ceções ou não} end. Pode.o com as palavr as . O us o de ex ceções per mite uma s epar ação entr e o código nor mal de um pr ogr ama e o código us ado par a lidar com er r os que podem s ur gir . você deve tr atar as ex ceções ... ou até levar o pr ogr ama a " tr avar " . os " comandos pr otegidos " ficam entr e as palavr as . var Pr eco: Cur r ency). Dentr o de um bloco pr otegido. implementation var Pr ecos : ar r ay[ 1. O s egundo.finally. begin Valor : = Pr eco .s e us ar as comandos ex cept ou finally. No bloco tr y. de bloco tr y.des contar em 50% os pr óx imos 30. end. //. var I : I nteger . pode. o pr ogr ama pula imediatamente par a o pr imeir o comando depois de ex cept.finally. par a tr atar as ex ceções .. Uma ex ceção não. function Dobr ar (Pr eco: Cur r ency): Cur r ency begin Res ult : = Pr eco* 2.. pr otegendo blocos de código que contenham comandos que pos s am caus ar er r os ..B utton1Click(S ender : T Obj ect). Trabalhando comExceções As ex ceções s ão um mecanis mo poder os o par a lidar com er r os nos s eus pr ogr amas .ex cept. for i: = 1 to 20 do Des contar (25.. Pr ecos [ I ] ).chave tr y e end. pr ocedur e Des contar (T ax a: Double.ex cept. No cas o do bloco tr y.Pr eco* (tax a/100).s e us ar es s es comandos par a r ealizar oper ações de " limpeza" . os comandos depois de finally s ão ex ecutados s empr e (mes mo quando ex ceções não s ão levantadas ).. Há dois de tipos blocos pr otegidos : tr y { comandos que podem levantar ex ceções } ex cept { comandos ex ecutados quando uma ex ceção é levantada} end.chave tr y e ex cept. o pr ogr ama é inter r ompido e é mos tr ada uma caix a de diálogo com uma des cr ição da ex ceção. end. for i: = 21 to 50 do Des contar (50.. Par a pr oteger um bloco de código cer que. deix ar o pr ogr ama em uma s ituação ins tável.tr atada pode caus ar danos aos s eus dados .. Pr ecos [ I ] ).Del phi 5 { Código inicial da Unit} . S e uma ex ceção que foi levantada não for tr atada. Par a evitar que is s o aconteça. end. pr ocedur e T For m1. Quando uma ex ceção ocor r e em um des s es comandos . //.e dobr ar o pr eço dos 50 pr odutos r es tantes for i : = 51 to 100 do Pr ecos [ I ] : = Dobr ar (Pr ecos [ I ] ).100] of Cur r ency.

mas podem s er cr iadas de for ma totalmente independente. Entendendo o código das Units As Units contêm pr aticamente todo o código de um aplicativo no Delphi. end. Nes ta s eção ver emos detalhes s obr e cada par te de uma Unit.s e que os valor es dos ar r ays r es ultado e valor es for am declar ados e inicializados antes . . As Units ger almente s ão as s ociadas a for mulár ios . for i: = 1 to 50 do tr y Res ultado[ I ] : = Valor es [ I ] / Divis or . definindo. por ex emplo. var Divis or : Real. begin Divis or : = S tr T oFloat(Edit1.Del phi 5 que não s ão mais neces s ár ios .s e um bloco on [ tipo de ex ceção] do [ comandos ] par a cada tipo. abaix o vem o código par a inicialização} finalization { opcional. Quando é feita uma conver s ão ilegal de tipos . Quando ocor r e um er r o ger al de banco de dados . abaix o vem o código par a finalização} end. Aestruturabásicade umaUnit T odas as Units têm a mes ma es tr utur a bás ica: unit < nome da unit> inter face us es < lis ta de Units > implementation us es < lis ta de Units > { código par a os pr ocedur es e functions } initialization { opcional. end. lis tamos alguns tipos comuns de ex ceções : T i pos de ex ceçõs E D i vB yZ er o E Z er oD i vi de E Con ver t E r r or E I n Ou t E r r or E D at abas eE r r or E D B E n gi n eE r r or Qu an do ocor r e Quando s e tenta dividir um inteir o por zer o. ex cept on EDivB yZ er o do Res ultado[ I ] : = 0.T ex t). On é us ada par a es pecificar o tipo de ex ceção a s er tr atado. A pr imeir a linha da Unit identifica o nome da Unit (que deve s er um identificador válido na linguagem Obj ect Pas cal). Vej a a s eguir um ex emplo que tr ata a ex ceção EDivB yZ er o. Quando s e tenta dividir um númer o r eal (de ponto flutuante) por zer o. ger ada quando é feita uma divis ão por zer o (o divis or aqui é o valor contido no componente Edit1). Note o us o da palavr a. As s ume.B utton1Click(S ender : T Obj ect). Há vár ios tipos de ex ceções . pr ocedur e T For m1. Vej a a s eguir des cr ições s obr e cada uma das par tes . Quando há um er r o de entr ada ou s aída. Na tabela abaix o. Um bloco ex cept pode lidar com vár ios tipos de ex ceção. Quando há um er r o no B DE (B or land Databas e Engine).chave on dentr o do bloco ex cept.

A par te i n i t i al i z at i on é opcional. mas ignor a maís culas e minús culas . zer o s e S 1= S 2. A função Length r etor na o númer o de car acter es no s tr ing S . es s as funções levantam a ex ceção Econver tEr r or . cons tantes . A par te f i n al i z at i on também é opcional. I n di ce. var iáveis . começando com S [ I ndice] . O código nes s a par te é ex ecutado logo antes do tér mino do aplicativo. I n di ce. L en gt h ( S : s t r i n g) : I n t eger T r i m ( S : s t r i n g) : s t r i n g Funções de conversão de tipo A linguagem Obj ect Pas cal é es pecialmente ex igente com r elação aos tipos us ados em ex pr es s ões . a par te initialization (s e houver ) de cada Unit é ex ecutada antes de qualquer outr o código na Unit. ou us ando o comando File | Us e unit. começando com S [ I ndex ] . I n t eger ) : A função Copy r etor na um s tr ing contendo Comp car acter es . Es ta par te contém a definição de todos os tipos .Com p: s t r i n g. S 2 : s t r i n g) : I n t eger A função Ans iCompar eS tr compar a S 1 to S 2. s t r ing D el et e( var I n t eger ) S: s t r i n g. A função r etor na um valor menor que zer o s e S 1< S 2. A função Ans iCompar eT ex t é s emelhante. ao final da ex ecução do aplicativo. Você pode us ar a par te initialization par a declar ar e inicializar var iáveis . S: A função Ans iLower Cas e r etor na o s tr ing S conver tido par a minús culas (inclus ive par a letr as acentuadas ). S e S ubs tr não for encontr ado. Rotinas paramanipulação de strings A manipulação de s tr ings é uma tar efa muito comum em pr ogr amação. A s eguir . F u n ção T i po de or i gem T i po de des t i n o . Rotinas úteis Nas s eções a s eguir . Es ta par te pode conter também declar ações de var iáveis e cons tantes . e nas chamadas de pr ocedur es e functions . S e um aplicativo tiver vár ias Units . por ex emplo. A função T r im r emove es paços à es quer da e à dir eita do s tr ing S .s e a claús ula us es na par te implementation. S e o tipo us ado não for compatível com o tipo es per ado. a função r etor na 0. é ger ado um er r o de compilação. S2: s t r i n g) : maiús culas e minús culas . levando em conta An s i Com par eT ex t ( S 1 . alter a. O s tr ing r es ultante é r etor nado na var iável S . ou um valor maior que 0 s e I n t eger S 1> S 2. As Units lis tadas nes s a cláus ula s ão ger almente adicionadas pelo pr ogr amador . Funções de conver s ão de tipo devem s er us adas par a conver ter valor es par a os tipos adequados . s ão muito úteis par a s tr ings em por tuguês ). A par te i m pl em en t at i on contém todo o código das pr ocedur es e functions da Unit. As Units lis tadas nes s a cláus ula s ão ger almente adicionadas pelo pr ópr io Delphi. lis tamos as pr incipais r otinas de manipulação de s tr ings ofer ecidas pelo Delphi.Del phi 5 A par te i n t er f ace começa com a palavr a inter face e ter mina imediatamente antes da palavr a. An s i L ow er Cas e( S : s t r i n g) : s t r i n g An s i U pper Cas e( S : s t r i n g) : s t r i n g An s i P os ( S u bs t r : I n t eger Copy( S : s t r i n g. A função Ans iUpper Cas e r etor na o s tr ing S conver tido par a maiús culas (inclus ive par a letr as acentuadas ). É r ar a a neces s idade de adicionar manualmente nomes de Units a es s a cláus ula us es . S omente o que es tiver definido na par te inter face pode s er aces s ado por outr as Units . (As r otinas cuj os nomes começam com " Ans i" s ão capazes de lidar com car acter es acentuados e. mas es tas s ó s er ão " vis íveis " pelo código des ta Unit. F u n ção D es cr i ção An s i Com par eS t r ( S 1 . S e uma conver s ão for ilegal. O código nes ta par te é ex ecutado antes de qualquer outr o código na Unit. As pr incipais funções de conver s ão de tipo s ão lis tadas na tabela a s eguir . pr ocedur es e funnctions que devem s er " vis íveis " (ou aces s íveis ) par a outr as Units que s e r efer enciem a es ta. Es s a par te é ger almente us ada par a r ealizar " oper ações de limpeza" . s t r i n g) : A função Ans iPos r etor na um inteir o com a pos ição do s tr ing S ubs tr no s tr ing S . apr es entar emos algumas r otinas (functions e pr ocedur es ) úteis na pr ogr amação em Obj ect Pas cal. A par te implementation contém a s egunda cláus ula us es . par a fazer r efer ência a Units do s is tema (pr edefinidas ). manualmente. por tanto. A pr imeir a cláus ula us es fica dentr o da par te inter face. Com p: A pr ocedur e Delete r emove o s ubs tr ing com Comp car acter es do s tr ing S . Nenhuma outr a Unit pode ter aces s o às var iáveis e cons tantes declar adas aqui. como r ecuper ar memór ia e outr os r ecur s os .chave implementation. Par a s e r efer enciar a outr as Units .

Del phi 5
S tr T oCur r S tr T oDate S tr T oFloat S tr T oI nt S tr T oT ime I ntT oS tr Cur r T oS tr DateT oS tr T imeT oS tr DateT imeT oS tr S tr ing S tr ing S tr ing S tr ing S tr ing I nteger Cur r ency T Date T T ime T DateT ime Cur r ency T date T DateT ime Real I nteger T T ime S tr ing S tr ing S tr ing S tr ing S tr ing

S tr T oDateT ime S tr ing

OEditor de C ódigo
O Editor de Código (Code Editor ) é o editor padr ão do Delphi. Nes te capítulo, ver emos como configur ar e us ar os r ecur s os des s e ver s átil editor . Cada ar quivo aber to no Editor de Código tem s eu título ex ibido em uma " aba" no topo da j anela do editor . Pode- s e alter nar de um ar quivo aber to par a outr o facilmente, clicando na aba cor r es pondente. A j anela do Editor de Código é mos tr ada abaix o, com vár ios ar quivos aber tos . É mos tr ado também o menu de atalho do Editor de Código, que contém vár ios comandos úteis . Par a abr ir es s e menu de atalho, clique com o botão dir eito na par te inter na (par te do tex to) do Editor de Código.

Pode- s e também us ar o teclado par a pas s ar de um ar quivo par a outr o. Us e CT RL+ T AB par a mover par a o pr óx imo ar quivo (na or dem das abas ) e CT RL+ S HI FT + T AB par a mover par a o ar quivo anter ior . Além das Units e outr os ar quivos inter nos do Delphi, o Editor de Código é capaz de abr ir qualquer ar quivo tex to, até outr os es cr itos em outr as linguagens . (Mas nes s e cas o, é clar o, o ar quivo não s ignificar á nada par a o Delphi e não poder á s er compilado, ou alter ado automaticamente). Há vár ias maneir as par a abr ir ar quivos no Editor de código e j á conhecemos algumas . mas todas as maneir as s ão des cr itas aqui br evemente, por conveniência. Par a abr ir ou vis ualizar um ar quivo no Editor de Código, r ealize uma das s eguintes oper ações , es colha o comando File | Open par a abr ir um ar quivo ex is tente. Os ar quivos padr ão es pecificados s ão as Units (.PAS ) e os ar quivos de pr oj eto (.DPR). S e for neces s ár io abr ir outr o tipo de ar quivo, es pecifique s eu tipo em " Ar quivos do tipo" .

Del phi 5
Clique com o botão dir eito em cima do nome de um ar quivo (dentr o do Editor de Código) e es colha o comando Open File at Cur s or (" Abr ir ar quivo na pos ição do cur s or " ). Es s e comando é útil par a código que tr abalha dir etamente com ar quivos . Você pode us á- lo par a ver ificar s e o ar quivo r ealmente ex is te com o nome e local indicado no código. O nome do ar quivo deve es tar es pecificado com o caminho (path) completo; cas o contr ár io, o Delphi pode não cons eguir encontr á- lo. Par a vis ualizar o código as s ociado a um for mulár io (a Unit as s ociada), s elecione o for mulár io e pr es s ione F12, pr es s ione F12 novamente par a voltar ao for mulár io. Par a vis ualizar o ar quivo de pr oj eto es colha o comando View | Pr oj ect S our ce, o Editor de código cr ia mais uma página par a mos tr ar o ar quivo de pr oj eto (não é aber ta uma nova j anela). A s eguir , lis tamos algumas outr as oper ações bás icas que podem s er r ealizadas no Editor de código. Par a fechar um ar quivo no Editor de Código, mude par a a página do ar quivo e clique dentr o dela com o botão dir eito e es colha o comando Clos e Page. Há também um atalho par a is s o, CT RL + F4. S e o ar quivo não tiver s ido s alvo, o Delphi mos tr a uma caix a de confir mação. Note que não é pos s ível fechar uma página s imples mente clicando na s ua aba com o botão dir eito. Par a fechar uma página no Editor de Código, você deve mos tr á- la pr imeir o. Par a abr ir uma nova j anela par a um mes mo ar quivo, mude par a a página do ar quivo, clique com o botão dir eito e es colha o comando New Edit Window. É cr iada um nova j anela com uma cópia do ar quivo. As duas j anelas (a or iginal e a cópia) s ão s incr onizadas . Alter ações em uma j anela afetam a outr a também. Es s e comando é útil quando é neces s ár io vis ualizar ou tr abalhar com par tes difer entes de um mes mo ar quivo. Par a pr oteger o tex to de um ar quivo contr a alter ações , mude par a a página que contém o ar quivo, clique com o botão dir eito e es colha o comando Read Only. I s s o faz com que o ar quivo s e tor ne " S omente leitur a" , não per mitindo alter ações acidentais . Par a des pr oteger o ar quivo, es colha o mes mo comando novamente. Par a ex ibir uma j anela de mens agens na par te de baix o do Editor de Código, clique com o botão dir eito em qualquer local de dentr o do Editor de Código e es colha o comando Mes s age View. Es s a j anela é ex ibida dur ante a compilação par a ex ibir mens agens de er r o ou avis os . Par a es conder a j anela de mens agens , clique no pequeno " x " no canto es quer do s uper ior da j anela de mens agens (vej a figur a).

Técnicas de navegação
Há algumas técnicas que tor nam mais r ápido o tr abalho com vár ias Units r elacionadas , ou com Units ex tens as no Editor de Código. Vej a as mais impor tantes des s as técnicas a s eguir :

U s ando B ook mar k s
Você pode mar car linhas do código com bookmar ks , par a depois r etor nar a es s as linhas r apidamente, us ando o teclado ou comandos de menu. Pode- s e definir até dez bookmar ks par a cada Unit. Linhas com um bookmar k definido apar ecem com o númer o do bookmar k (dentr o de um quadr ado ver de) na mar gem es quer da do Editor de Código (vej a figur a).

Del phi 5

O E di t or de Código com doi s bookm ar ks def in idos

Vej a como r ealizar as oper ações bás icas com bookmar ks : Par a definir um bookmar k par a uma linha de código coloque o cur s or na linha e pr es s ione CT RL+ S HI FT + númer o, com númer o entr e 0 e 9 (como CT RL+ S HI FT + 0 ou CT RL+ S HI FT + 5). (S e j á houver um bookmar k com o mes mo númer o definido, ele é movido par a a linha atual) Par a pular par a um linha com um bookmar k definido, pr es s ione CT RL+ númer o, onde númer o é o númer o do bookmar k par a onde você des ej a pular . (S e não houver um bookmar k com es te númer o, nada acontece). Par a r emover um bookmar k, mova o cur s or par a a linha com o bookmar k e pr es s ione CT RL+ S HI F T + númer o, onde númer o deve s er o númer o do bookmar k a s er r emovido. (S e for us ado um númer o difer ente, um novo bookmar k é definido " por cima" do anter ior ). N OT A: pode- s e definir bookmar ks também us ando comandos do menu de atalho do Editor de código. Clique com o botão dir eito dentr o do editor e us e os comandos T oggle B ookmar ks e Goto bookmar ks .

U s ando o r ecur s o Code B r ow s er
O r ecur s o Code B r ows er per mite navegar r apidamente entr e vár ios ar quivos r elacionados . Você pode, por ex emplo, abr ir o ar quivo que tenha a definição de uma pr ocedur e ou function, com apenas um clique do mous e. Par a us ar es s e r ecur s o, no Editor de Código, pr es s ione e mantenha pr es s ionada a tecla CT RL e mova o cur s or . Quando o cur s or apontar par a uma par te " navegável" do código, como o nome de uma Unit ou for mulár io, es s a par te apar ece s ublinhada em az ul, como um link na I nter net (vej a a figur a).

A palavr a es pecificada s ó é localizada s e ela apar ecer " inteir a" no tex to (com es paços antes e depois ). O controles de navegação do Editor de C s ódigo Us e a s eta par a a es quer da par a pular par a o último local vis itado e a s eta par a a dir eita par a o pr óx imo (a s eta par a a dir eita s ó é ativada s e a s eta par a a es quer da for us ada ao menos uma vez). S e a par te s ublinhada for uma var iável ou nome de componente. Você também pode pular par a um local vis itado clicando ao lado das s etas . R egu l ar ex pr es s i on s F or w ar d B ackw ar d Gl obal . At i ve es s a opção. Você define o tex to a s er localizado e vár ias outr as opções us ando o comando S ear ch | Find. e es colhendo um local a par tir da lis ta ex ibida. na dir eção es pecificada. Cas e s en s i t i ve W h ol e w or ds on l y P ar a obt er o s egu i n t e ef ei t o O Delphi difer encia entr e maiús culas e minús culas na localização.. Localizando e s ubs tituindo O Delphi ofer ece um conj unto de r ecur s os poder os os par a a localização e a s ubs tituição de tr echos de código em s eus pr ogr amas . Quando você navega par a vár ios ar quivos ou locais difer entes . S e o código es tiver em outr o ar quivo (e o Delphi puder encontr á. (Há vár ios outr os car acter es es peciais – cons ulte o Help) O Delphi per mite que s ej am us ados car acter es es peciais par a es pecificar o tex to a s er localizado. defina as opções neces s ár ias e es colha OK . As opções s ão ex plicadas a s eguir . o Delphi move o cur s or par a a declar ação da var iável ou componente.. A localização é feita da pos ição do cur s or par a a fr ente. L ocal i z ando t ex t os no ar qui vo at ual O Delphi ofer ece todas as opções comuns par a localização de tex tos .) vale por um único car acter e. o ar quivo é automaticamente aber to no Editor de Código. A localização é feita em todo o ar quivo.Del phi 5 Clique na par te s ublinhada par a ex ibir o tr echo de código r elacionado. s ão ativados os contr oles no canto s uper ior dir eito da j anela de Editor de Código (vej a figur a). que ex ibe a s eguinte caix a de diálogo: Par a localizar um tr echo de tex to no ar quivo atual. Um as ter is co (* ) vale por qualquer númer o de car acter es .lo). um ponto (. por ex emplo. digite o tr echo em " T ex t to find" . A localização é feita da pos ição do cur s or par a tr ás . A palavr a não pode s er par te de outr a. O funcionamento é s emelhante aos botões " B ack" e " For war d" dos br ows er s par a a I nter net.

ocor r e um er r o no Delphi! A localização é feita a par tir do cur s or . até em ar quivos que não es tão aber tos no Editor de Código. No ex emplo ilus tr ado a s eguir . na par te de baix o do Editor de Código. Out r as t écni cas par a l ocal i z ação Depois de localizar um tr echo de tex to. ou pr es s ione F3 par a localizar as pr óx imas ocor r ências do tex to. da mes ma for ma que par a o comando S ear ch | Find. ou es colha a página Find in files da caix a de diálogo Find (vej a a s eção anter ior ). es tej am eles aber tos ou não. o tex to digitado apar ece na bar r a de s tatus . Pr ocur a em todos os ar quivos aber tos no Editor de código. Pr ocur a o tex to no dir etór io es pecificado na par te de baixo da caix a de diálogo. Depois de es colher es s e comando. você digita o tex to a s er pr ocur ado e es colhe as opções neces s ár ias . es colha o comando S ear ch | Find in files .Del phi 5 S el ect ed t ex t F r om cu r s or E n t i r e s cope A localização é r es tr ita à ár ea s elecionada. Na ár ea " Wher e" . As opções na ár ea " Options " da caix a s ão idênticas às des cr itas anter ior mente. o tex to s er á pr ocur ado nos ar quivos com ex tens ão .pas e que es tej am no dir etór io c: \MyPr oj ects . o Delphi localiza o tex to a medida que você digita. você es pecifica em quais ar quivos o tex to s er á pr ocur ado: Opção S ear ch al l f i les i n pr oj ect S ear ch al l open f i l es S ear ch i n di r ect or i es D es cr i ção Pr ocur a em todos os ar quivos do pr oj eto. . Com o comando S ear ch | I ncr emental S ear ch. com os comandos des cr itos . ou em s ubdir etór ios des te. Us e o comando S ear ch | S ear ch again. você pode localizá. S e nada es tiver s elecionado. Par a localizar tex tos em vár ios ar quivos . ou em todo o documento (s e a opção Global es tiver mar cada) L ocal i z ando t ex t os em vár i os ar qui vos É pos s ível localizar tex tos em vár ios ar quivos . A s eguinte caix a é ex ibida: Aqui. A localização é feita na ár ea s elecionada.lo novamente s em us ar comandos de menu.

Des ative. o tex to é s elecionado no ar quivo. pr es s ione ENT ER. us e o comando S ear ch | Replace. Par a s ubs tituir um tr echo de tex to por outr o. Par a s ubs tituir todas as ocor r ências do tex to es pecificado. . S ubs t i t ui ndo t ex t os Muitas vezes é neces s ár io s ubs tituir palavr as ou tr echos de tex to em um ar quivo (par a cor r igir o nome de uma var iável que apar ece vár ias vezes . Há uma quantidade enor me de opções que podem s er alter adas par a o Editor de Código. Continue digitando até localizar ex atamente o tex to des ej ado.a par a que o Delphi não mos tr e confir mações . por ex emplo). Par a par ar a localização. Confi gur ando o E di t or de Códi go O Editor de Código pode s er configur ado par a s e adaptar melhor à s ua maneir a de pr ogr amar .Del phi 5 S e o tex to que es tá s endo digitado for encontr ado. Es pecifique o tex to a s er localizado na pr imeir a caix a (" T ex t to find" ) e o tex to que s er á us ado par a s ubs tituí. Ver emos aqui as mais impor tantes e úteis . clique no botão Replace All. A opção Pr ompt on r eplace faz com que cada s ubs tituição s ej a confir mada. ou qualquer s eta do teclado. ou a cos tumes antigos que for am adquir idos com a ex per iência de pr ogr amação. O Delphi per mite fazer s ubs tituições apenas em um ar quivo de cada vez.lo na s egunda caix a( " Replace with" ).

é ex ibida. var iáveis . É o efeito de S yntax Highlighting que faz a palavr as mudar em de cor ou de es tilo dur ante a digitação do código. Opções importantes da página Colors Na página Color s . clique dentr o da j anela do Editor com o botão dir eito e es colha Pr oper ties . S e es s a opção es tiver des ativada (o padr ão). você define as cor es us adas par a o efeito de S yntax highlighting. palavr as . A fonte us ada no Editor . A caix a de diálogo Envir onment Options . As pr óx imas duas páginas – Dis play e Color s – apr es entam vár ias opções úteis que afetam a apar ência e os r ecur s os de edição do Editor de Código. As fontes que você pode es colher es tão r es tr itas a s omente fontes monoes paçadas – fontes nas quais todos os car acter es ocupam a mes ma lar gur a. quando s ua j anela é max imizada. em car acter es . Você pode também es colher entr e vár ios padr ões de cor es pr edefinidos . você define a apar ência e a or ganização da tela do Editor de Código. em car acter es . de aux ílio à pr ogr amação. S ão opções pouco us adas . etc. Opções importantes da página Display Na página Dis play. S ize é o tamanho da fonte. Deter mina a lar gur a da faix a cinza. Cada elemento pode s er mos tr ado com duas cor es : a cor de fr ente (For egr ound) e a cor de fundo (B ackgr ound). alter ando as s eguintes opções : Opção Cr eat e back u p f ile Z oom t o f u l l s cr een Vi s i bl e r i gh t m ar gi n R i gh t Mar gi n Vi s i bl e Gu t t er Gu t t er W i dt h E di t or F on t / S i z e D es cr i ção Ative es s a opção par a cr iar s empr e ar quivos de backup quando um ar quivo é s alvo a par tir do Editor de Código. Par a configur ar o Editor de Código. Ex ibe ou não a linha da mar gem do lado dir eito do Editor de Código. Deter mina a dis tância da mar gem dir eita. que ver emos na pr óx ima s eção. Ex ibe ou não a faix a cinza na par te es quer da do Editor de Código. dependendo da função ou s ignificado des s es elementos (ex emplos de elementos s ão comentár ios . a j anela do Editor de Código não s obr epõe a j anela pr incipal do Delphi.Del phi 5 Conf i gu r ação do E dit or de Códi go: págin a D i s pl ay. Ative es s a opção par a que o Editor de Código ocupe toda a ár ea da tela. em pontos . A página Code I ns ight é us ada par a configur ar os r ecur s os " Code I ns ight" . com apenas quatr o páginas de opções . . A pr imeir a página – Editor – é us ada par a configur ações avançadas do editor . Es te efeito alter a as cor es de elementos de pr ogr amas .).chave. cons tantes .

I s s o faz com que o elemento s elecionado volte par a a cor nor mal. par a alter ar a cor de fr ente. na par te de baix o da caix a de diálogo. Por ex emplo. es colha o elemento " Comments " na lis ta. clique com na cor com o botão es quer do (apar ecem as letr as " FG" dentr o do quadr ado de cor cor r es pondente). es colha uma das opções For egr ound ou B ackgr ound. clique com o botão dir eito (apar ecem as letr as " B G" dentr o do quadr ado de cor ). I tálico. em " T ex t attr ibutes " . Code Par ameter s e Code T emplates . par a alter ar a cor de fundo. Há tr ês muito úteis : Code Completion. As mudanças que você faz par a cada elemento s ão mos tr adas em um ex emplo de pr ogr ama. ou S ublinhado) par a o tex to do elemento.Del phi 5 Conf i gu r ação do E dit or de Códi go: págin a Col or s Par a alter ar as opções de S yntax Highlighting par a um elemento. Usando os recursos Code Insight Os r ecur s os Code I ns ight facilitam muito a pr epar ação de pr ogr amas no Delphi. defina atr ibutos (Negr ito. es colha o elemento par a o qual des ej a alter ar a cor . Cas o neces s ár io. Na paleta de cor es . na ár ea " Us e defaults for " . Vej a um ex emplo na s eguinte figur a: Par a des fazer uma mudança de cor . na lis ta " Element" . par a alter ar a cor dos comentár ios .

A lis ta ex ibida depende do que es tá s endo digitado no momento. o Delphi ver ifica o tipo de obj eto digitado e ex ibe a lis ta automaticamente (depois de alguns momentos ). o Delphi ins er e o item es colhido depois do ponto e fecha a lis ta de opções . com o pr imeir o par âmetr o j á digitado: . Pode. Code P ar amet er s O r ecur s o de Code Par ameter s (" Par âmetr os do Código" ) mos tr a a pos ição e os tipos de par âmetr os definidos par a uma pr ocedur e ou function (que tenha par âmetr os ! ). Vej a um ex emplo na figur a a s eguir . Além dis s o. enquanto os par âmetr os s ão digitados . Com is s o. pr ecedur es e functions .s e também pr es s ionar CT RL + B ar r a de Es paços par a mos tr ar a lis ta imediatamente. uma lis ta de pr opr iedades . As infor mações s obr e os par âmetr os s ão ex ibidos em uma pequena caix a amar ela. As infor mações continuam s endo ex ibidas até que os par êntes es da pr ocedur e/function s ej am fechados . abaix o da linha que es tá s endo digitada (vej a a figur a abaix o). ou continuar digitando nor malmente. s eguida de um ponto: As s im que o ponto é digitado. o Delphi r ealça (em negr ito) o par âmetr o atual. a pr ocedur e Cr eateFor m foi es colhida).Del phi 5 Code Completion Es s e r ecur s o mos tr a. a palavr a " Application" acaba de s er digitada. (Na figur a acima. Você pode es colher um item da lis ta com o teclado ou o mous e. dur ante a digitação do código. No ex emplo abaix o.

D i gi t e o n om e do t em pl at e e pr es s i one CT R L + J… … o códi go é i n s er ido e o cu r s or é col ocado n a pos i ção apr opr i ada. digite o s eu nome e pr es s ione CT RL + J. Vej a a s eguir alguns ex emplos de code templates pr edefinidos do Delphi (as bar r as ver ticais no código indicam a pos ição onde é colocado o cur s or . atr avés da digitação de uma palavr a ou código. Par a ins er ir um code template. etc. como es tr utur as if.Del phi 5 Code T empl at es Os Code T emplates (" Modelos de Código" ) s ão " es queletos " de comandos comuns que podem s er ins er idos no código r apidamente.els e. O Delphi j á define vár ios Code T emplates par a tr echos comuns de pr ogr amas . for b for | : = to do begin for s for | : = to do Es te nome… whileb É s ubs tituído por … while | do begin end. end. .then. declar ações de ar r ays . quando o code template é ins er ido). O Delphi ins er e o template e move o cur s or automaticamente par a a pos ição onde s e deve começar a digitar (vej a as figur as a s eguir ). : . Es te nome… cas es É s ubs tituído por … cas e | of : .

Na caix a que apar ece. clique no botão Add. es colha o comando T ools | Evir onment Options e mude par a página Code I ns ight. begin end. ou alter ar opções ger ais par a es s es r ecur s os . begin end. mova a pequena bar r a abaix o de " Delay" .s e também definir novos Code T emplates ou alter ar os j á ex is tentes . ilus tr ada a s eguir : Pode. Par a alter ar o tempo de es per a.s e ativar ou des ativar cada r ecur s o Code I ns ight na par te de cima da caix a. Confi gur ando os r ecur s os do Code I ns i ght É pos s ível des ativar ou ativar cada um dos r ecur s os do Code I ns ight. Par a is s o. Os pr ocedimentos abaix o devem s er r ealizados a par tir da página Code I ns ight ilus tr ada anter ior mente. Pode. function function | (): . digite um nome par a o code template e uma des cr ição par a ele: . além de alter ar o tempo de es per a par a que os r ecur s os s ej am ativados dur ante a digitação.Del phi 5 end. pr ocedur e pr ocedur e | (). Par a definir um novo Code T emplate. tr ye ife if | then begin end els e tr y | ex cept end.

ex ecutar pr ogr amas pas s oa. Por is s o. Com o depur ador .lo. Mas outr as mens agens de er r os de ex ecução têm ger almente o mes mo for mato. A mens agem começa com o nome do ar quivo ex ecutável onde ocor r eu o er r o. Erros e tipos de erros Há dois tipos de er r os bás icos que podem ocor r er (e quas e s empr e ocor r em) dur ante o des envolvimento de um aplicativo: er r os de compilação e er r os de ex ecução. Par a alter ar um code template. Odepurador integrado O Depur ador I ntegr ado (I ntegr ated Debugger ) do Delphi é uma fer r amenta que facilita a ver ificação e a cor r eção dos er r os em s eus pr ogr amas . ou er r os de tipos . O código binár io pur o não guar da ligação dir eta com as linhas do código fonte (o código nas Units ) – o código binár io s ó r econhece pos ições de memór ia.Del phi 5 Clique em OK par a fechar a caix a de diálogo e digite o código par a o code template na ár ea de baix o (ao lado de " Code" ).lo da mes ma for ma que os code templates pr edefinidos . Os er r os de compilação apar ecem dur ante a compilação do aplicativo no Delphi. mas s im a pos ição de memór ia (um númer o em hex adecimal! ) Vej a um ex emplo de uma mens agem de er r o de ex ecução: A mens agem ilus tr ada foi caus ada por um er r o comum: tentar mos tr ar um for mulár io que ainda não foi cr iado em memór ia. Digite uma bar r a ver tical ( | ) par a indicar a pos ição onde o cur s or deve s er colocado quando o código é ins er ido. Clique em OK par a s alvar o code template. o código que é ex ecutado é conver tido antes em código binár io. você pode. s elecione o nome do code template e clique no botão Delete.pas s o e ver ificar o valor de var iáveis e ex pr es s ões dur ante a ex ecução. Os er r os de compilação s ão ger almente caus ados por er r os de s intax e. Agor a você pode us á. por ex emplo. e as . ger almente s ão os mais fáceis (ou menos difíceis ) de cor r igir . Es tes s ão bem mais difíceis de cor r igir . Os er r os de ex ecução ocor r em dur ante a ex ecução do aplicativo. s elecione o nome do code template na lis ta de code templates e alter e o código na par te de baix o da caix a (ao lado de " Code" ). Muitas vezes es s es er r os s ão caus ados por s imples er r os de digitação. Como os aplicativos do Delphi s ão compilados . o nome da ex ceção que foi levantada. quando ocor r e um er r o em tempo de ex ecução. Par a apagar um template. Es s es er r os . Um er r o de compilação é fácil de cor r igir por que o compilador mos tr a ex atamente a linha em que o er r o ocor r eu e às vezes até s uger e uma maneir a de cor r igi. não é mos tr ada a linha onde ocor r eu o er r o. (Vej a um ex emplo na figur a a s eguir ).

entender a ex ecução em detalhe. Par a ex ecutar um pr ogr ama até a pos ição do cur s or . você pode pos icionar o cur s or em qualquer linha de um pr ogr ama e ex ecutar o pr ogr ama até aquela linha. A pr óx ima linha a s er ex ecutada é chamada ponto de ex ecução. por ex emplo. es s e tipo de mens agem não aj uda muito a identificar o er r o. s e ele não es tiver apar ecendo por alguma r azão. no Editor de Código. por ex emplo. Utilidades do Depurador Quando você ex ecuta um aplicativo no Delphi. us ar uma condição incor r eta em um loop while o r epeat: o pr ogr ama pode ficar pr es o dentr o do loop par a s empr e. clique com o botão dir eito no Editor de Código e es colha o comando Debug e depois Run to Cur s or . O depur ador cons egue " as s umir o contr ole" mes mo s e houver um er r o gr ave (como um er r o de har dwar e). . pos icione o cur s or na linha até onde o pr ogr ama deve s er ex ecutado. Você pode ex ecutar r apidamente uma par te do pr ogr ama par a depois s e concentr ar na par te " s us peita" . us ando o comando Run | S how ex ecution point. Er r os de lógica. Quando ocor r e um er r o de ex ecução no aplicativo. ele é ex ecutado automaticamente dentr o do depur ador . E x ecut ando um pr ogr ama at é a pos i ção do cur s or No Editor de Código. Depois o depur ador inter r ompe a ex ecução e as s ume o contr ole. o Depur ador (além da s ua ex per iência) é a s ua única aj uda par a detectá. A não s er par a os pr ogr amador es do tipo " es covador de bits " . N OT A: Er r os de lógica s ão pr oblemas na es tr utur a ou lógica de um pr ogr ama que fazem com que o pr ogr ama não ex ecute como es per ado. Es s e r ecur s o é es pecialmente útil par a pr ogr amas ex tens os . no Editor de Código. ou ver ificar pr ecis amente onde os er r os es tão acontecendo. Quando há er r os de lógica em s eus pr ogr amas . pr es s ione F4 O Delphi ex ecuta nor malmente todas as linhas do pr ogr ama até a linha anter ior à linha do cur s or . por ex emplo. entr etanto. es colha o comando Run | Run to Cur s or . O depur ador do Delphi ofer ece dois comandos par a ex ecutar um pr ogr ama linha por linha: T r ace I nto e S tep Over . r ealçando a pr óx ima linha a s er ex ecutada (a linha do cur s or ). par a que s e pos s a. clar amente. Um er r o de lógica comum é. Nes s e cas o ex tr emo. A ilus tr ação abaix o mos tr a o ponto de ex ecução logo depois de um pr ogr ama s er ex ecutado com o comando Run to cur s or . quando os er r os s ão caus ados pelo pr ópr io código do aplicativo e não por r azões ex ter nas . É nes s e ponto que entr a o Depur ador I ntegr ado do Delphi. não podem s er indicados pelo compilador .Del phi 5 pos ições de memór ia onde os er r os acontecer am. O ponto de ex ecução é r ealçado em azul. O depur ador é mais útil. É ex ibida também uma pequena s eta do lado es quer do da linha. Mes mo que s e r econheça o tipo de er r o que aconteceu (a par tir do nome da ex ceção).los . Realize uma das ações a s eguir . que contém os er r os . N OT A: você pode mos tr ar o ponto de ex ecução no Editor de Código. o depur ador não pode aj udar muito. o depur ador inter r ompe o pr ogr ama e as s ume o contr ole. mas ele pelo menos evita que os er r os tr avem o computador ou o coloquem em um es tado ins tável. E x ecut ando um pr ogr ama l i nha por l i nha Um pr ogr ama pode s er ex ecutado linha por linha no Delphi. não há como s aber dir etamente onde o er r o ocor r eu no pr ogr ama.

Você pode us ar um comando ou o outr o na or dem que des ej ar . I s s o pode tor nar a depur ação muito mais r ápida. por ex emplo. alter nadamente. ao contr ár io do comando T r ace I nto. você achar neces s ár io " entr ar " no código de uma pr ocedur e ou function. S e a linha a s er ex ecutada for uma chamada a uma r otina (function ou pr ocedur e). Vár ios br eakpoints podem s er definidos no mes mo pr ogr ama. Pode. linha por linha.a r apidamente us e o comando S tep Over .s e definir br eakpoints par a vár ias linhas de um mes mo pr ogr ama. Par a pular o código da pr ocedur e ou function. devido a um er r o de har dwar e. r ealize uma das s eguintes oper ações . Usando Breakpoints Você us a br eakpoints (" pontos de par ada" ) par a que o depur ador par e em pontos es pecíficos de um pr ogr ama. S e. ex ecutando. o código da r otina é ex ecutado também. I nt er r ompendo a ex ecução Muitas vezes dur ante a depur ação. Par a us ar o comando T r ace I nto. o comando Pr ogr am r es et cons egue " matar " o pr ogr ama e fazer tudo voltar ao nor mal. O bot ão T r ace I n t o O comando S t ep Over O comando S tep Over também ex ecuta os comandos de um pr ogr ama. Clique no botão S tep over na bar r a de fer r amentas (vej a a figur a). Com is s o. Par a us ar o comando T r ace I nto. ou pr es s ione CT RL+ F2 Na ver dade. Par a inter r omper o pr ogr ama que es tá s endo ex ecutado. O comando Pr ogr am r es et fecha todos os ar quivos aber tos pelo s eu pr ogr ama. Es tas s ão ex ecutadas dir etamente. es colha o comando Run | T r ace I nto. pr es s ione F7. ele não " entr a" no código das pr ocedur es e functions . U s ando os doi s comandos Par a pr ogr amas complex os . . S e o pr ogr ama tr avar . " entr a" nas pr ocedur es e functions . você pode fazer a ex ecução par ar em par tes " delicadas " ou complex as de um pr ogr ama e depois ex ecutar es s as par tes linha por linha. quando s e pas s a do er r o que es tava s endo pr ocur ado. em um único pas s o. Ele é ex tr emamente poder os o e pode s er us ado par a lhe tir ar das s ituações mais difíceis . es colha o comando Run | Pr ogr am r es et. o comando T r ace I nto. Você pode us ar o comando S tep Over par a " pular " o código de uma função que não pr ecis a ter s eu código tes tado linha por linha. por ex emplo.Del phi 5 O comando T r ace I nt o O comando T r ace I nto ex ecuta uma linha de um pr ogr ama de cada vez. pr es s ione F8. dur ante a depur ação. des de que es tas s ej am linhas ex ecutáveis (não s e pode definir br eakpoints par a linhas de comentár ios . liber a todos os r ecur s os que es tej am s endo us ados e limpa o valor de todas as var iáveis . S ão muito r ar os os cas os em que um er r o em um pr ogr ama faz o pr ópr io Delphi tr avar ir r ever s ivelmente. T r ace I nto e S tep Over . es colha o comando Run | S tep Over . por conta de uma alguma ex ceção que ocor r eu. Clique no botão T r ace I nto na bar r a de fer r amentas (figur a a s eguir ). Em outr as palavr as . uma linha de cada vez. us e o comando T r ace I nto. I s s o pode s er neces s ár io. r ealize uma das s eguintes oper ações . Defi ni ndo br eak poi nt s Os br eakpoints (" pontos de par ada" ) per mitem for çar a par ada da ex ecução em linhas es pecíficas de um pr ogr ama. ou quando o pr ogr ama fica em uma s ituação ins tável. você ger almente vai pr ecis ar us ar os dois comandos . é neces s ár io inter r omper a ex ecução do aplicativo. o comando Pr ogr am r es et faz mais que inter r omper o pr ogr ama. e o ponto de ex ecução é movido par a a linha depois da chamada à função. Mas . por ex emplo).

você pode pular dir etamente par a qualquer br eakpoint definido. o Delphi pár a imediatamente o pr ogr ama e mos tr a a linha onde par ou – a linha do br eakpoint – no Editor de Código. Você pode também apagar todos os br eakpoints de uma vez. ou apagá.Del phi 5 Par a definir um br eakpoint em uma linha de código. Par a mos tr ar todos os br eakpoints definidos em um aplicativo. A linha é r ealçada em ver melho e apar ece um pequeno cír culo do lado es quer do da linha (vej a a figur a). Pode. mas que não é pos s ível voltar atr ás depois de apagar um br eakpoint.s e então continuar ex ecutando o pr ogr ama pas s o. no Editor de Código. ou mova o cur s or par a a linha de código e pr es s ione F5. Par a facilitar o tr abalho com br eakpoints . B r eakpoin t s def i ni dos no E di t or de Códi go Quando encontr a um br eakpoint. o númer o de br eakpoints definidos pode cr es cer muito. que um br eakpoint des ativado pode s er r eativado.a. ou continuar a ex ecução até o final do pr ogr ama (ou até o pr óx imo br eakpoint). Você pode também des ativar um br eakpoint tempor ar iamente. A par tir des ta j anela. A j anela ex ibe o nome do ar quivo que contém cada br eakpoint. clique com o botão dir eito do lado es quer do do br eakpoint e es colha o comando Enabled.pas s o. no Editor de Código.lo de for ma per manente. o númer o da linha do br eakpoint e outr as infor mações mais avançadas . Note. clique no br eakpoint e pr es s ione F5. es colha o comando View | Debug Windows > B r eakpoints . . Par a des ativar /r eativar um br eakpoint. us ando F9. clicando duas vezes no nome do br eakpoint. com F7 ou F8. clique na faix a cinza do Editor de Código. ou clique do lado es quer do do br eakpoint (na faix a cinza do Editor de Código). você pode mos tr ar uma j anela com a lis ta de todos os br eakpoints definidos . no entanto. Par a apagar um br eakpoint. Mos t r ando os br eak poi nt s defi ni dos Dur ante a depur ação de um pr ogr ama ex tens o. ao lado da linha.

Par a definir um watch. Es colha o comando Delete All par a apagar todos os br eakpoints . Par a avaliar e modificar ex pr es s ões . es colha o comando View | Watch. ou Enable All par a ativar todos os br eakpoints . o Delphi mos tr a a s eguinte caix a de diálogo: . Os watches definidos s ão atualizados automaticamente dur ante a ex ecução. T r abal hando com Wat ches Watches (" s entinelas " ) s ão us ados par a monitor ar os valor es de uma var iável ou ex pr es s ão. O Delphi ex ibe a j anela Watch Lis t (ilus tr ação anter ior ) com os nomes e os valor es de cada watch. Às vezes é neces s ár io ver ificar o valor de var iáveis ou ex pr es s ões dur ante a ex ecução do pr ogr ama. Clique com o botão dir eito em cima do tr echo s elecionado e es colha o comando Debug > Add Watch at Cur s or no menu de atalho que apar ece. no Editor de Código. Aval i ando e modi fi cando ex pr es s ões A caix a de diálogo Evaluate/Modify per mite avaliar ex pr es s ões e alter ar var iáveis . O Delphi cr ia o watch e mos tr a a lis ta de watches definidos : Par a vis ualizar a lis ta de watches definidos . dur ante a ex ecução de um aplicativo no Delphi. Verificando variáveis e expressões A ex ecução linha por linha de um pr ogr ama pode não s er s uficiente par a des cobr ir a caus a de um er r o. abr a a lis ta de br eakpoints (View | Debug Windows > B r eakpoints ) e clique com o botão dir eito dentr o da j anela ex ibida. dur ante a depur ação.Del phi 5 Par a apagar /des ativar /ativar todos os br eakpoints . ou Dis able All par a des ativar todos os br eakpoints . es colha o comando Run | E valuate/ Modify. O Delphi ofer ece vár ios r ecur s os par a r ealizar es s as tar efas . mas for a da lis ta de br eakpoints (vej a a figur a a s eguir ). s elecione a var iável ou ex pr es s ão cuj o valor des ej a monitor ar (es te s er á o watch).

Acces s . é pos s ível tr abalhar com bancos S QL da mes ma for ma que com bancos locais . Par a modificar o valor de uma var iável dur ante a ex ecução. o B DE unifor miza a comunicação entr e o aplicativos e os bancos de dados – pode.Del phi 5 Par a avaliar uma ex pr es s ão. no entanto). . locais ou r emotos . Já os bancos r emotos S QL. Aarquiteturade acesso abancos de dados T odo o aces s o a bancos de dados a par tir de um aplicativo Delphi. Par a bancos de dados menos popular es . o Delphi ofer ece aces s o nativo. por ex emplo. T oda a comunicação entr e o Delphi e es s es S GB Ds é feita inter namente no ambiente do Delphi. DB 2. Em s eguida clique no botão OK . Um banco de dados compatível com ODB C ofer ece dr iver s ODB C que podem s er ins talados no Windows . É es s e dr iver que gar ante a unifor mização do aces s o a bancos de dados S QL. como Or acle. um banco de dados pode s er aces s ado facilmente a par tir do Delphi (o aces s o é bem mais lento que o aces s o nativo.. Par a os bancos de dados mais popular es . digite a ex pr es s ão a s er avaliada em " Ex pr es s ion" . s ej am es s es bancos r emotos ou não. Os bancos locais . Não é pos s ível modificar uma ex pr es s ão com mais de uma var iável. O aces s o nativo é ger almente muito mais r ápido. ins talado automaticamente com o Delphi Client/S er ver . A ex pr es s ão deve s er for mada por cons tantes . Pr aticamente todos os bancos de dados pr ofis s ionais s ão compatíveis com a tecnologia ODB C. Com o dr iver ODB C cor r es pondente ins talado.s e us ar os mes mos componentes e comandos par a aces s ar um banco de dados Or acle. é feito atr avés do B DE (B or land Databas e Engine). Trabalhando combancos de dados no Delphi: umavisão geral O Delphi ofer ece r ecur s os poder os os par a a cr iação de aplicativos com aces s o a bancos de dados . ger ando cons ultas S QL automaticamente. no dialeto de S QL us ado pelo banco. ou por var iáveis aces s íveis no momento. e clique no botão Modify. S ybas e. etc. es pecifique um valor em " New value" . O valor da ex pr es s ão é mos tr ado em " Res ult" . como Or acle e S ybas e. o Delphi ofer ece aces s o via ODB C (Open Databas e Connectivity). es pecifique o nome da var iável em " Ex pr es s ion" . ou um banco Par adox . Com o dr iver S QL Links . Além dis s o. O B DE é uma inter face padr ão que ger encia a par te técnica por tr ás do aces s o e manipulação de bancos de dados . pr ecis am também do dr iver S QL Links . Aplicativos cr iados no Delphi podem ter aces s o a dezenas de tipos de bancos de dados . como Par adox e dB as e s ão aces s ados dir etamente pelo B DE.

Com pon en t e D at aS ou r ce T abl e Us ado par a r ealizar o aces s o a tabelas ger adas por cons ultas S QL (quer ies ). Vej a a s eguir uma des cr ição br eve dos componentes mais impor tantes da página Data Acces s (par a os fins des s e cur s o bás ico). A P ági na Dat a Aces s A página Data Acces s contém os componentes us ados par a r ealizar a conex ão aos bancos de dados e aces s ar s uas infor mações . s ão os tr ês pr imeir os : DataS our ce.Del phi 5 Aarquiteturade acesso abancos de dados no Delphi . Os componentes mais impor tantes . par a a cr iação de aplicativos cliente/s er vidor . A pági n a D at a Acces s Há também vár ios outr os componentes avançados us ados . T able e Quer y. S ão duas páginas da paletas de componentes ex clus ivamente dedicadas a bancos de dados : as páginas Data Acces s e Data Contr ols .C omponentes básicos Há dezenas de componentes no Delphi par a o tr abalho com bancos de dados . por ex emplo. e de longe os mais us ados . Us ado par a r ealizar o aces s o a tabelas de um banco de dados . . Qu er y D es cr i ção Funciona como um inter mediár io entr e os componentes os componentes T able e Quer y e os componentes da paleta Data Contr ols .

além da es colha de um item lis tado. S emelhante ao componente ComboB ox . Vej a a s eguir uma des cr ição br eve dos componentes mais impor tantes da página Data Contr ols . Ex ibe o tex to de um campo com vár ias linhas de tex to (do tipo " B LOB " ou " Memo" ). mas com o r ecur s o adicional de aces s o a bancos de dados . S emelhante a um componente Memo. T em a mes ma apar ência e o mes mo funcionamento bás ico do componente ComboB ox . Pode.lo. Es te componente é us ado ger almente par a ex ibir os dados de um componente T able ou Quer y. Os DataS ets s ão conj untos de dados ar mazenados em for mato de tabela (em linhas e colunas ). ins er idos ou alter ados . Es s a quer y pode s er ex ecutada.vis uais . pode s er es colhido um valor par a um campo.editável. Componente DB Gr id DB Navigator DB T ex t DB Edit DB Memo DB I mage DB Lis tB ox DB ComboB ox DB CheckB ox DB RadioGr oup Ex ibe uma lis ta de itens ex tr aída de outr a tabela r elacionada. Ex ibe uma lis ta de itens ex tr aída de outr a tabela r elacionada. A pági n a D at a Cont r ol s Os componentes DB Edit e DB Memo. Um componente Quer y contém o tex to de uma quer y em S QL. Us ado par a navegar os r egis tr os de uma tabela. Des cr ição Ex ibe dados em for mato de tabela.Del phi 5 B at ch Move Us ado par a mover gr andes quantidades de dados de uma tabela par a outr a. A pági na Dat a Cont r ol s A página Data Contr ols contém componentes que podem s er ligados dir etamente a campos e tabelas de um banco de dados . Os tr ês s ão componentes não. ou " I mage" . A conex ão com um banco de dados é ger almente feita atr avés de um componente T able ou Quer y. DB LookupLis tB ox DB LookUpComboB ox Introdução ao A cesso abancos de dados O aces s o a bancos de dados a par tir de um aplicativo no Delphi é bas eado em tr ês componentes bás icos : DataS our ce. S emelhante a um componente Label. S emelhante ao componente DB Lis tB ox . S emelhante a um componente Edit. por ex emplo s ão equivalentes aos componentes Edit e Memo. Ex ibe um conj unto de valor es mutuamente ex clus ivos par a um campo. mas per mite a digitação dir eta de um valor . Es s es componentes s ão tipos de DataS ets .s e digitar um valor dir etamente. ou par a conver ter tabelas de um tipo par a outr o. ger ando uma nova tabela de dados (tempor ár ia) como . Muitos des s es componentes s ão apenas ver s ões mais poder os as dos componentes na página S tandar d. Ver emos mais s obr e DataS ets no pr óx imo capítulo. Ex ibe o tex to de um campo e per mite editá. S emelhante ao componente Lis tB ox . Ex ibe imagens ar mazenadas em um campo do tipo B LOB . T em a mes ma apar ência e o mes mo funcionamento bás ico do componente Lis tB ox . que indica o banco de dados as s ociado ao componente. Apenas contr olam a conex ão com o banco de dados e o pr oces s amento dos dados . Ex ibe uma lis ta de itens a par tir da qual. Um componente T able é ligado a uma tabela de um banco de dados atr avés de s ua pr opr iedade T ableName. Eles não s ão ex ibidos dur ante a ex ecução. T able e Quer y. Ex ibe um CheckB ox que pode s er us ado par a ex ibir ou alter ar o valor de um campo booleano. S omente elementos da lis ta podem s er es colhidos . per mitindo que dados s ej am apagados . par a copiar tabelas inteir as . Ex ibe o tex to de um campo de for ma não. Ambos os componentes T able e Quer y têm as pr opr iedades Databas eName.

em um novo for mulár io. que contém infor mações s obr e os país es do continente amer icano. Os dados ex ibidos nos componentes Data Contr ols s ão lidos a par tir do componente DataS our ce es pecificado. No ex emplo. Par a entr ar no Databas e Des ktop. Es s as tabelas s ão muito úteis par a a cr iação de aplicativos com bancos de dados pequenos ou médios . de for a do Delphi. clique no botão I niciar e es colha Pr ogr amas > B or land Delphi 5 > DataB as e Des ktop. não é neces s ár io digitar o caminho completo (dr ive e dir etór io) do banco de dados . Par a cr iar um for mulár io s imples com aces s o a dados . A maior ia dos componentes da página Data Contr ols apr es enta a pr opr iedade DataS our ce. Com o Databas e Des ktop você pode cr iar tabelas de bancos de dados do tipo Par adox /dB AS E. e os dados de um componente T able ou Quer y. Alter e a pr opr iedade Databas eName do componente T able par a o nome do banco de dados a s er aces s ado. us ados por um ou poucos computador es . Pode. todos os componentes que s e r efer em ao Alias pas s am a apontar par a o novo dir etór io. es colha o comando T ools | DataB as e Des ktop. atr avés do menu I niciar . Definir um Alias ofer ece vár ias vantagens .s e alter ar o dir etór io as s ociado a uma Alias s em a neces s idade de alter ar o código do aplicativo. Com a mudança. Adicione também um componente DB Gr id. da página Data Contr ols . Os Alias es s ão us ados dentr o do Delphi como um tipo de " apelido" par a um banco de dados . Par a vis ualizar os dados imediatamente no componente DB Gr id. B as ta digitar o nome do Alias . Alter e também a pr opr iedade T ableName par a a tabela do banco de dados cuj os dados você des ej a ex ibir . . us ar emos um componente T able par a r ealizar a conex ão com uma tabela de um banco de dados . Es s e local é identificado por um nome. Os dados s er ão ex ibidos em um componente DB Gr id. no ex emplo: Usando o DataBase Desktop O DataB as e Des ktop é um aplicativo independente que é ins talado j unto com o Delphi. r ealize uma das s eguintes oper ações . Umexemplo típico Ver emos agor a como cr iar um for mulár io bás ico com aces s o a bancos de dados . De dentr o do Delphi. Vej a a apar ência final do for mulár io. adicione um componente T able e um componente DataS our ce. ou mes mo de dentr o do Delphi. O componente DataS our ce é us ado como um inter mediár io obr igatór io entr e os componentes Data Contr ols em um for mulár io. (No nos s o ex emplo. Outr a função impor tante do DataB as e Des ktop é a definição de " Alias es " . alter e a pr opr iedade Active do componente T able par a T r ue. Ele pode s er aces s ado dir etamente. onde é es pecificado o componente DataS our ce a s er conectado ao componente. Defi ni ndo um Al i as Antes de definir as tabelas de um banco de dados . es colhemos o banco de dados DB DEMOS e a tabela Countr y. A pr opr iedade DataS et de um componente DataS our ce é us ada par a r ealizar a ligação entr e os componentes . você deve definir o local onde os ar quivos do banco de dados s er ão ar mazenados . Alter e a pr opr iedade DataS our ce do componente DB Gr id par a o nome do componente DataS our ce (" DataS our ce1" é o nome padr ão).Del phi 5 r es ultado. chamado Alias . ambos localizados na página Data Acces s da paleta de componentes do Delphi. (O componente DB Gr id mos tr a os dados em um DataS et em for mato de tabela).) Alter e a pr opr iedade DataS et do componente DataS our ce par a o nome do componente T able (" T able1" é o nome padr ão).

Quando você es colhe um tipo difer ente de S tandar d. Em " Dr iver T ype" . es colha o tipo do Dr iver . você pode us ar um dir etór io tempor ár io (digamos . C: \DADOS ) par a ar mazenar s uas tabelas dur ante o des envolvimento e us ar outr o dir etór io quando o aplicativo é ins talado no computador do cliente (digamos . Acces s . O tipo do dr iver é ger almente identificado pelo nome do banco de dados (como Or acle. O DataB as e Des ktop ex ibe a s eguinte caix a: Clique no botão New e digite um nome par a o Alias . novos campos apar ecem na caix a de diálogo. é neces s ár io alter ar os valor es des s es novos campos . (Ou clique no botão K eep New par a continuar cr iando outr os Alias es ). I nfor mix . bas ta alter ar o dir etór io do Alias na hor a da ins talação. S e um Alias tiver s ido definido na hor a do des envolvimento. cas o neces s ár io). G: \S I S T E MAS \DADOS ). O tipo S tandar d é o tipo padr ão.Del phi 5 Por ex emplo. Na ár ea " Path" digite o dir etór io par a o Alias . Cons ulte a documentação do banco de dados que você es tá us ando (ou o Help do Delphi) par a ver ificar quais mudanças s ão neces s ár ias . O código do aplicativo não pr ecis a s er alter ado (nem r ecompilado). Ele é us ado par a aces s ar bancos Par adox e dB as e. entr etanto. es colha o comando T ools | Alias Manager . Clique em OK par a confir mar a cr iação do Alias . em " Databas e Alias " . Par a cr iar um Alias . O dir etór io deve s er um dir etór io ex is tente (cr ie um novo dir etór io antes de cr iar o Alias . A maior ia des s e campos têm valor es padr ão que podem s er us ados como es tão. É ex ibida a s eguinte caix a de diálogo de confir mação: . etc). Algumas vezes .

es colha o comando File | Wor king dir ector y. confir me as alter ações clicando novamente em OK . es colha o comando File | New > T able. tais como T able. o tamanho e o tipo de cada campo da tabela. Na caix a de diálogo ex ibida. o nome. ou es colha um Alias na par te de baix o da caix a. O dir etór io de tr abalho deve s er . Quer y e Databas e. no local indicado na caix a. digite um caminho completo.Del phi 5 Os novos Alias (públicos ) cr iados s ão ar mazenados no ar quivo I DAPI 32. o Alias do banco de dados com que s e es tá tr abalhando no momento. es colha o Alias a s er alter ado (figur a abaix o). Faça as alter ações neces s ár ias e clique em OK . A s eguinte caix a de diálogo é ex ibida: .CFG. Par a alter ar o dir etór io de tr abalho. Na maior ia dos cas os . ele s e tor na dis ponível nas pr opr iedades Databas eName de vár ios componentes . T odos os ar quivos cr iados no DataB as e Des ktop (como tabelas e índices ) s ão ar mazenados nes s e dir etór io de tr abalho. Na par te de cima da caix a. Você cr ia uma tabela pr imeir o definindo a s ua es tr utur a. Na caix a de diálogo que apar ece. Depois de cr iar um Alias . A caix a de diálogo apenas confir ma es s a oper ação. Al t er ando o di r et ór i o de t r abal ho É r ecomendável definir um dir etór io de tr abalho (wor king dir ector y) dur ante o tr abalho com o DataB as e Des ktop. Par a alter ar um Alias . es colha o comando T ools | Alias Manager . bas ta clicar no botão S im par a confir mar . A es tr utur a de uma tabela é. Par a cr iar uma tabela. ger almente. Cr i ando t abel as O DataB as e Des ktop per mite que s ej am cr iadas tabelas de vár ios tipos de bancos de dados . bas icamente.

Na caix a que apar ece. (Es s e r ecur s o é ger almente us ado s omente par a adicionar alguns dados de amos tr a. etc. clique no botão S ave As par a s alvar a nova tabela no dis co. Os pr óx imos pas s os as s umem que foi es colhido o tipo de tabela Par adox 7 (o tipo mais comum de tabela definido com o DataB as e Des ktop). (Na figur a a s eguir . es colha a tabela a s er alter ada. es colha o comando File | Open > T able. monetár io. pois os dados s ão nor malmente adicionados a par tir dos aplicativos ).las com dados dentr o do pr ópr io Databas e Des ktop. você pode pr eenchê. Par a adicionar dados a uma tabela (ou alter ar dados ). T AB ou ENT ER par a mover o cur s or (quando pos s ível). es tes s ão ex ibidos também. Field Name: o nome do campo. . S ize: o tamanho do campo (em dígitos ou car acter es ). A tabela é aber ta e ex ibida em uma j anela. nes s es cas os ). Pr es s ione a bar r a de es paços par a mos tr ar ou es conder o as ter is co. S e a tabela contiver dados . Us e as s etas do teclado. Os ar quivos ex ibidos na caix a s ão os do dir etór io de tr abalho. booleano. A tabela é s alva no dir etór io de tr abalho (vej a a s eção anter ior ). Adi ci onando dados a uma t abel a Uma vez cr iadas as tabelas de um banco de dados . com tr ês campos e alguns dados j á digitados ). Há quatr o colunas que devem s er pr eenchidas . K ey: um as ter is co (* ) nes s a coluna deter mina s e o campo é ou não uma chave. ou com o mous e. ou us e o mous e. Pr eencha cada coluna como des cr ito a s eguir . Depois de definir o tipo e o tamanho de cada campo. Es colha um Alias na par te de baix o par a mos tr ar ar quivos de outr o dir etór io.) Pr es s ione a bar r a de es paços com o cur s or nes s a coluna e es colha um tipo com as s etas . O tamanho deve s er um valor entr e 1 e 255. É mos tr ada um caix a do tipo " S alvar como" onde você deve digitar o nome do ar quivo a s er s alvo. é mos tr ada uma pequena tabela no Databas e Des ktop. Es s a coluna não pode s er alter ada par a alguns tipos (ela fica vazia. T ype: o tipo do campo (s e é inteir o. Vár ios campos podem s er chaves ao mes mo tempo (for mando uma chave compos ta).Del phi 5 Es colha o tipo da tabela e clique em OK par a começar a definir a es tr utur a.

Del phi 5

Quando a tabela é ex ibida, s eus dados s ão inicialmente pr otegidos contr a alter ações . Par a fazer alter ações ou adicionar novos dados , es colha o comando T able | View Data, ou pr es s ione F9. Faça as alter ações ou digite novos dados nor malmente. Us e o mous e, a tecla T AB , ou as s etas do teclado par a mover o cur s or e depois digite os valor es des ej ados . As alter ações s ão s alvas automaticamente a cada r egis tr o (linha da tabela) digitado. Par a ter minar a edição dos dados , s imples mente feche a j anela onde é ex ibida a tabela.

Al t er ando a es t r ut ur a de uma t abel a
Algumas vezes , é neces s ár io adicionar campos ou r etir ar campos de uma tabela, alter ando s ua es tr utur a. Você pode fazer is s o facilmente no DataB as e Des ktop. Par a alter ar a es tr utur a de uma tabela, s e a tabela não es tiver aber ta, us e o comando File | Open > T able par a abr i- la. Es colha o comando T able | Res tr uctur e. A caix a de diálogo com a es tr utur a da tabela é ex ibida (figur a a s eguir ).

Del phi 5
Pode- s e adicionar ou r etir ar campos da tabela, ou alter ar o nome, o tamanho ou o tipo de campos j á ex is tentes . Pode haver per das nes s e pr oces s o. Vej a o que pode acontecer . S e um campo for r etir ado, todos os dados contidos naqueles campos s ão apagados per manentemente. S e o tamanho de um campo for r eduzido, valor es com compr imento maior que o novo tamanho s er ão cor tados . Clique no botão S ave par a s alvar as alter ações . S e houver algum per igo de per das de dados , é ex ibida um caix a de avis o como a s eguinte:

A caix a ilus tr ada pode s er ex ibida vár ias vezes , uma vez par a cada campo com pr oblemas . Ger almente, bas ta clicar em OK par a confir mar as alter ações na es tr utur a da tabela.

Trabalhando comDataSets
Um DataS et é um conj unto de dados or ganizado em for ma de tabela (em linhas e colunas ). As colunas s ão os campos e as linhas s ão os r egis tr os . T odo o aces s o a bancos de dados no Delphi é feito atr avés de DataS ets . Os componentes T able e Quer y s ão os tipos pr incipais de DataS ets . Nes te capítulo, ver emos as pr opr iedades , eventos e métodos dos DataS ets . T udo que ver emos aqui vale par a os componentes T able e Quer y.

Abr i ndo e fechando Dat aS et s
Par a alter ar ou ler os dados em uma DataS et, você deve pr imeir o abr ir o DataS et. Par a abr ir um DataS et, r ealize uma das s eguintes oper ações , alter e a pr opr iedade Active do DataS et par a T r ue. I s s o pode s er feito em tempo de des envolvimento no Obj ect I ns pector , ou em tempo de ex ecução. O s eguinte comando abr e o componente chamado " T able1" : T able1.Active: = T r ue; Us e o método Open no DataS et, como abaix o: Quer y1.Open; Quando um DataS et é aber to os dados conectados a ele s ão lidos e ex ibidos automaticamente (s e houver componentes onde os dados pos s am s er ex ibidos , é clar o). No ex emplo do capítulo anter ior , abr imos um componente T able em um for mulár io par a que os dados fos s em ex ibidos imediatamente em um componente DB Gr id. Você deve s empr e fechar um DataS et depois de us á- lo, par a liber ar r ecur s os do s is tema. Par a fechar um DataS et, r ealize uma das s eguintes oper ações , alter e a pr opr iedade Active do DataS et par a Fals e. Us e o método Clos e no DataS et, como em T able1.Clos e.

E s t ados de um Dat aS et
Um DataS et pode es tar em vár ios es tados difer entes . O es tado de um DataS et deter mina o que pode s er feito (ou es tá s endo feito) com o DataS et. O valor da pr opr iedade S tate de um DataS et deter mina o s eu es tado atual. Vej a a s eguir uma des cr ição br eve dos es tados mais impor tantes em que pode es tar um DataS et.

Del phi 5
Es tado Ds I nactive Ds B r ows e Ds Edit Ds I ns er t S ignificado O Datas et es tá fechado. S eus dados não es tão dis poníveis (não podem s er lidos nem alter ados ). O Datas et es tá aber to. S eus dados podem s er vis ualizados , mas não podem s er alter ados . Es te é o es tado padr ão de um DataS et. O DataS et es tá aber to. O r egis tr o atual pode s er modificado. O DataS et es tá aber to. Um novo r egis tr o acaba de s er ins er ido.

O es tado ds B r ows e é o es tado padr ão. Quando um DataS et é aber to, ele é colocado automaticamente nes te es tado. Vár ios métodos de um DataS et podem s er us ados par a alter ar o s eu es tado. Par a us ar um dos métodos da ilus tr ação, s imples mente us e o nome do DataS et s eguido pelo nome do método. O tr echo de código abaix o, por ex emplo, alter a cinco vezes o es tado de um componente T able. pr ocedur e T For m1.B utton1Click(S ender : T Obj ect); begin T able1.Open; // O es tado muda par a ds B r ows e ... T able1.Edit; //... muda par a ds Edit... T able1.I ns er t; //... muda novamente par a ds I ns er t ... T able1.Pos t; //... volta a ds B r ows e ... T able1.Clos e; //... e finalmente muda par a ds I nactive end;

Navegando em um Dat aS et
Os DataS ets ter iam pouca utilidade s e não fos s e pos s ível per cor r er e cons ultar (navegar ) os s eus r egis tr os . Há vár ios métodos e pr opr iedades úteis par a a navegação de DataS ets . Par a per mitir a navegação de s eus r egis tr os , todo DataS et contém um cur s or que indica o r egis tr o atual (ou linha atual) do DataS et. É no r egis tr o atual que s ão feitas alter ações , ou onde s ão ins er idos (ou r emovidos ) r egis tr os . T odos os métodos de navegação alter am a pos ição do cur s or . Vej a uma des cr ição br eve des s es métodos na tabela a s eguir : Mét odo F ir s t L as t N ex t P r i or MoveB y( n u m ) D es cr i ção Move o cur s or par a o pr imeir o r egis tr o do DataS et. Move o cur s or par a o último r egis tr o do DataS et. Move o cur s or par a o pr óx imo r egis tr o do DataS et (imediatamente depois do r egis tr o atual). S e o cur s or j á es tiver no último r egis tr o, nada acontece. Move o cur s or par a o r egis tr o anter ior do DataS et (imediatamente antes do r egis tr o atual). S e o cur s or j á es tiver no pr imeir o r egis tr o, nada acontece. Move o cur s or o númer o de r egis tr os es pecificado em num. Um valor pos itivo move o cur s or par a fr ente; um valor negativo move- o par a tr ás . Por ex emplo, T able1.moveB y(10) move o cur s or 10 r egis tr os par a tr ás na tabela T able1. S e o númer o de r egis tr os es pecificado for maior do que o númer o que s e pode mover , o cur s or é movido par a o pr imeir o ou o último r egis tr o, dependendo da dir eção do movimento. Além dos métodos des cr itos acima, há duas pr opr iedades que indicam s e o cur s or chegou ao final ou ao início de um DataS et: B OF e EOF . P r opr i edade B OF D es cr i ção B OF é alter ado par a T r ue quando o cur s or es tá no pr imeir o r egis tr o do DataS et. B OF é a abr eviação de B egin of File – " I nício do Ar quivo" . Quando o cur s or es tiver em qualquer r egis tr o que não s ej a o pr imeir o do DataS et, o valor de B OF é Fals e. EOF é alter ado par a T r ue quando o cur s or es tá no último r egis tr o do DataS et. EOF é a abr eviação de E nd of File – " Final do Ar quivo" . Quando o cur s or es tiver em qualquer r egis tr o que não s ej a o último do DataS et, o valor de EOF é Fals e.

E OF

Vej a a s eguir dois ex emplos que us am os métodos e pr opr iedades vis tas acima. O pr imeir o ex emplo per cor r e uma quer y " Quer y1" do pr imeir o r egis tr o até o último, s omando todos os valor es no campo " Quantidade" . FieldValues [ NomeDoCampo] é us ado par a obter o valor de cada campo. Uma mens agem com o valor total é mos tr ada no final.

while not (Quer y1.Open. o es tado do DataS et não é alter ado. var Valor : Cur r ency. T able1. Muitos componentes chamam es s e método implicitamente par a per mitir a alter ação dir eta dos valor es de um DataS et.s e alter ar um DataS et dir etamente. O es tado do DataS et muda par a ds I ns er t. O es tado do DataS et muda par a ds I ns er t (como par a o método Append). begin T able1.Del phi 5 pr ocedur e T For m1. I s to per mite a alter ação dos valor es do r egis tr o atual. Es te s egundo ex emplo per cor r e os r egis tr os do componente T able " T able1" do último até o pr imeir o.Pr ior .Nex t. O comando Pos t é um tipo de confir mação da última entr ada. var T otal: Double. { Mover par a o pr óx imo r egis tr o} end. por ex emplo). Modi fi cando Dat as et s Pode. { Mover par a o pr imeir o r egis tr o} T otal: = 0. Cas o contr ár io.Fir s t. O ex emplo é s emelhante ao anter ior . S howMes s age('Valor do es toque: '+ FloatT oS tr (Valor )). O componente DB Gr id.B utton1Click(S ender : T Obj ect). entr a no es tado ds Edit us ando o método Edit. pr ocedur e T For m1. S howMes s age('Quantidade total: '+ FloatT oS tr (T otal)).B OF) do begin Valor : = Valor + T able1[ 'Quantidade'] * T able1[ 'Pr eco'] .Clos e { Fechar a Quer y} end. Os s eguintes métodos per mitem fazer es s as alter ações : Mét odo E di t D es cr i ção Coloca o DataS et no es tado ds Edit. { Abr ir a Quer y} Quer y1. T enta enviar o novo r egis tr o ou o r egis tr o alter ado par a o banco de dados . Quer y1. Muitos componentes chamam Pos t automaticamente (quando s e pas s a de um r egis tr o par a outr o em um DB Gr id. Quer y1. Apaga o r egis tr o atual e coloca o DataS et no es tado ds B r ows e. quando s e dá um duplo clique em um dos r egis tr os . por ex emplo.B utton2Click(S ender : T Obj ect). a não s er pela or dem inver s a e o us o de um componente T able em vez de um Quer y. Can cel D el et e Cancela a última oper ação (uma alter ação em um r egis tr o. calculando o valor total do es toque: a s oma de todos os pr eços multiplicados pelas quantidades dos pr odutos . Ela foi us ada s omente par a ilus tr ar B OF e os métodos Las t e Pr ior .Las t. while not (T able1. begin Quer y1. Adiciona um r egis tr o vazio ao final do DataS et. { Mover par a o r egis tr o anter ior } end. Appen d I n s er t P os t . Note que obviamente a or dem inver s a não é obr igatór ia. por ex emplo) e coloca o DataS et no es tado ds B r ows e. o DataS et é colocado no es tado ds B r ows e. ou adicionando e r emovendo r egis tr os inteir os .EOF) do begin T otal: = T otal + Quer y1[ 'Quantidade'] . Adiciona um r egis tr o vazio na pos ição atual do cur s or . modificando valor es campo a campo. end. S e tudo cor r er bem. { Mover par a o último r egis tr o} Valor : = 0.

us ando o método Pos t.As Cur r ency : = 754. // Confir mar alter ação end.B utton1Click(S ender : T Obj ect). O método Pos t.B utton1Click(S ender : T Obj ect). No ex emplo. Os dois métodos colocam o DataS et no es tado ds I ns er t. FieldB yName(‘Des cr icao’). I ns er t ou Append par a colocá. pr ocedur e T For m1.43. O método Edit é us ado par a colocar a tabela no es tado ds Edit.a per manente.FieldValues [ ‘Pr eco’] : = 54. o campo " Des cr icao" do r egis tr o atual do componente T able " T abPr odutos " é alter ado par a o valor digitado no componente Edit1.lo em um des s es es tados ). Us ando o método FieldB yName e pr opr iedades de conver s ão: T abela. begin with T abPr odutos do begin Fir s t.43. . " Pr eco" e " Quantidade" e as alter ações s ão confir madas com Pos t.As I nteger : = 78. Depois de r ealizar as alter ações .Del phi 5 Modi fi cando campos O valor de um campo do r egis tr o atual de um DataS et pode s er alter ado de vár ias maneir as . N OT A: Par a tabelas index adas do tipo Par adox e dB AS E. antes de fazer a alter ação. O ex emplo a s eguir ins er e um novo r egis tr o depois do décimo r egis tr o da tabela. FieldB yName(‘Quantidade’). valor es s ão definidos par a os campos " Des cr icao" . MoveB y(10).As S tr ing : = ‘T elevis ão T oNaB oa’. você deve confir má. Adi ci onando r egi s t r os Os métodos I ns er t e Append s ão us ados par a adicionar novos r egis tr os a um DataS et. Append adiciona um r egis tr o vazio depois do último r egis tr o do DataS et. FieldB yName(‘Pr eco’).43. end. confir ma a alter ação. Par a que s ej a pos s ível alter ar os valor es dos campos . I ns er t ins er e o novo r egis tr o na pos ição do cur s or . I ns er t.las . Vej a um ex emplo que us a FieldValues : pr ocedur e T For m1.As Cur r ency : = 54. Moveby(10) move o cur s or 10 r egis tr os adiante. Eles adicionam um novo r egis tr o na pos ição deter minada pelo índice da tabela.As I nteger : = 24. tor nando. var NovaDes c: S tr ing. with T abPr odutos do begin Edit. // Pr epar ar par a alter ação FieldValues [ 'Des cr icao'] : = NovaDes c.T ex t. es pecificando o nome do campo dir etamente: T abela[ ‘Pr eco’] : = 54. Us ando a pr opr iedade FieldValues : T abela. I ns er t adiciona um r egis tr o vazio na pos ição atual do cur s or .FieldB yName(‘Pr eco’). Em s eguida. o DataS et deve es tar no es tado ds Edit ou ds I ns er t (us e Edit. os comandos I ns er t e Append têm o mes mo efeito. FieldB yName(‘Codigo’).00. Pos t. begin NovoNome : = Edit1.

depois da confir mação do us uár io (feita com a função Mes s ageDlg). S e o us uár io confir mar a alter ação. end. No cas o em que um novo r egis tr o acabou de s er ins er ido. ou modificar os valor es dos s eus campos . FieldValues [ 'Des cr icao'] : = NovaDes cr icao.s e apagar r egis tr os inteir os r apidamente. NovaDes cr icao: S tr ing. // Confir ma as alter ações if Mes s ageDlg('Confir ma alter ação?'. end. NovoPr eco: = S tr T oCur r (E ditPr eco. Dur ante a alter ação de um r egis tr o. quando o cur s or é movido par a outr o r egis tr o. with T abPr odutos do begin Open. ou MoveB y . com os valor es es pecificados . I ns er i ndo e Modi fi cando r egi s t r os i nt ei r os Há tr ês métodos que per mitem ins er ir ou alter ar r egis tr os inteir os : I ns er tRecor d. mbYes NoCancel. s em confir mações . Os valor es ins er idos s ão lidos a par tir de quatr o E di t s .Del phi 5 Pos t. o método Can cel cancela todas as mudanças . val or 2 . FieldValues [ 'Quantidade'] : = NovaQuant.T ex t). L as t . Apagando r egi s t r os Pode. AppendRecor d e S etFields . N ex t . Mét odo I n s er t R ecor d( [ val or 1 . com o método Delete. dur ante a edição de um campo. Delete apaga o r egis tr o atual. P os t é chamado automaticamente..T ex t). As mudanças s ó têm efeito. NovaQuant: I nteger . Quando o método Can cel é chamado. NovaDes cr icao: = EditDes cr icao.T ex t). e coloca o DataS et no es tado ds B r ows e.a no es tado ds B r ows e Append. é pos s ível des fazer alter ações r ecentes . Confi r mando e cancel ando mudanças Depois de ins er ir um r egis tr o. O ex emplo abaix o adiciona um novo r egis tr o a uma tabela com quatr o campos (chamada " T abPr odutos " ). na pos ição atual do cur s or . mtConfir mation. NovoPr eco: Cur r ency. . // Abr e a tabela. begin // Lê os valor es nos quatr o Edits NovoCodigo: = S tr T oI nt(EditCodigo. os valor es dos campos do r egis tr o atual r ever tem par a os valor es antes da alter ação.T ex t. colocando. o método Can cel é chamado automaticamente quando o us uár io pr es s iona a tecla ES C. NovaQuant: = S tr T oI nt(EditQuant. P r i or . Os métodos I n s er t e Appen d também chamam o método P os t . você pode us ar o método Pos t par a tor nar as mudanças per manentes . ou us ar o comando Cancel par a cancelar es s as mudanças .] ) D es cr i ção I ns er e um novo r egis tr o. tor nando per manentes as mudanças que haviam s ido feitas antes do r egis tr o s er adicionado. é us ado o método P os t par a enviar os dados ao banco de dados . // Cr ia um novo r egis tr o no final (es tado ds I ns er t) // Alter a os valor es de cada campo FieldValues [ 'Codigo'] : = NovoCodigo. ou logo depois da ins er ção de um novo r egis tr o. A lis ta de valor es deve es tar entr e . end. o método Can cel r emove o novo r egis tr o. FieldValues [ 'Pr eco'] : = NovoPr eco. s e não. entr etanto.. end. var NovoCodigo: I nteger .0) = mr Yes then Pos t els e Cancel.B utton1Click(S ender : T Obj ect). Na maior ia dos componentes D at a Con t r ol s . pr ocedur e T For m1. us ando os métodos F i r s t . us ando o método Can cel . O r egis tr o imediatamente depois do r egis tr o apagado s e tor na o r egis tr o atual.

Como ar gumentos do método Locate. nil] )..'Digite o pr eço'. nil. val or 2 . Cas o pos itivo. S et F i el ds ( [ val or 1 . NovaDes cr icao.] ) L ocal i z ando r egi s t r os com L ocat e O método Locate é maneir a mais ver s átil e mais r ápida de localizar r egis tr os em um DataS et. mbNo] . //Alter a o pr eco Pos t.. o valor des ej ado par a . NovoPr eco: Cur r ency. //I ns er e um novo r egis tr o I ns er tRecor d([ NovoCodigo. O método I ns er tRecor d chama Pos t implicitamente no final. é us ado o método S etFields par a alter ar s omente o pr eço do r egis tr o atual (note como nil é us ado par a todos os outr os campos ). //Confir ma a alter ação end. mas o r egis tr o é adicionado ao final do DataS et. begin NovoCodigo : = S tr T oI nt(EditCodigo. var NovoCodigo: I nteger . os métodos AppendRecor d e I ns er tRecor d têm ex atamente o mes mo efeito – a pos ição do r egis tr o adicionado depende do índice da tabela. Em s eguida. NovaDes cr icao: S tr ing.T ex t.] ) I dêntico ao método I ns er tRecor d. Par a alter ar apenas alguns campos do r egis tr o atual. o r es tante dos campos do novo r egis tr o s ão pr eenchidos com nil. Alter a os valor es dos campos cor r es pondentes do r egis tr o atual. O método Pos t não é chamado implicitamente por S etFields .s e us ar nil par a es pecificar um valor nulo (vazio) par a um ou mais campos . //Coloca o T able no es tado ds Edit (es s encial) S etFields ([ nil. val or 2 .Del phi 5 colchetes e os valor es devem s er s epar ados por vír gulas .s e chamar Pos t depois do método par a tor nar as alter ações per manentes ..T ex t). Appen dR ecor d( [ val or 1 . 0) = mr Yes then begin //Realiza a alter acao do pr eco (o campo es tava vazio) NovoPr eco : = S tr T oCur r (I nputB ox (''. as s umindo uma quantidade fix a de 12 par a es te. Par a o ter ceir o campo (o pr eço) é es pecificado como nil. Deve. 12] ).B utton1Click(S ender : T Obj ect). . Pr eco e Quantidade). o pr ogr ama per gunta s e o campo Pr eco deve s er pr eenchido ou não. A or dem em que os valor es s ão es pecificados deve s er a or dem dos campos no DataS et. NovoPr eco. // Confir ma a entr ada do pr eco if Mes s ageDlg('Entr ar com pr eço agor a?'. S e o númer o de valor es es pecificados for menor que o númer o de campos na tabela. você es pecifica o nome dos campos a s er em cons ultados . [ mbYes . O método AppendRecor d também chama Pos t implicitamente. tor nando as alter ações per manentes . S e o DataS et for uma tabela index ada. end. O DataS et deve es tar no es tado ds Edit par a que S etFields pos s a s er us ado (us e o método Edit). end. nil.'')). Pode. Des cr icao. mtConfir mation. us e nil como ar gumento par a cada campo que não des ej a alter ar . I s s o deix a o campo vazio (ou inalter ado). O ex emplo alter a s omente os dois pr imeir os campos (us ando os valor es lidos ) e o último campo. pr ocedur e T For m1. with T abPr odutos do begin Open. . O ex emplo a s eguir us a o método I ns er tRecor d par a ins er ir um novo r egis tr o na tabela T abPr odutos (es ta tabela tem os campos Codigo. NovaDes cr icao : = EditDes cr icao.. Edit.

Var Ar r ayOf([ NomePr oc. 100.Locate('Nome. S e a localização for bas eada em apenas um campo. Elas s er ão vis tas mais adiante.Del phi 5 cada campo es pecificado e um conj unto de opções de localização (que pode s er vazio). O pr imeir o par âmetr o de Locate é uma lis ta de campos s epar ados por ponto. Com es s a opção " mar ia" . ou aplicando um filtr o. F i l t r ando Dat aS et s Algumas vezes é neces s ár io ex ibir apenas um s ubconj unto dos r egis tr os de uma DataS et que atendam a alguma condição. por ex emplo).vír gula. A condição na pr opr iedade Filter deve es pecificar uma ex pr es s ão lógica. mos tr ando uma mens agem com o r es ultado da localização. defina uma condição par a a pr opr iedade Filter e alter e a pr opr iedade Filter ed par a T r ue.') els e S howMes s age('Regis tr o não encontr ado. 'S '] ). S obr enomePr oc: S tr ing. com os nomes dos campos entr e as pas s imples . que localiza o cliente com código igual a 100. por ex emplo. [ ] ). //Res ultado da pes quis a begin NomePr oc : = EditNome. Faz com que Locate ignor e maiús culas e minús culas . loCas eI ns ens itive] ). As cons ultas S QL s ão mais poder os as .S obr enomePr oc] ). T abClientes . Filtr os podem s er definidos de duas maneir as : us ando as pr opr iedades Filter e Filter ed.Locate('Nome.[ loPar tialKey] ). ou a um componente Quer y (e a outr os DataS ets ). Vej a um ex emplo. S obr enomePr oc : = EditS obr enome.B utton1Click(S ender : T Obj ect). o método Locate r etor na T r ue e move o cur s or par a aquele r egis tr o. entr e as pas s imples . S obr enome'. I s s o pode s er feito em tempo de des envolvimento ou em tempo de ex ecução. Locate r etor na Fals e. Há duas opções de pr ocur a dis poníveis par a o método Locate: loPar tialK ey loCas eI ns ens itive Per mite que os valor es de pr ocur a es pecificados no s egundo par âmetr o s ej am par ciais (par te de um nome. com nome " Mar ia" e s obr enome começando com " S " .Locate('Codigo'. O s egundo par âmetr o é um ar r ay es pecial que deve s er cons tr uído com o comando Var Ar r ayOf (par a o cas o de uma pes quis a em mais de um campo).e. ‘Res pos ta’ < > Fals e . if Achou then S howMes s age('Regis tr o encontr ado. Vej a alguns ex emplos de condições : ‘Es tado’ = ‘PE’. //Valor es pr ocur ados Achou: B oolean. [ loPar tialK ey. Agor a vej a um ex emplo que lê os valor es em dois componentes Edit (" EditNome" e " EditS obr enome" ) e localiza o pr imeir o r egis tr o que cas a com es s es valor es . Os filtr os s ão mais s imples e podem s er aplicados dir etamente a um componente T able.'). I s s o pode s er feito us ando uma cons ulta S QL. U s ando F i l t er e F i l t er ed Par a filtr ar um DataS et. var NomePr oc. O ex emplo localiza o pr imeir o r egis tr o da tabela T abClientes . Var Ar r ayOf([ 'Mar ia'.T ex t. ‘Quantidade’ < 100. Achou : = T abF unc. " Mar ia" e " MARI A" s ão cons ider ados iguais . a s intax e de Locate é mais s imples . end. Vej a a s eguir um ex emplo de uma chamada ao método Locate: T abClientes . S obr enome'. mas também bem mais complex as . pr ocedur e T For m1. O ter ceir o par âmetr o es pecifica opções de pr ocur a. ou us ando o evento OnFilter Recor d.T ex t. S e houver algum r egis tr o que cas e com os valor es es pecificados . S e nenhum r egis tr o for encontr ado. Os valor es aqui devem " cas ar " com os campos es pecificados no pr imeir o par âmetr o.

Quando um novo r egis tr o é adicionado. A atualização dos componentes pode s er des abilitada tempor ar iamente us ando o método Dis ableContr ols e depois r eabilitada com EnableContr ols . S omente os r egis tr os par a os quais a condição é ver dadeir a s ão mos tr ados . na par te finally. Af t er Cl os e B ef or eI n s er t . é como s e outr os r egis tr os não ex is tis s em. es s a atualização não é des ej ada como. C ontrolando aatualização de componentes Componentes as s ociados a dados de um banco de dados . es s es métodos s ão us ados em um bloco tr y. Antes e depois de o DataS et entr ar no es tado ds I ns er t. U s ando o event o OnF i l t er R ecor d Us ando o evento OnFilter Recor d. como Open. O ex emplo aumenta. Muitas vezes ..B utton1Click(S ender : T Obj ect).. Antes e depois do DataS et entr ar no es tado ds Edit. Quando os campos calculados do DataS et s ão calculados .00 then Accept: = T r ue.finally par a que os componentes s ej am r eabilitados mes mo s e ocor r er uma ex ceção no pr oces s amento do DataS et. a filtr agem dos r egis tr os é feita imediatamente. Par a cada r egis tr o no DataS et. Us ado ger almente par a definir valor es padr ão par a alguns campos . Af t er P os t B ef or eD el et e. em 8% . Ger almente. end. s ão atualizados automaticamente quando o cur s or é movido de um r egis tr o par a outr o. Clos e. pr ocedur e T For m1. mes mo s e houver ex ceções dur ante o pr oces s amento. deter mina s e o r egis tr o s er á ex ibido (" aceito" ) ou não. O evento OnFilter Recor d r ecebe o par âmetr o booleano Accept cuj o valor . E vent os dos Dat aS et s Os DataS ets ofer ecem vár ios eventos que podem s er us ados par a ver ificar e validar mudanças antes de s e tor nar em per manentes . s e Accept for Fals e. o evento OnFilter Recor d é chamado e o par âmetr o Accept é ver ificado. Af t er E di t B ef or eCan cel . Antes e depois de o DataS et s er fechado.ocor r em : Antes e depois de o DataS et s er aber to. Vej a uma des cr ição br eve de cada um des s es eventos : E s t es even t os . var Accept: B oolean). begin with T abFuncionar ios do begin tr y . Vej a a s eguir um ex emplo que us a es s e dois métodos . I ns er t e Edit. o r egis tr o não é ex ibido (ele é filtr ado). Af t er I n s er t B ef or eE di t . Antes e depois ex plicitamente).. ou faz atualizações em vár ios r egis tr os . Par a a maior ia des s es métodos há dois eventos : um que ocor r e antes de o método s er chamado (pr efix o " B efor e" ). Af t er Can cel B ef or eP os t . Par a componentes que aces s am uma tabela filtr ada. Uma r efer ência ao DataS et que es tá s endo filtr ado também é pas s ada como par âmetr o. Af t er D el et e On N ew R ecor d On Cal cF i el ds .Del phi 5 (‘S alar io’ > 10000) AND (‘S alar io’ < = 50000) (‘Es tado’ = ‘RJ’) OR (‘Es tado’ = ‘S P’) S e o DataS et es tiver aber to (pr opr iedade Active = T r ue). e outr o que ocor r e depois (pr efix o " After " ). B ef or eOpen .. Há eventos as s ociados a todo os métodos mais impor tantes . do comando Cancel s er chamado (implicitamente ou Antes e depois de as mudanças em um DataS et s er em enviados par a o B anco de Dados (comando Pos t). você pode definir filtr os muito mais elabor ados . Antes e depois de um r egis tr o s er apagado. Vej a um ex emplo: pr ocedur e T For m1. S e Accept for T r ue (o valor padr ão) o r egis tr o é ex ibido. mes mo em tempo de des envolvimento. us ando os r ecur s os da linguagem Obj ect Pas cal. Af t er Open B ef or eCl os e. como o DB Gr id e a maior ia dos outr os componentes Data Contr ols . quando o pr ogr ama faz uma pes quis a em uma tabela. por ex emplo. begin if DataS et[ 'Des cr icao'] > = 'M' then if DataS et[ 'Pr eco'] * DataS et[ 'Quantidade'] < 2000.T abPr odutos Filter Recor d(DataS et: T DataS et. no final do código do evento. Os componentes as s ociados ao T able s ão des abilitados antes do pr oces s amento da tabela e s ão r eabilitados no final. o s alár io de todos os funcionár ios cadas tr ados no T able " T abFuncionar ios " .

S e for es pecificado o valor Fals e. Você pode us ar es s e evento par a s incr onizar os dados ex ibidos com os dados de um banco de dados (no cas o em que componentes comuns s ão us ados par a ex ibir dados . P r opr i edades do component e Dat aS our ce O componente DataS our ce é um componente s imples . etc. depois de alter ações no DataS et. E vent os do component e Dat aS our ce Há apenas tr ês eventos par a o componente DataS our ce: E ven t o On D at aCh an ge D es cr i ção Es te evento ocor r e quando o cur s or do DataS et é movido par a outr o r egis tr o. I s s o acontece. On S t at eCh an ge On U pdat eD at a Es te evento ocor r e quando o es tado do DataS et as s ociado ao DataS our ce é alter ado. quando os métodos Fir s t. Uma chamada a Refr es h gar ante que os dados ex ibidos s ão os mais atuais . Há mais um método r elacionado à atualização de componentes : o método Refr es h.Del phi 5 Open.s e que um DataS et no es tado ds Edit pode ter s eus r egis tr os alter ados . por ex emplo). par a que s ej a pos s ível fazer alter ações nele. Nex t ou Pr ior s ão chamados . Vej a uma des cr ição das outr as tr ês : P r opr i edade Au t oE di t D es cr i ção Deter mina s e o DataS et ligado ao DataS our ce entr a no es tado ds Edit automaticamente quando o us uár io clica no componente as s ociado (um DB Gr id. por ex emplo. end.08. T odo DataS et (T able. end. fazendo com que os dados s ej am bus cados novamente no banco de dados . com apenas cinco pr opr iedades . O padr ão par a es s a pr opr iedade é T r ue. Nex t. Quando E nabled = Fals e (des ativado) todos os componentes ligados ao DataS our ce apar ecem vazios (não ex ibem dados ). us ando o método Edit. //Des abilitar atualização while not EOF do begin FieldValues [ 'S alar io'] : = FieldValues [ 'S alar io'] * 1. Quer y. Refr es h é útil quando s ão feitas alter ações no r egis tr o atual por outr o us uár io. D at aS et E n abl ed Contém o nome do DataS et as s ociado ao DataS our ce. por ex emplo). Es s e método for ça a atualização dos componentes . Las t. O evento ocor r e mes mo s e o comando Pos t for chamado implicitamente por outr o comando ou outr o componente. Edit. Ocor r e imediatamente antes de uma atualização no DataS et as s ociado – depois de um comando Pos t. . finally EnableContr ols . por ex emplo. //Habilitar atualização end. end.) deve s er as s ociado a um componente DataS our ce par a que s eus dados pos s am s er ex ibidos em componentes Data Contr ols . o DataS et deve s er colocado no es tado ds Edit ex plicitamente. C omponentes DataC ontrols e Table Usando o componente DataSource O componente DataS our ce funciona como um " canal de comunicação" entr e DataS ets e os componentes DataContr ols . duas das quais (Name e T ag) s ão comuns a todos os componentes do Delphi. Dis ableContr ols . mas antes dos dados s er em r ealmente atualizados . Deter mina s e o DataS our ce es tá ou não ativo (T r ue = ativo). Lembr e.

Uma maneir a par a fazer is s o é atr avés de filtr os . D at abas eN am e Databas eName é o nome do banco de dados que contém a tabela as s ociada. E x cl u s i ve Es ta pr opr iedade é us ada apenas par a tabelas Par adox . por s er o tipo de DataS et mais comum. como vimos no capítulo s obr e DataS ets . s er á per mitido o aces s o à tabela por vár ios us uár ios ao mes mo tempo. no entanto. as tabelas do banco de dados s ão lis tadas automaticamente par a es s a pr opr iedade.s e também es pecificar o dir etór io onde as tabelas do banco de dados es tão localizadas . Há tr ês pr opr iedades do componentes T able que per mitem ver ificar per mis s ões ou contr olar o aces s o às tabelas de um banco de dados . T abl eN am e T ableName é o nome da tabela do banco à qual o componente T able es tá as s ociado.a. o Delphi alter a automaticamente Active par a Fals e. Você pode alter ar a pr opr iedade ReadOnly par a T r ue (o padr ão é Fals e) par a ex ibir os dados em uma tabela s em. O valor de ReadOnly é contr olado pelo aplicativo e não pelo banco de dados . pr incipalmente os que us am S QL. Deter mina s e o us uár io pode vis ualizar e alter ar os dados da tabela. per mitir alter ações do us uár io. Nes te capítulo ver emos mais detalhes s obr e algumas pr opr iedades e métodos j á conhecidos . Outr a maneir a é us ando Ranges . S QL S er ver . como acontece par a a pr opr iedade CanModify. Par a tabelas S QL (Or acle. Es te método tem como ar gumentos duas lis tas de valor es : os valor es iniciais e os valor es finais do Range. etc. dB AS E ou Fox Pr o. é útil r es tr ingir os r egis tr os ex ibidos a apenas um s ubconj unto dos r egis tr os de uma tabela. Vej a aquele capítulo par a um des cr ição pas s o. um r ecur s o ex clus ivo dos componentes T able. S e o valor de Ex clus ive for Fals e. Quando es tas duas pr opr iedades s ão alter adas . S ybas e. es pecialmente quando s e es tá tr abalhando com tabelas ex tens as . O nome es pecificado aqui é ger almente um Alias definido no DataB as e Des ktop. A pr opr iedade Active deve es tar em Fals e par a que s ej a pos s ível alter ar vár ias pr opr iedades da tabela. mes mo antes da ex ecução do aplicativo.a par a T r ue par a que apenas um us uár io de cada vez tenha aces s o à tabela. como as dos bancos Par adox e dB AS E. por tanto j á conhecemos vár ios métodos e pr opr iedades des s e componente. pode. Es ta pr opr iedade pode s er alter ada em tempo de des envolvimento par a que os r egis tr os da tabela s ej am ex ibidos . Alter e. Par a tabelas locais . Os valor es devem s er lis tados na or dem dos campos da tabela e devem s er colocados entr e colchetes ( [ ] ). par a uma tabela cuj o pr imeir o campo é um código de quatr o dígitos : . Na ver dade. A maneir a mais s imples e dir eta par a s e definir um Range é us ando o método S etRange. Vej a um ex emplo do us o de S etRange. Vej a a s eguir uma des cr ição de cada uma des s as pr opr iedades . o componente T able foi o componente us ado na maior ia dos ex emplos do capítulo anter ior . há um contr ole r ígido s obr e a leitur a e a es cr ita dos r egis tr os de uma tabela. Vej a a s eguir uma des cr ição des s as pr opr iedades : P r opr i edade Can Modi f y D es cr i ção Es ta é uma pr opr iedade s omente leitur a que indica s e a tabela as s ociada ao componente T able pode s er alter ada ou não. o campos us ados devem s e index ados . P r opr i edade Act i ve D es cr i ção Active deter mina s e a tabela es tá aber ta ou não.s e us ar quais quer campos par a os Ranges . Você pode ver ificar o valor de CanModify par a s e cer tificar que os dados da tabela podem s er alter ados . Conect ando-s e a uma t abel a de banco de dados No capítulo " T r abalhando com bancos de dados no Delphi: uma vis ão ger al" .Del phi 5 Usando o componente Table Um componente T able contém todas as infor mações de uma tabela de um banco de dados . Par a tabelas Par adox e dB AS E.chave nil par a omitir campos do início da tabela. ou apenas vis ualizar es s es dados . R eadOn l y T r abal hando com R anges Algumas vezes . Us e a palavr a.) pode. Quando a pr opr iedade Databas eName é definida pr imeir o.pas s o s obr e como r ealizar a conex ão com um banco de dados . Cont r ol ando o aces s o a uma t abel a Par a alguns bancos de dados . Vimos anter ior mente que um componente T able é um DataS et. Ver emos também como us ar vár ios r ecur s os que s ão ex clus ivos dos componentes T able. O pr ocedimento par a a conex ão pr ecis a alter ar tr ês pr opr iedades do componente T able. vimos um ex emplo completo onde conectamos uma componente T able a um banco de dados e ex ibimos o s eu conteúdo em um componente DB Gr id. Os Ranges definem um valor inicial e um valor final par a um ou mais campos de uma tabela. inclus ive as pr opr iedades Databas eName e T ableName.

os campos per s is tentes s ão as s ociados aos campos de uma tabela j á ex is tente. Os pr ocedimentos apr es entados a s eguir . Eles fazem par te de um DataS et. s ó podem s er cr iados dentr o de DataS ets . as s uas pr opr iedades . quando o DataS et é aber to e des tr uídos quando o DataS et é fechado. talvez. O comando r es tr inge os r egis tr os da tabela a apenas aqueles com códigos entr e " 0005" e " 0025" . como em: T abPr odutos . um par a cada campo da tabela. I s s o por que eles " per s is tem" dur ante a ex ecução do aplicativo e não s ão des tr uídos cada vez que o DataS et é fechado (como acontece com os campos dinâmicos ). Par a que s e tenha mais contr ole s obr e os campos de um DataS et. Na maior ia das vezes . ou campos per s is tentes . Par a cr iar campos per s is tentes par a um componente T able. Es s es dois tipos de campos s ão. Os campos definidos pelos componentes T Field s ão também chamados de campos per s is tentes . Uma j anela com todos os campos da tabela é ex ibida: . Você pode também cr iar campos calculados e campos lookup. Você pode também us ar o comando Add all Fields par a cr iar campos per s is tentes par a todos os campos do DataS et. no entanto. o Delphi ofer ece os componentes T Field. Os campos dinâmicos s ão cr iados na memór ia do computador . como o componente Quer y. valem também par a outr os tipos de DataS ets . o Delphi cr ia automaticamente campos dinâmicos .Del phi 5 T abPr odutos . o pas s o 3 não é neces s ár io). par a ex ibir o Fields Editor (vej a ilus tr ação a s eguir ). C omponentes TField Quando você as s ocia um DataS et a uma tabela de um banco de dados e abr e o DataS et. [ '0025'] ). a pr incipal r azão par a a ex is tência dos componentes T Field. Cr i ando campos per s i s t ent es Os componentes T Field. por ex emplo.lo. por tanto o DataS et deve es tar ligado a um banco de dados antes da cr iação dos campos . us ar emos es s e componentes como bas e par a os ex emplos do r es tante des s a s eção. O F iel ds E di t or É a par tir do Fields Editor que s ão feitas todas as oper ações com campos per s is tentes . ou podem s er novos campos . e a or dem em que eles s ão ex ibidos dependem s omente das tabelas às quais es s es campos es tão as s ociados . O tipo dos campos dinâmicos . Os componentes T Field não podem s er adicionados dir etamente a um for mulár io. Como os DataS ets mais us ados s ão os componentes T able. tempor ar iamente. r apidamente (nes te cas o.CancelRange.S etRange([ '0005'] . us e o método CancelRange. Com os componentes T Field. o tipo e a for matação de cada campo e vár ias outr as pr opr iedades . der ivados de cons ultas ou cálculos . clique duas vezes no componente T able. Par a cancelar um Range depois de us á. você pode contr olar quais campos s ão ex ibidos . Componentes T Field podem es tar as s ociados a um campo de um DataS et. Clique com o botão dir eito dentr o do Fields Editor e es colha o comando Add Fields .

S e. Vej a as declar ações ger adas par a o ex emplo anter ior (des tacadas em negr ito). ou adicionar novos campos us ando o comando Add Fields novamente.. end. unit Unit1. Não pode haver campos dinâmicos e per s is tentes em um mes mo DataS et. type T For m1 = clas s (T For m) T abEmp: T T able. T i pos de campos per s i s t ent es Quando você cr ia campos per s is tentes par a um DataS et. . T abEmpEmpNo: T I nteger Field.Del phi 5 T odos os campos s ão inicialmente s elecionados . você cr iar apenas alguns campos per s is tentes (e não todos os dis poníveis ). Es s a or dem pode s er alter ada ar r as tando os nomes dos campos dentr o do Fields Editor . declar ações par a cada componente T Field as s ociado.s e também apagar campos us ando DELET E. ao código da Unit que contém o DataS et. T abEmpLas tName: T S tr ingField. T abEmpPhoneE x t: T S tr ingField. T abEmpFir s tName: T S tr ingField. . . o Delphi adiciona. Clique em um campo par a s elecionar s omente ele e us e CT RL ou S HI FT par a s elecionar vár ios campos . T abEmpHir eDate: T DateT imeField.. s omente es s es campos s er ão mos tr ados nos componentes ligados ao DataS et. Pode. agor a com os novos campos cr iados : Os campos cr iados des s a maneir a s ubs tituem os campos dinâmicos cr iados pelo Delphi. T abEmpS alar y: T FloatField. Depois clique em OK par a cr iar um campo per s is tente par a cada campo s elecionado.. por ex emplo. A or dem em que os campos ex ibidos nos componentes ligados ao DataS et é a or dem em que eles s ão lis tados no Fields Editor . O Fields Editor é ex ibido novamente..

um campo do tipo " Alpha" ger a um componente do tipo T S tr ingField. Par a cr iar um campo calculado par a um DataS et.Del phi 5 T I n t eger F i el d . Númer os r eais . e as s im por diante. por padr ão. Compatível com o tipo T DateT ime Númer os r eais . S tr ings pequenos (limitados a 8192 bytes ). mas eles s ão apenas us ados par a pr ogr amação avançada. Datas e hor as . C ampos calculados Os campos calculados ex ibem valor es que s ão calculados dur ante a ex ecução do aplicativo. que não apar ecem dir etamente nos for mulár ios . dependendo dos campos as s ociados no banco de dados . Depois clique em OK par a cr iar o campo. (Clique duas vezes no DataS et. clique com o botão dir eito e es colha o comando New Field. Há vár ios outr os componentes des s e tipo no Delphi. o nome na ár ea " Component" é atualizado automaticamente. por ex emplo). Es te é o nome pelo qual o componente s er á identificado no Fields Editor . Compatível com tipo T T ime. Eles pos s uem pr opr iedades e eventos como os outr os componentes . Hor as . T D at eT i m eF i el d e T F l oat F i el d s ão tipos de componentes T F i el d . Enquanto o nome é digitado. Por ex emplo. Es s es tipos s ão definidos automaticamente pelo Delphi. onde s e pode definir vár ias opções par a o novo campo (vej a ilus tr ação a s eguir ). Es te nome é. Real e Double. Vej a uma lis ta dos tipos mais impor tantes de componentes T Field: T ipo de T Field T booleanField T blobField T cur r encyField T DateField T DateT imeField T FloatField T I nteger Field T MemoField T s tr ingField T T imeField Valor es que podem s er ar mazenados Valor es booleanos (T r ue ou Fals e) Dados binár ios (figur as .) Dentr o do Fields Editor . I s s o algumas vezes as s us ta o pr ogr amador iniciante. que es tá acos tumado a tr abalhar vis ualmente com os componentes . o nome do DataS et que contém o campo. ger a um componente do tipo T I nteger Field. O tipo deve s er compatível com os valor es us ados par a o cálculo do campo. um campo do tipo " I nteger " em uma tabela Par adox . Datas . Compatível com tipo S tr ing. O Delphi ex ibe a caix a de diálogo New Field. A difer ença é que eles s ão componentes inter nos . Númer os inteir os . Compatível com tipos Float. mas podem também s er completamente independentes (o que é r ar o). abr a o Fields Editor par a o DataS et. . Defina um tipo par a o campo. T ex tos longos . Compatível com tipo I nteger . T S t r i n gF i el d . Compatível com tipo T Date. Compatível com tipo Cur r ency. s eguido pelo nome definido na ár ea " Name" . Digite um nome par a o campo na ár ea " Name" . Os componentes T Field (de vár ios tipos ) podem s er manipulados dir etamente no código. Os cálculos s ão ger almente bas eados em valor es de outr os campos .

Par a cr iar um campo lookup em um DataS et. Es s e código deve calcular um valor par a o campo. end. com campos par a o código do pr oduto. Es colha um campo da lis ta ou digite dir etamente o nome do campo. T abEmpHir eDate: T DateT imeField. ' + DataS et[ ‘B air r o’] . No ex emplo a s eguir . clique com o botão dir eito e es colha o comando New Field. é o r ealizado o cálculo de dois campos calculados e uma tabela de funcionár ios (chamada " T abFunc" ): um par a o s alár io anual e outr o par a o ender eço completo.vír gula. us ados par a localizar automaticamente valor es em um s egundo DataS et. As s im que é cr iado. Par a us ar mais de um campo chave.T abFuncCalcFields (DataS et: T DataS et). e outr a tabela Pedidos . Nes s e cas o. begin DataS et[ 'NomeCompleto'] : = DataS et[ 'Fir s tName'] + DataS et[ 'Las tName'] . clique duas vezes no DataS et par a ex ibir o Fields Editor . Ger almente é us ado apenas um campo aqui..Del phi 5 O Delphi adiciona o nome do campo à lis ta de campos no Editor de Código e acr es centa uma linha à Unit do for mulár io. T abEmpNomeCompleto: T S tr ingField. Par a r ealizar os cálculos neces s ár ios par a o campo. T abEmpPhoneE x t: T S tr ingField. pr ocedur e T For m1. Os campos chave que s er ão us ados como bas e par a r ealizar a bus ca. C ampos lookup Os campos lookup s ão campos es peciais . Os campos do DataS et que s er ão compar ados com os campos es pecificados em K ey Fields . ' + DataS et[ ‘Numer o’] + '. T abEmpS alar y: T FloatField. O valor de todos os campos calculados deve s er calculado s empr e dentr o do código par a evento OnCalcFields do DataS et. pr ocedur e T For m1. você poder ia definir um campo lookup na tabela Pedidos par a mos tr ar a des cr ição do pr oduto. você deve digitar código par a o evento OnCalcFields do DataS et que contém o campo. bas eando. Es tes L ooku p K eys . declar ando um componente par a o novo campo. digite um nome par a o novo campo em " Name" e defina um tipo par a o campo em " T ype" . Por ex emplo. Vej a um ex emplo que " calcula" o nome completo de cada funcionár io (concatenando o pr imeir o e último nomes ). es colha " Lookup" Em " Lookup definition" . begin DataS et[ ‘S alar ioAnual’] : = DataS et[ ‘S alar ioMens al’] * 12.s e no código do pr oduto. . DataS et[ ‘EndCompleto’] : = DataS et[ ‘Rua’] + '. s epar e os nomes dos campos com ponto. Par a " Field T ype" . Dentr o do Fields Editor . O ex emplo de código a s eguir mos tr a (em negr ito) a linha acr es centada. O campo lookup bus car ia a des cr ição na tabela Pr odutos e a mos tr ar ia na tabela Pedidos (o código do pr oduto poder ia até s er es condido). T abEmpLas tName: T S tr ingField. um campo calculado contém apenas valor es nulos .T abEmpCalcFields (DataS et: T DataS et). Você pode definir vár ios campos calculados par a um DataS et. type T For m1 = clas s (T For m) T abEmp: T T able. bas eando. defina valor es par a as opções des cr itas a s eguir : Opção D at as et K ey F iel ds D es cr i ção O DataS et de onde s er ão bus cados os valor es par a o campo lookup. ...chave" de um pr imeir o DataS et. T abEmpFir s tName: T S tr ingField. e a quantidade e a data do pedido. na hor a da cr iação do campo. Note que o nome do componente é o nome que o Delphi define em " Component" . Es tes s ão campos do DataS et que contém o campo lookup. T abEmpEmpNo: T I nteger Field..e.s e em " valor es . end. s uponha que o s eu aplicativo us e uma tabela Pr odutos com campos par a o código e a des cr ição de cada pr oduto. end.

. Es s a é pr opr iedade é muito útil quando s e us a campos calculados em uma tabela. N OT A: Em um componente DB Gr id. R equ i r ed O valor de Requir ed é definido automaticamente pelo Delphi quando um campo é cr iado. O valor padr ão é T r ue. r etor nando a des cr ição do pr oduto. O campo lookup " cas a" o campo CodPr oduto da tabela Pedidos com o campo Codigo da tabela Pr odutos . Outr as s ão tr atadas no cur s o avançado. mos tr ando apenas os campos com os r es ultados . Você pode alter ar ReadOnly par a T r ue par a pr oteger um campo contr a alter ações . Vej a as pr opr iedades mais úteis dos campos T Field na tabela a s eguir : P r opr i edade Al i gn m en t D ef au l t E x pr es s i on D es cr i ção Deter mina o alinhamento do valor ex ibido no campo. por ex emplo. Muitas delas s ão definidas automaticamente quando um campo é cr iado e r ar amente pr ecis am s er alter adas .s e no s eu código. Alter e es s a pr opr iedade par a Fals e par a es conder o campo em um DB Gr id. Faça Requir ed = T r ue par a pr oibir valor es nulos par a um campo. O valor des s e campo é o valor ex ibido no campo lookup. O título mos tr ado par a o campo em componentes como o DB Gr id. O valor deve s er es pecificado entr e as pas s imples . A ilus tr ação abaix o mos tr a a definição de um campo lookup que ex ibe a des cr ição de um pr oduto.Del phi 5 campos per tencem ao DataS et que contém os valor es a s er em bus cados pelo campo lookup. bas eando. P r opr i edades dos component es T F i el d Uma das maior es vantagens dos componentes T Field (campos per s is tentes ) s obr e os campos dinâmicos (cr iados automaticamente pelo Delphi) é o fato de que você pode alter ar as pr opr iedades dos campos T Field. R es u l t F i el d O campo a s er r etor nado pela bus ca. a não s er que s ej a for mado apenas por dígitos . Defina aqui um valor padr ão par a o campo. mes mo s e o campo cor r es pondente no banco de dados não es tiver pr otegido. ReadOnly é definido de acor do com o campo da tabela de banco de dados as s ociado a ele. D i s pl ayL abel R eadOn l y Vi s i bl e Há vár ias outr as pr opr iedades impor tantes que não for am citadas aqui. mas que não s e r efir a a nomes de campos . O valor pode s er qualquer ex pr es s ão válida em S QL. Você pode es conder os campos que for am us ados par a os cálculos . Es s a pr opr iedade deter mina s e o campo pode ou não s er nulo. Quando um campo é cr iado. pr es s ionar T AB pula os campos que têm a pr opr iedade ReadOnly = T r ue. Deter mina s e o campo pode ou não s er alter ado.

Regis tr os que não cas am não s ão tr ans fer idos (note a difer ença de batAppendUpdate).s e copiar tabelas inteir as . de onde s er ão ex tr aídos os dados . Já o campo Quant na tabela de des tino cor r es ponde ao campo Quantidade na tabela de or igem.Ex ecute. atualizar . Apaga os r egis tr os da tabela de des tino que " cas am" com os da tabela de or igem. S QL S er ver . A tabela de des tino deve ex is tir . Pode. ou par tes de tabelas . Par a cada linha. Confi gur ação bás i ca Par a r ealizar uma tr ans fer ência de dados com o componente B atchMove. Um dos us os mais comuns do componente B atchMove é par a mover tabelas . no entanto. par a cr iar uma tabela for mada por r egis tr os de outr a tabela que s atis façam um condição es pecificada. us e o método Ex ecute do componente B atchMove. ela é s ubs tituída. Com es s e componente. Vej a os valor es que es s a pr opr iedade pode as s umir . O nome da tabela de or igem. O " cas amento" é feito bas eado nos índices (ger almente as chaves pr imár ias ) das tabelas . us ando modos de oper ação difer entes . Val or de Mode B at Appen d bat Appen dU pdat e E f ei t o n a t r an s f er ên ci a Adiciona os r egis tr os da tabela de or igem no final de tabela de des tino. Define o mapeamento entr e os campos da tabela de or igem e de des tino. como em: B atchMove1.Del phi 5 Ocomponente Batchmove O componente B atchMove é us ado par a r ealizar tr ans fer ências de gr andes quantidades de dados de uma tabela de banco de dados par a outr a.s e fazer is s o. Regis tr os que não cas am s ão adicionados ao final da tabela de des tino.) A conver s ão dos valor es . Modos de oper ação A tr ans fer ência de dados com um componente B atchMove pode s er r ealizada de vár ias maneir as . etc. s imples mente digite o nome em comum. S e os nomes for em difer entes . O mes mo acontece com os campos Valor e Pr eco. você deve definir quais s ão as tabelas de or igem e de des tino e o mapeamento que s er á feito entr e os campos de cada tabela. ou cr iar novas tabelas com uma única linha de código (ou até em tempo de des envolvimento). A pr opr iedade Mode do componente B atchMove define qual a oper ação r ealizada. par a um banco de dados S QL r emoto (como Or acle. como Par adox . S e as duas tabelas têm campos com nomes iguais . pode. us e: Campo da tabela de des tino = Campo da tabela de or igem Aqui os campos Codigo e Des cr icao têm os mes mos nomes nas duas tabelas . As tabelas devem conter um índice par a per mitir o " cas amento" . Vej a uma des cr ição das pr opr iedades que pr ecis am s er alter adas : P r opr i edade D es t i n at i on S ou r ce Mappi n gs D es cr i ção O nome da tabela de des tino. por ex emplo. Pode. (Es ta é a opção padr ão). tipos e es tr utur a das tabelas é r ealizada automaticamente pelo componente. você deve indicar aqui quais s ão os campos cor r es pondentes em cada tabela. todos os r egis tr os s ão tr ans fer idos . As duas tabelas envolvidas devem ex is tir . . Em tempo de ex ecução. S ubs titui os r egis tr os da tabela de des tino pelos que " cas am" com os r egis tr os da tabela de or igem. de um banco de dados local. R ecor dCou n t O númer o de r egis tr os que s er ão tr ans fer idos de uma tabela par a outr a. Outr a utilidade do componente B atchMove é copiar dados entr e uma tabela e outr a de um mes mo banco de dados . S e j á ex is tir um tabela com o mes mo nome. copiar . S e Recor dCount for zer o. Cr ia uma nova tabela com a mes ma es tr utur a e dados da tabela de or igem. Clique duas vezes na ár ea do valor de Mappings e digite uma linha par a cada par de campos a s er em " cas ados " .s e cr iar acr es centar . Par a campos com o mes mo nome. ou apagar dados . par a onde s er ão tr ans fer idos os dados . não é neces s ár io alter ar es s a pr opr iedade. bat Copy bat D el et e bat U pdat e E x ecut ando a oper ação de t r ans fer ênci a A tr ans fer ência de dados com um componente B atchMove pode s er r ealizada em tempo de des envolvimento ou em tempo de ex ecução. S ubs titui os r egis tr os da tabela de des tino pelos que " cas am" com os da tabela de or igem.

pr ocedur e T For m1. O nome da tabela onde s er ão ar mazenados todos os r egis tr os que não puder am s er tr ans fer idos por caus a de violações de chave ou de integr idade. T r ês tabelas (do tipo Par adox ) podem s er cr iadas . devido à conver s ão dos tipos de cada campo. mas lembr e. Deix e es s a pr opr iedade vazia par a não cr iar es s a tabela. A tabela é cr iada automaticamente pelo Delphi. Retor na o númer o de r egis tr os na tabela es pecificada em K eyViolT ableName. Deix e es s a pr opr iedade vazia par a não cr iar es s a tabela. pr incipalmente quando a quantidade de dados a s er tr ans fer ida é gr ande.B utton1Click(S ender : T Obj ect). end. T abPr odutos Novos . T abPr odutos Novos .Del phi 5 Em tempo de des envolvimento. O nome da tabela onde s er ão ar mazenados todos os r egis tr os que tiver am campos cor tados na tr ans fer ência. ou quando há muitas difer enças entr e as tabelas de or igem e de des tino. Des tination: = T abPr odutos Novos . As tr ês tabelas contêm (r es pectivamente): • Regis tr os alter ados dur ante a tr ans fer ência. A tabela é cr iada automaticamente pelo Delphi.Open. ou a campos com do mes mo tipo. begin T abPr odutos . clique no componente B atchMove com o botão dir eito e es colha o comando Ex ecute. T abPr odutos . A cr iação e a manipulação des s as tabelas é contr olada pelas s eguintes pr opr iedades do componente B atchMove: P r opr i edade Ch an gedT abl eN am e D es cr i ção O nome da tabela que conter á todos os r egis tr os alter ados na tr ans fer ência. quando o campo de des tino é menor que o campo de or igem (o valor or iginal não cabe). Regis tr os que tiver am campos cor tados . Mode: = batAppendUpdate. Vár ias pr opr iedades do componente B atchMove s ão definidas dir etamente no ex emplo. with B atchMove1 do begin S our ce: = T abPr odutos . (Aces s ível s omente atr avés de pr ogr amação) Retor na o númer o de r egis tr os na tabela es pecificada em Pr oblemT ableName. Ex ecute. Um campo é cor tado. Ch an gedCou n t K eyVi ol T abl eN am e K eyVi ol Cou n t P r obl em T abl eN am e P r obl em Cou n t . A tabela é cr iada automaticamente pelo Delphi. Deix e es s a pr opr iedade vazia.Clos e.s e que todas es s as pr opr iedades poder iam também s er definidas em tempo de des envolvimento (vej a a tabela de pr opr iedades na página anter ior ). O componente B atchMove pode cr iar novas tabelas dur ante a tr ans fer ência. par a per mitir um contr ole maior s obr e os r egis tr os que for am tr ans fer idos e s obr e os r egis tr os que caus ar am pr oblemas . Vej a um ex emplo s imples que us a um componente B atchMove par a tr ans fer ir todos os r egis tr os de uma tabela chamada Pr odutos par a outr a chamada Pr odutos Novos .Clos e. par a evitar que a tabela s ej a cr iada (Aces s ível s omente atr avés de pr ogr amação). devido a violações de chave ou r es tr ições de integr idade. end. L i dando com er r os na t r ans fer ênci a Uma oper ação de tr ans fer ência de dados entr e tabelas pode caus ar muitos er r os . mas com tamanhos difer entes . Er r os que podem ocor r er s ão violações de chave (quando um r egis tr o adicionado contém a mes ma chave que um r egis tr o ex is tente) e er r os de conver s ão (os tipos dos campos não s ão compatíveis ). (Aces s ível s omente atr avés de pr ogr amação) Retor na o númer o de r egis tr os na tabela es pecificada em ChangedT ableName. faça o s eguinte.Open. • • Regis tr os que não puder am s er tr ans fer idos .

Muitas das tar efas neces s ár ias par a a leitur a e a manipulação de dados s ão r ealizadas automaticamente por es s es componentes . Muitos eventos e métodos também s ão os mes mos . Por is s o. nem com pr ogr amação. Não há como alter ar o que é ex ibido no componente DB T ex t dir etamente. Na ver dade. por ex emplo. par a que pos s a ter aces s o ao banco. par a definir um valor inicial a s er ex ibido. A pr opr iedade DataField indica o campo ao qual o componente es tá as s ociado. per mitem aces s ar e alter ar dados em um banco de dados dir etamente. Vej a os capítulos s obr e os componentes comuns par a mais detalhes s obr e as outr as pr opr iedades e eventos . Algumas vezes . Outr as pr opr iedades e r ecur s os comuns . e o componente DB T ex t cor r es ponde ao componente Label. A pr opr iedade T ex t. Es s e componente é us ado par a ex ibir valor es que não devem (nem podem) s er alter ados . Já vimos uma intr odução br eve s obr e es s es componentes e j á us amos um deles nos ex emplos anter ior es : o componente DB Gr id. da paleta de componentes do Delphi. Como o valor ex ibido nes s e componente vem de um campo. (O componente não apr es enta a pr opr iedade Caption). como o componente DB Gr id. Alter e ReadOnly par a T r ue par a não per mitir alter ações . como aquelas que deter minam a cor . C omponente DBEdit O componente DB Edit é a ver s ão com aces s o a banco de dados do componente Edit. O númer o máx imo de car acter es que pode s er digitado dentr o do DB Edit. C omponente DBM emo Es te componente é s emelhante ao componente Memo. Nes te capítulo. como os us ados par a códigos . T odos os componentes Data Contr ols têm a capacidade de ex ibir e alter ar dados de um banco de dados . Vej a algumas pr opr iedades impor tantes des s e componente. o alinhamento. como os ar mazenados em campos do tipo " MEMO" dos bancos de dados . e os que aces s am r egis tr os inteir os de um DataS et. es s es componentes não apr es entam a pr opr iedade DataField (eles não es tão as s ociados a um campo es pecífico). Os componentes que aces s am os dados de um DataS et campo a campo têm duas pr opr iedades impor tantes em comum: DataS our ce e DataField. Nas s eções a s eguir . como os outr os componentes Data Contr ols . P r opr i edades Dat aS our ce e Dat aF i el d Há dois tipos bás icos de componentes Data Contr ols : os que aces s am campos de uma DataS et. não é pos s ível alter ar a pr opr iedade T ex t em tempo de des envolvimento. Os componentes DB Gr id e DB Navigator aces s am dados r egis tr o por r egis tr o. Us e es te componente par a indicar que os campos s ão apenas par a ex ibição. Deter mina s e o valor ex ibido pode ou não s er alter ado pelo us uár io. ver emos detalhes s obr e como funcionam e como us ar os mais impor tantes componentes Data Contr ols . R eadOn l y Max L en gt h C omponente DBText O componente DB T ex t cor r es ponde ao componente Label. etc. as dimens ões . s em a neces s idade de manipular dados dir etamente com pr ogr amação. Há algumas novas pr opr iedades inter es s antes : . Ele é us ado par a ex ibir tr echos longos de tex to. Você pode us á. P r opr i edade T ex t D es cr i ção (Aces s ível s omente atr avés de pr ogr amação). Es te é um dos campos do DataS et conectado ao DataS our ce. um aplicativo inteir o com aces s o a bancos de dados pode s er des envolvido us ando componentes Data Contr ols . como os componentes DB Edit e DB T ex t. vár ios dos componentes Data Contr ols s ão apenas ver s ões com aces s o a bancos de dados dos componentes da página S tandar d. Quando o valor de T ex t é alter ado. Por ex emplo. A pr opr iedade DataS our ce deter mina o DataS our ce ao qual o componente es tá conectado. e não campo por campo. o componente DB Edit cor r es ponde ao componente Edit.lo par a ex ibir ou alter ar o valor de um campo de um banco de dados dir etamente. a maior ia das pr opr iedades des s es componentes s ão as mes mas . pode s er lida e alter ada em tempo de ex ecução. O que é ex ibido no componente depende ex clus ivamente do campo as s ociado no banco de dados .Del phi 5 C omponentes DataC ontrols Os componentes da página Data Contr ols . ver emos apenas as pr opr iedades e eventos r elevantes par a o tr abalho com bancos de dados (além de algumas outr as pr opr iedades es s enciais ). o campo as s ociado no banco de dados é alter ado também. definido pelas pr opr iedades DataS our ce e DataField. Por tanto. entr etanto. Us e es s a pr opr iedade par a tr abalhar com campos de tamanho fix o. A maior ia dos componentes Data Contr ols têm componentes cor r es pondentes na página S tandar d da paleta de componentes . Es te DataS our ce deve es tar conectado a um componente T able ou Quer y (um DataS et).

o tex to s ó s er á ex ibido quando o us uár io clicar duas vezes no componente. quando o us uár io pas s a de um r egis tr o par a outr o. pode. Os valor es es pecificados s ão os valor es que s ão lidos ou es cr itos no campo as s ociado. nem um valor das pr opr iedades ValueChecked ou ValueUnchecked. Es s e componente é ger almente ligado a um campo do tipo booleano. etc. nem Fals e. um valor T r ue mar ca. ValueUnchecked N OT A: s e o valor do campo as s ociado ao DB CheckB ox não for nem T r ue. Us ado par a identificar o gr upo de opções . S e o campo as s ociado for um campo booleano.s e es pecificar um único valor . e um valor Fals e des mar ca o DB CheckB ox . C omponente DBRadioG roup Es s e componente é s emelhante ao componente RadioGr oup. Clique duas vezes ao lado des s a pr opr iedade par a definir a lis ta de itens – digite um item par a cada linha. T r ue" . Os itens ex ibidos ao lado de cada RadioB utton. es pecialmente quando os tex tos a s er em ex ibidos s ão muito ex tens os O valor padr ão é T r ue. R eadOn l y C omponente DBC heckBox O componente DB CheckB ox é uma ver s ão es pecial. Ele é us ado par a lis tar opções que s ão mutuamente ex clus ivas (s omente uma pode s er es colhida). Ver dadeir o. ou uma lis ta de valor es s epar ados por ponto. S e Values for deix ada vazia vazia. como " S im. I s s o acontece mes mo s e os valor es T r ue e Fals e não for em es pecificados nas pr opr iedades ValueChecked e ValueUnchecked. o componente DB CheckB ox apar ece mar cado. ou uma lis ta de valor es . Fals o" . Val u es Val u e C omponente DBImage Es te componente é us ado par a ex ibir imagens ar mazenadas em campos do do tipo B LOB (B inar y Lar ge OB j ect). com aces s o a bancos de dados . O valor cor r es pondente ao RadioB utton que es tá s elecionado. Como par a a pr opr iedade anter ior . O índice é um númer o inteir o. o componente apar ece acinzentado (nem mar cado. P r opr i edade Capt i on I t em s I t em I n dex D es cr i ção O tex to que apar ece na par te de cima do DB RadioGr oup.Del phi 5 P r opr i edade Au t oD i s pl ay D es cr i ção Define s e o tex to do campo as s ociado é ex ibido imediatamente ou não. Pode. mas também pode s er ligado a outr os tipos de campos com dois valor es pos s íveis .s e es pecificar um único valor . os valor es lidos e ar mazenados s ão os es pecificados na pr opr iedade I tems (os mes mos que apar ecem na tela). que faz com o que tex to s ej a ex ibido automaticamente. S e AutoDis play for Fals e. A or dem dos valor es deter mina a as s ociação com os itens es pecificados na pr opr iedade I tems . (Apenas dis ponível atr avés de pr ogr amação). Vej a as pr opr iedades mais impor tantes do componente DB I mage: . nem des mar cado). Retor na o índice do RadioB utton que es tá s elecionado no momento. do componente CheckB ox . Os valor es as s ociados aos es tados do DB CheckB ox s ão definidos pelas pr opr iedades ValueChecked e ValueUnchecked: P r opr i edade ValueChecked D es cr i ção Os valor es que cor r es pondem ao DB CheckB ox quando ele es tá mar cado. Clique duas vezes ao lado da pr opr iedade par a definir a lis ta de valor es . como " S im/Não" . (Apenas dis ponível atr avés de pr ogr amação). Deter mina s e o tex to ex ibido no componente pode s er alter ado ou não pelo us uár io. Os valor es as s ociados aos itens ex ibidos . Uma car acter ís tica inter es s ante des s e componente é que o título ex ibido ao lado dos RadioB uttons não pr ecis a s er o mes mo valor que é lido ou ar mazenado no campo as s ociado. Os valor es que cor r es pondem ao DB CheckB ox quando ele es tá des mar cado. I s s o tor na o aplicativo mais r ápido. S e o valor do campo as s ociado for um dos valor es es pecificados na lis ta. A pr opr iedade I tems define os títulos que s ão ex ibidos e Values define os valor es as s ociados a cada título. como por ex emplo: " Não. Fals e. " Ligado/Des ligado" . Z er o cor r es ponde ao pr imeir o RadioB utton.evír gulas .

Nes s e cas o. r es pectivamente. Deter mina o compor tamento e a apar ência do componente DB ComboB ox . B or der S t yl e Cen t er Qu i ckD r aw S t r et ch C omponentes DBListBox e DcomboBox Os componentes DB Lis tB ox e DB ComboB ox s ão as ver s ões com aces s o a bancos de dados dos componente Lis tB ox e ComboB ox .los a campos de dois DataS ets difer entes . a imagem é ex ibida centr alizada no componente. es colha o campo que s er á alter ado. s ão ger almente ligados a campos comuns . no capítulo " Componentes Vis uais Comuns " . A pr opr iedade I tems é do tipo T S tr ings . Finalmente. alter ando a pr opr iedade I tems . Os valor es lis tados nes s es componentes devem s er adicionados dir etamente. s e S tr etch for Fals e. O compor tamento dos componentes DB LookupLis t e DB LookupCombo é par ecido com o dos campos lookup. S e Center for T r ue (o padr ão). ex ibindo os r es ultados . Os dados des s e DataS our ce s ão os dados que s er ão alter ados pelo componente. o tamanho da imagem não é alter ado. Deter mina s e a imagem s er á ou não " es ticada" par a pr eencher todo o es paço do componente DB I mage. bs S ingle ex ibe uma linha fina. é neces s ár io ligá. s em a neces s idade de us ar campos lookup pr edefinidos . em tempo de des envolvimento. Um componente DB LookupLis t ou DB LookupCombo pode s er ligado a um campo lookup. no entanto. de acor do com o valor do campo es pecificado em DataField. mas com per da de velocidade. (S omente par a o componente DB ComboB ox ). I s s o ter mina a configur ação. aos componentes DB Lis tB ox e DB ComboB ox . a imagem s ó é atualizada (r ecar r egada) quando o us uár io clicar duas vezes no componente DB I mage. Es s es itens podem s er adicionados manualmente. mas com per da de qualidade. . As opções s ão idênticas às do componente ComboB ox – elas s ão des cr itas em detalhe não s eção s obr e es te componente. S e Center for Fals e. O valor bs None não mos tr a um linha. S e S tr etch for T r ue. P r opr i edade I t em s D es cr i ção I tems deter mina os itens ex ibidos . Os componentes DB LookupLis t e DB LookupCombo. Par a is s o. na pr opr iedade DataS our ce. Os dois componentes tr abalham com dois DataS ets e não um como acontece com a maior ia dos outr os componentes Data Contr ols . mas ofer ecem vár ios r ecur s os a mais . I s s o s ignifica que você pode us ar os métodos Add e Append par a adicionar itens . Par a configur ar componentes DB LookupLis t ou DB LookupCombo. Na pr opr iedade Lis tS our ce defina o DataS et de onde s er ão lidos os valor es . S e AutoDis play for Fals e. Alter e QuickDr aw par a Fals e par a obter uma maior qualidade de ex ibição. S t yl e C omponentes DBLookupList e DBLookupC ombo Es tes dois componentes s ão s emelhantes . ou em tempo de ex ecução. e Delete par a apagar itens (vej a detalhes s obr e o tipo T S tr ings na s eção s obr e o componente Memo. Quando os DataS ets s ão ativados . es colha o DataS our ce a s er dir etamente ligado ao componente. Eles têm a capacidade de fazer a bus ca dos valor es automaticamente.Del phi 5 P r opr i edade Au t oD i s pl ay D es cr i ção S e AutoDis play for T r ue (o valor padr ão). o valor do campo DataField (do pr imeir o DataS et) é lido e compar ado com os valor es no campo K eyField (do s egundo DataS et). Alter e QuickDr aw par a T r ue par a que imagens com 256 cor es ou mais s ej am ex ibidas mais r apidamente. Os valor es lidos a par tir do campo definido em Lis tField s ão os valor es ex ibidos no componente. Na pr opr iedade DataField. a imagem é ex ibida no canto es quer do s uper ior do componente. O componente " r econhece" que o campo é o do tipo lookup é r ealiza as bus cas automaticamente. B or der S tyle deter mina s e é ex ibida uma linha em volta da imagem. por ex emplo). na s ua apar ência. Eles " cas am" dois campos es pecificados em DataS ets difer entes e ex ibem um valor r es ultante. Os valor es não s ão tr azidos do campo as s ociado no banco de dados (is s o não s er ia pr ático par a tabelas com centenas ou milhar es de valor es difer entes . a imagem é atualizada automaticamente quando o campo as s ociado é alter ado. bas ta definir as pr opr iedades DataS our ce e DataField apr opr iadamente. alter e a pr opr iedade K eyField par a o campo que s er á compar ado com o campo definido em DataField. O valor r etor nado é o valor do campo Lis tField (do s egundo DataS et). Na pr opr iedade Lis tField defina o campo de onde os valor es s er ão lidos . que vimos no capítulo s obr e componentes T Field. a imagem é es ticada (o que ger almente caus a dis tor ções e per da de qualidade). par a as s ociar o campo lookup ao componente.

O DB Navigator é apenas uma maneir a s imples e r ápida de ofer ecer r ecur s os par a a navegação e alter ação de um DataS et par a o us uár io. s em a neces s idade de pr ogr amação. Com elas . Cada botão ex ecuta um dos métodos do DataS et. É mos tr ada uma s ubpr opr iedade par a cada botão que pode s er ex ibido (vej a a figur a ao lado). Alter e Hint par a definir as " dicas " que apar ecem par a cada botão no DB Navigator . S h ow H i n t Vi s i bl eB u t t on s . Las t. como navegação.Del phi 5 C omponente DBNavigator O componente DB Navigator per mite r ealizar uma s er ie de oper ações comuns em r egis tr os de um DataS et. ou não. us ando es s es métodos dir etamente. Pr ior . etc. Par a definir os botões a s er em ex ibidos . Edit. uma caix a de confir mação é ex ibida quando o botão " Delete" é clicado. e contr olar a apar ência de " Dicas " par a cada botão (Hints e S howhint). mas o aces s o é feito r egis tr o por r egis tr o e não campo por campo. você pode es colher quais os botões s ão ex ibidos no componente (Vis ibleB uttons ). ins er ção e deleção. S e Hints for deix ada vazia e S howHint for T r ue. O componente DB Navigator é compos to de um conj unto de botões . Um componente DB Navigator é ligado a um DataS et atr avés de um componente DataS our ce (como os outr os componentes Data Contr ols ). Es pecifique aqui quais botões do DB Navigator você des ej a ex ibir . pois na maior ia das vezes o DB Navigator ofer ece mais botões do que é neces s ár io. S e Flat for T r ue. alter e a pr opr iedade cor r es pondente par a Fals e. Nex t. o efeito tr idimens ional não é ex ibido e o componente s e tor na s emelhante às bar r as de fer r amentas do Office 97. P r opr i edade Con f i r m D el et e D es cr i ção S e Confir mDelete for T r ue. Clique duas vezes ao lado da pr opr iedade e digite uma linha de tex to par a cada dica. as dicas ex ibidas s ão os pr ópr ios nomes dos botões (em inglês ). Pos t. T udo que pode s er feito com DB Navigator pode s er feito atr avés de pr ogr amação. Cas o contr ár io. As dicas s ó s er ão mos tr adas s e a pr opr iedade S howHint for T r ue. Par a es conder um botão. como Fir s t. clique duas vezes no nome da pr opr iedade par a abr ir um lis ta de s ubpr opr iedades . Es pecifique aqui o DataS our ce ao qual o DB Navigator es tá ligado. o r egis tr o atual é apagado s em confir mações . Es ta pr opr iedade é muito impor tante. É comum us ar um componente DB Navigator em as s ociação com um componente DB Gr id par a a navegação dos dados em um DataS et. Deter mina s e os botões do DB Navigator s ão ex ibidos com efeito tr idimens ional. Par a ex ibir um botão alter e a pr opr iedade cor r es pondente par a T r ue. Vej a a s eguir os métodos as s ociados a cada botão do DB Navigator : Fir s t Pos t Delete Las t Pr ior Cancel Edit I ns er t Nex t Refr es h Há vár ias pr opr iedades impor tantes par a o componente DB Navigator . D at aS ou r ce F l at H int s .

Faz com que uma caix a de confir mação apar eça. A pr opr iedade mais us ada no componente DB Gr id é a pr opr iedade Options . Per mite que o us uár io us e T AB e S HI FT + T AB par a pas s ar de uma célula do DB Gr id par a outr a. que contém vár ias opções que podem s er ligadas (valor T r ue) ou des ligadas (valor Fals e). Ex ibe o indicador do r egis tr o atual (um pequeno tr iângulo no lado es quer do do DB Gr id). muitas das pr opr iedades e métodos que vimos no capítulo s obr e DataS ets também s e aplicam ao componente Quer y. como Or acle ou S QL S er ver . Ocomponente Q uery Nes te capítulo. par a a cons ulta. Confi gur ando um component e Quer y O componente Quer y. Faz com que títulos s ej am ex ibidos no topo de cada coluna. Da mes ma for ma que par a o componente DB Navigator . como o componente T able. Ex ibe linhas entr e as linhas do DB Gr id. 2. Ex ibe linhas entr e as colunas do DB Gr id. O componente Quer y s e encar r ega da ex ecução da cons ulta S QL e do pr oces s amento dos dados r etor nados pelo banco de dados . Vej a os pas s os bás icos neces s ár ios par a us ar e configur ar um componente Quer y em um for mulár io: 1. Alter e a pr opr iedade Databas eName par a o Alias do banco de dados a s er utilizado. ver emos como us ar o componente Quer y par a r ealizar cons ultas S QL em bancos de dados . Faz com que o DB Gr id es tej a s empr e pr onto par a r ealizar alter ações (no es tado ds Edit). Por tanto. atr avés de um pequeno tr iângulo no lado es quer do. . Cada célula contém um valor de um campo de um DataS et. O componente Quer y per mite r ealizar cons ultas S QL em qualquer tipo de banco de dados s upor tado pelo Delphi. des de em bancos locais Par adox e dB AS E até bancos S QL. quando o us uár io us a CT RL+ DELET E par a apagar um r egis tr o. mes mo quando o DB Gr id não es tá com o foco. Faz com que a célula ou linha s elecionada per maneça s elecionada. Faz com que um novo r egis tr o ins er ido no DB Gr id não s ej a enviado par a o banco de dados . Per mite que colunas s ej am movidas ou r edimens ionadas . o DB Gr id mos tr a também o nome de cada coluna e indica o r egis tr o atual. a não s er que o r egis tr o tenha s ido alter ado (não es tej a vazio). o componente DB Gr id tr abalha com dados r egis tr o por r egis tr o. é um tipo de DataS et. Um componente Quer y contém o tex to de uma cons ulta S QL e a es pecificação dos par âmetr os us ados na cons ulta. Vej a um ex emplo de um DB Gr id em ação: Um DB Gr id é for mado por linhas . colunas e células . Como padr ão.Del phi 5 C omponente DBG rid O componente DB Gr id é um dos componentes mais us ados par a tr abalhar com os dados de um DataS et. Per mite que o us uár io s elecione linhas inteir as no DB Gr id. Adicione um componente Quer y ao for mulár io. Per mite que mais de uma linha no DB Gr id pos s a s er s elecionada ao mes mo tempo. Vej a a s eguir o s ignificado das opções mais impor tantes : Opção dgE di t i n g dgAl w ays S h ow E di t or dgT i t l es dgI n di cat or dgCol u m n R es i z e dgCol L i n s dgR ow L i n es dgT abs dgR ow S el ect dgAl w ays S h ow S el ect i on dgCon f i r m D el et e dgCan cel On E x i t dgMu l t i S el ect E f ei t o qu an do l i gada Per mite que o us uár io alter e dados dentr o do DB Gr id.

todas as linhas da pr opr iedade S QL s ão concatenadas em uma s ó e enviadas ao banco de dados . begin Continente : = Edit1. Em tempo de ex ecução. então. Quer y1. O ex emplo a s eguir lê o tex to em um componente Edit e cr ia a cons ulta S QL no código. Adicione um componente DataS our ce ao for mulár io e alter e a s ua pr opr iedade DataS et par a o nome do componente Quer y.s e a pr opr iedade Active do Quer y par a T r ue. Capital FROM Countr y ' + 'WHERE Continent = ' + chr (39) + Continente + chr (39)+ 'ORDER B Y Name').S QL. ou em tempo de des envolvimento. S e os dados do banco de dados não for em alter ados entr e uma ex ecução e outr a da cons ulta. (a pr opr iedade S QL é do tipo T S tr ings ). Pode. var Continente: S tr ing. Par a alter ar o valor da pr opr iedade S QL. S e tudo cor r er bem. em tempo de des envolvimento.s e no tex to lido. Clear . Os r es ultados da cons ulta S QL podem. na pr opr iedade S QL do componente Quer y. os r es ultados da cons ulta S QL s ão ex ibidos imediatamente no DB Gr id (ou outr o componente com aces s o a dados ). A pr opr iedade S QL é uma lis ta de s tr ings (do tipo T S tr ings ). As cons ultas es táticas não podem s er alter adas em tempo de ex ecução. pr ocedur e T For m1. Quando um componente Quer y é ex ecutado. E s peci fi cando a cons ul t a S QL a s er ex ecut ada A cons ulta S QL de um componente Quer y é ar mazenada na s ua pr opr iedade S QL.s e es pecificar dois tipos de cons ultas S QL: con s u l t as es t át i cas e con s u l t as di n âm i cas . . alter e a pr opr iedade Active do componente Quer y par a T r ue. bas eando. também chamadas de cons ultas par ametr izadas .S QL. alter e a pr opr iedade S QL dir etamente. Par a ex ibir os r es ultados ger ados pelo componente Quer y. podem s er alter adas dur ante a ex ecução do aplicativo. As cons ultas dinâmicas . adicione um componente DB Gr id. end. Cons ulta dinâmicas contêm par âmetr os . etc. digite a cons ulta S QL a s er ex ecutada.Del phi 5 3.Clear . s er aces s ados atr avés do componente Quer y. Par a es pecificar uma cons ulta es tática (s em par âmetr os ).T ex t. os dados r etor nados s er ão os mes mos .B utton1Click(S ender : T Obj ect). es pecifique a cons ulta S QL que a s er ex ecutada pelo componente. clique duas vezes ao lado des s a pr opr iedade no Obj ect I ns pector e digite o comando S QL na j anela que apar ece (vej a a figur a abaix o). Quer y1. ou outr o componente com aces s o a dados . Os par âmetr os podem s er alter ados dir etamente no código. Na pr opr iedade S QL. contendo as linhas da cons ulta S QL. Append.Add('S ELECT Name. 4. Alter e a pr opr iedade DataS our ce des s e componente par a o nome do componente DataS our ce que você acabou de adicionar .Active : = T r ue. A cons ulta é ex ecutada alter ando. chr (39) r etor na o car acter e " as pas s imples " (39 é o código AS CI I des s e car acter e). us ando os métodos Add. Par a ex ecutar a cons ulta S QL. Quer y1.

Del phi 5
Par a es pecificar uma cons ulta dinâmica (par ametr izada), faça o mes mo que par a as cons ulta es táticas , mas em vez de es pecificar valor es fix os na cons ulta, es pecifique par âmetr os , identificador es antecedidos por dois pontos ( : ). Vej a um ex emplo:

No ex emplo, s ão definidos dois par âmetr os : quant e val.

T r abal hando com par âmet r os
Quando você define par âmetr os na cons ulta S QL de um componente Quer y, o Delphi lê e r egis tr a automaticamente os par âmetr os definidos . Antes de ex ecutar a cons ulta par ametr izada, no entanto, você deve configur ar os par âmetr os , definindo o tipo e (pos s ivelmente) um valor inicial par a cada par âmetr o. Par a configur ar os par âmetr os de um componente Quer y, s elecione o componente Quer y e clique duas vezes ao lado da pr opr iedade Par ams , no Obj ect I ns pector . I s s o mos tr a o Editor de Par âmetr os (figur a abaix o)

O E di t or de P ar âm et r os

Par a cada par âmetr o definido, clique no par âmetr o e alter e as pr opr iedades DataT ype e Value, us ando o Obj ect I ns pector . A pr opr iedade DataT ype deter mina o tipo (Real, I nteger , etc.) do par âmetr o. DataT ype deve s er obr igator iamente alter ada. Par a confir mar as alter ações , feche a j anela do Editor de Par âmetr os . A pr opr iedade Value de um par âmetr o pode s er alter ada par a definir um valor inicial par a um par âmetr o, em tempo de des envolvimento. Mas o mais comum é alter ar os valor es dos par âmetr os us ando pr ogr amação. A maneir a mais s imples é us ando o método Par amB yName do componente Quer y. Par a alter ar os par âmetr os de uma quer y em tempo de ex ecução, us e o método Par amB yName(nome do par âmetr o). Us e as pr opr iedades de conver s ão As S tr ing, As I nteger , As Float, etc. par a conver ter valor es na hor a de atr ibuí- los aos par âmetr os . Vej a um ex emplo:

Del phi 5
pr ocedur e T For m1.B utton1Click(S ender : T Obj ect); begin with Quer y1 do begin Clos e; Par amB yName('val').As Cur r ency : = S tr T oCur r (Edit1.T ex t); Par amB yName('quant').As I nteger : = S tr T oI nt(Edit2.T ex t); Open; end; end; O ex emplo lê dois valor es digitados em componentes Edit e atr ibui es s es valor es aos par âmetr os val e quant (vej a o ex emplo da s eção anter ior ). Em s eguida a cons ulta S QL é ex ecutada us ando o método Open do componente Quer y.

E x ecut ando cons ul t as
Um componente Quer y deve s er " ex ecutado" par a que s ua cons ulta S QL s ej a ex ecutada. Quando você ex ecuta um componente Quer y, o Delphi inter pr eta o s eu comando S QL, s ubs titui os par âmetr os pelos valor es es pecificados e dis ponibiliza os dados r es ultantes da cons ulta. Nos ex emplos anter ior es , us amos o método Open (ou a pr opr iedade Active) do componente Quer y par a ex ecutar cons ultas S QL. Open, no entanto, s ó pode s er us ado par a cons ultas com o comando S E L E CT . As cons ultas S QL que não r etor nam dados , como as que us am os comandos I N S E R T , U P D AT E , D E L E T E , etc. devem s er ex ecutadas us ando o método E x ecS QL , como em Quer y1.Ex ecS QL;

AlinguagemLocal SQ L
A linguagem Local S QL é um s ubconj unto da linguagem S QL padr ão (S QL 92 ANS I ). S QL é uma linguagem univer s al us ada na gr ande maior ia dos bancos de dados r elacionais . A linguagem Local S QL contém os comandos mais bás icos da linguagem S QL e é compatível também com os bancos locais , do tipo Par adox e dB AS E, além dos bancos de dados S QL mais poder os os , como Or acle e S QL S er ver . A linguagem Local S QL é s uficiente par a r ealizar a maior ia das cons ultas S QL neces s ár ias em um banco de dados . N OT A: como Local S QL é um s ubconj unto da linguagem S QL, us ar emos apenas " S QL" de agor a em diante.

As duas par t es de S QL
A linguagem S QL s e divide em duas par tes independentes (chamadas também de linguagens ): uma linguagem de manipulação de dados , us ada par a cons ultar e alter ar os dados de bancos de dados , e uma linguagem de definição de dados , us ada par a alter ar a es tr utur a dos bancos . A linguagem de manipulação de dados é cons tituída pelos s eguintes comandos pr incipais : Com an do S E L E CT I NS E R T U P D AT E DEL ET E F u n ção Us ado par a r ecuper ar dados de uma ou mais tabelas , bas eando- s e em condições es pecificadas . O comando S ELECT é us ado par a r ealizar muitas oper ações difer entes e é muito poder os o. Us ado par a adicionar dados a uma tabela. Us ado par a atualizar (modificar ) dados ex is tentes em uma tabela. Us ado par a apagar r egis tr os de uma tabela.

A linguagem de definição de dados é cons tituída pelos s eguintes comandos pr incipais : Com an do CR E AT E T AB L E AL T E R T AB L E D R OP T AB L E CR E AT E I N D E X D R OP I N D E X F u n ção Cr iar uma tabela. Alter ar a es tr utur a de uma tabela. Des tr uir uma tabela (r emovê- la do banco de dados ). Cr iar um índice par a uma tabela. Remover um índice par a uma tabela.

Del phi 5
O comando S E L E CT
O comando S ELECT é o mais poder os o e mais complex o dos comandos da linguagem S QL. Es s e comando é us ado par a r ecuper ar dados de uma ou mais tabelas . Os dados r ecuper ados dependem das condições definidas no comando S ELECT . A for ma bás ica par a o comando S ELECT é a s eguinte: S ELECT WHERE ORDER GROUP [ campos r etor nados ] FROM [ tabelas cons ultadas ] [ condição] B Y [ campos de or denação] B Y [ campos de agr upamento]

Vej a o que s ignifica cada par te do comando: P ar t e do com an do S E L E CT Cam pos r et or n ados D es cr i ção Os nomes dos campos a s er em r etor nados . S e um as ter is co (* ) for es pecificado, todos os campos das tabelas s ão r etor nados . Os campos devem per tencer a uma das tabelas es pecificadas em tabelas cons ultadas . As tabelas de onde s er ão ex tr aídos os dados . Uma condição que r es tr inge os valor es que s ão r etor nados . A condição pode us ar os oper ador es booleanos comuns de Obj ect Pas cal, como < , > , < > , = , AND, OR, NOT , entr e outr os . Os campos us ados como bas e par a a or denação dos valor es r etor nados . O pr imeir o campo es pecificado tem pr ior idade. Os outr os campos s ão us ados como " cr itér ios de des empate" . Os campos us ados par a agr upar campos quando s ão us adas funções de agr egação como COUNT , S UM e AVG.

t abel as con s u l t adas con di ção

Cam pos de or den ação

Cam pos de agr u pam en t o

Vej a agor a alguns ex emplos do us o do comando S ELECT : E s t e com an do... S E L E CT * F R OM P r odu t os S E L E CT N om e, P r eco F R OM P r odu t os S E L E CT N om e, P r eco F R OM P r odu t os W H E R E P r eco > 1 0 0 .0 0 S E L E CT Codi go, P r eco F R OM P r odu t os W H E R E Qu an t i dade > 1 2 S E L E CT N om e, Qu an t i dade F R OM P r odu t os W H E R E P r eco > 1 0 0 .0 0 AN D P r eco < 5 0 0 .0 0 S E L E CT N om e F R OM P r odu t os W H E R E Qu an t i dade < > 0 OR D E R B Y N om e S E L E CT * F R OM P edi dos , P r odu t os W H E R E P edi dos .CodP r odu t o = P r odu t os .Codi go S E L E CT N om e, S U M( P r eco* Qu an t i dade) F R OM P edi dos , P r odu t os W H E R E P edi dos .CodP r odu t o = P r odu t os .Codi go GR OU P B Y N om e, Codi go R et or n a... T odos os valor es de todos os campos da tabela Pr odutos (a tabela inteir a). T odos os nomes e os pr eços da tabela Pr odutos (mas nenhum outr o campo). O Nome e o Pr eço de todos os pr odutos com Pr eço maior que 100.00. O Código e o Pr eço de todos os pr odutos com Quantidade maior que 12. Note que os campos na par te WHERE não pr ecis am es tar na par te S ELECT . O Nome e a Quantidade de todos os pr odutos com Pr eço entr e 100 e 500. S omente o Nome dos pr odutos com Quantidade difer ente de zer o, or denados pelo Nome do pr oduto. T odos os campos de ambas as tabelas Pedidos e Pr odutos , " cas ados " por código. (É feita uma j unção das duas tabelas , bas eada nos campos Codigo e CodPr oduto). O Nome e o valor total dos pr odutos (Pr eço vezes Quantidade), agr upados por código de pr oduto. (S e houver um pr oduto com o mes mo código em vár ios pedidos , o valor de todos os pr odutos pedidos é s omado – o pr oduto s ó apar ece uma vez nos dados r es ultantes ).

U s ando I N e B E T WE E N
O comando I N é us ado em condições par a deter minar s e um valor per tence a um conj unto es pecificado. O ex emplo a s eguir r etor na o nome e o pr eço de todos os pr odutos com quantidades que es tej am no conj unto { 100, 200, 300, 400, 500} : S ELECT Nome Pr eco FROM Pr odutos WHERE Quantidade I N (100, 200, 300, 400, 500)

..Del phi 5 O comando B ET WEEN também é us ado em condições . Es te comando é us ado da s eguinte for ma: I NS ERT I NT O Nome da tabela (Campo1. A média de todos os valor es não nulos em um campo.0 0 S E L E CT S U M( P r eco* Qu an t i dade) F R OM P r odu t os R et or n a Retor na a média do pr eço de todos os pr odutos . j unto com a palavr a AND. O comando I NS E R T O comando I NS E RT é us ado par a ins er ir novos r egis tr os (com dados ) em tabelas .) Alguns ex emplos : Com an do I N S E R T I N T O Cl i en t es ( N om e. A s oma de todos os valor es numér icos em um campo. Nome. O car acter e % vale por um ou mais car acter es (como o * do DOS ).. par a fazer " cas amentos " par ciais . Quantidade e Data de entr ada).00. ou o númer o total de r egis tr os r etor nados .1 0 0 . S obr en om e) VAL U E S ( ‘L eon ar do’.. médias e contagens .. s e is s o for per mitido. Vej a alguns ex emplos do us o de funções de agr egação: Com an do S QL S E L E CT AVG( P r eco) F R OM P r odu t os S E L E CT COU N T ( * ) F R OM P r odu t os W H E R E P r eco < 1 0 0 . Um único valor é r etor nado.' Ar n o 1 0 0 ' . O númer o de valor es em um campo. como s omas . O valor mínimo em um campo. I ns er e um novo r egis tr o na tabela Pr odutos .) VALUES (Valor 1. Vej a dois ex emplos : S ELECT Nome.. ‘Gal vão’) I N S E R T I N T O P r odu t os VAL U E S ( ' 0 0 7 9 ' . o car acter e _ vale por ex atamente um car acter e (s emelhante ao ? do DOS ). Es s e comando é us ado da s eguinte for ma: UPDAT E Nome da T abela S E T Campo = Valor WHE RE Condição Ex emplos : ..5 0 0 . O comando U P DAT E O comando UPDAT E é us ado par a atualizar (modificar ) r egis tr os em uma tabela. U s ando funções de agr egação As funções de agr egação s ão us adas par a r ealizar cálculos s imples nos valor es de um campo. Vej a um ex emplo: S ELECT * FROM Pr odutos WHERE Nome LI K E ‘Micr o% ’ Es te ex emplo r etor na todos os pr odutos com o nome começando com " Micr o" . S ão cinco as funções de agr egação: F u n ção SUM AVG MI N MAX COU N T R et or n a. par a deter minar s e um valor es tá dentr o de um inter valo es pecificado.' 1 2 / 1 0 / 9 7 ' ) E f ei t o / Com en t ár i o I ns er e um novo r egis tr o na tabela Clientes com Nome = " Leonar do" e S obr enome = " Galvão" . Retor na o númer o de pr odutos com pr eço abaix o de 100. Campo2. Valor . Os outr os campos do r egis tr o ficam vazios (nulos ). pr eenchendo todos os valor es do r egis tr o (Codigo. O valor máx imo em um campo. Quantidade FROM Pr odutos WHERE Pr eco B E T WE EN 100 AND 1000 S ELECT * FROM Pedidos WHERE Codigo B ET WE EN ‘0001’ AND ‘0100’ U s ando L I K E e car act er es " cur i nga" Os comando LI K E é us ado em condições . Retor na a s oma da multiplicação do Pr eco e da Quantidade de todos os pr odutos . j unto com os car acter es % e _ . Valor 2. Um único valor é r etor nado. . Note que os campos não pr ecis am s er es pecificados nes s e cas o.

apaga todos os r egis tr os da tabela Pr odutos . • • ALT ER T AB LE Nome da tabela ADD NovoCampo1 T ipo1. uma par a adicionar campos e outr a par a r emovê. DROP Campo2. . Vej a um ex emplo do us o do comando CREAT E T AB LE: CREAT E T AB LE Jogador es ( Nome CHAR[ 40] . Há duas ver s ões par a es s e comando... Reduz o pr eço de todos os pr odutos da tabela Pr odutos par a 80% do pr eço anter ior . ADD NovoCampo2 T ipo2. (Adiciona os campos es pecificados depois de ADD). D E L E T E F R OM N om e da t abel a W H E R E Con di ção O s eguinte ex emplo. S obr enome CHAR[ 60] . Clube: CHAR[ 40] . E f ei t o Adiciona dois campos (colunas ) à tabela Pr odutos : " DataEx pir acao" e “For necedor " . PRI MARY K EY (S obr enome)) Par a cr iar uma tabela do tipo Par adox ou dB AS E adicione .DB ou .Del phi 5 Com an do U P D AT E P ai s es S E T Capi t al = ‘B r at i s l ava’ W H E R E P ai s = ‘E s l ováqu i a’ U P D AT E P r odu t os S E T P r eco = P r eco * 0 . (Remove os campos es pecificados depois de DROP) Vej a alguns ex emplos que us am o comando ALT ER T AB LE: Com an do ALT ER T AB LE Pr odutos ADD DataEx pir acao DAT E. Com es s e comando.. PRI MARY K EY (CampoChave)) A par te PRI MARY K EY define a chave pr imár ia da tabela.db" ( Codigo: I NT EGER.DB F ao final do nome da tabela e coloque o nome entr e as pas . . como no ex emplo a s eguir : CREAT E T AB LE " Clientes ..8 E f ei t o / Com en t ár i o Alter a a capital do País " Es lováquia" par a " B r atis lava" (todas as ocor r ências ). que s atis façam uma condição es pecificada. você es pecifica o nome da tabela a s er cr iada e o nome e o tipo de cada campo da nova tabela: CREAT E T AB LE Nome da T abela ( Campo1 T I PO1 Campo2 T I PO2 . DataNas c DAT E. Cidade CHAR[ 40] ) O comando AL T E R T AB L E O comando ALT ER T AB LE é us ado par a alter ar a es tr utur a de uma tabela ex is tente.los .. O comando DE L E T E O comando DELET E é us ado par a apagar r egis tr os inteir os de uma tabela. Nome CHAR[ 30] . ALT ER T AB LE Nome da tabela DROP Campo1. que têm o campo Quantidade = 0: D E L E T E F R OM P r odu t os W H E R E Qu an t i dade = 0 A l i nguagem de defi ni ção de dados O comando CR E AT E T AB L E Us ado par a cr iar tabelas ..

vis to que nem todos os pr ovedor es ou camadas Middletier poder ão T er o B DE ins talado. As tr ans ações e os par âmetr os de conex ão s er ão r ealizados atr avés des te obj eto. O comando DR OP I NDE X Us ado par a r emover índices em uma tabela. a I npr is e viu a neces s idade de ex tender o padr ão de aces s o. Antes do ADO. Vej a a ilus tr ação abaix o. r epr es enta a conex ão com o banco de dados . . mas a Micr os oft per cebeu que es te camada não s er vir ia par a aplicações I nter net. de for ma muita par ecida com o aces s o via B DE. e como es te. até s ua ver s ão 4. Aqui. Com o advento da pr ogr amação par a I nter net e a difus ão do des envolvimento em múltiplas camadas . Campo2. ins ir a um obj eto T ADOConnection. s ó aces s ava banco de dados atr avés da B DE. ou " Abandonar " ). A es tr utur a do comando a é a s eguinte: CREAT E I NDE X Nome do índice ON Nome da tabela (Campo1. S endo as s im. o Delphi 5 per mite o aces s o também via ADO (ActiveX Data Obj ects ). O us o des s e comando é s imples : DROP T AB L E Nome da tabela O comando CR E AT E I NDE X O comando CREAT E I NDE X é us ado par a cr iar índices em tabelas . O Delphi. O índice pr imár io de uma tabela Par adox é o campo definido na par te " PRI MARY K EY" do comando CREAT E T AB LE. A camada ADO é um novo padr ão Micr os oft par a aces s o a banco de dados . que r epr es enta a conex ão via B DE ou ADO: Delphi c/ BDE Delphi c/ ADO BDE ADO ODBC OLE DB ODBC Banco de Dados BDE compatível Banco de Dados BDE compatível Banco de Dados BDE compatível Banco de Dados BDE compatível Ex emplo1: Cr iando um DataS et com T ADOT able: Es te ex emplo demons tr a o us o mais s imples dos obj etos ADO.Nome do índice. cr ie uma nova aplicação.) Par a tabelas dB AS E es s a é a única maneir a de cr iar índices . devemos configur ar o obj eto ADOConnection1. is to er a feito com a camada ODB C. O comando DR OP T AB L E O comando DROP T AB LE é us ado par a r emover tabelas inteir as de um banco de dados (A palavr a " Dr op" s ignifica " Deix ar cair " . O obj eto ADO Connection é equivalente ao obj eto T Databas e. Dê um clique duplo s obr e o obj eto. (Remove da tabela o índice pr imár io .par a tabelas Par adox ) C onexões A DO O Delphi 5 incor por a uma biblioteca de 7 componentes par a aces s o à camada ADO. Par a tabelas Par adox es s e comando s ó pode s er us ado par a a cr iação de índices s ecundár ios . a OLE DB que além de pos s uir dr iver s nativos par a aces s ar banco de dados é altamente integr ada à I nter net. um obj eto DB Gr id s er á pr eenchido com o conteúdo de uma tabela. a camada B DE s er via como inter mediár ia de comunicação.Del phi 5 ADD For necedor CHAR[ 60] ALT ER T AB LE Jogador es DROP DataNas c Remove o campo " DataNas c" da tabela Jogador es . for necido atr avés de um obj eto T ADOT able. Pode s er us ado de duas for mas : DROP I NDE X Nome da tabela. A camada ADO s ão clas s es de alto nível par a aces s o ao OLE DB . Mes mo quando er a neces s ár io utilizar o ODB C. então. (Remove da tabela o índice es pecificado) DROP I NDE X Nome da tabela.PRI MARY. e no for mulár io 1... par a que a j anela Connection S tr ing s ej a ex ibida: . S ur giu. Em s eguida.

Del phi 5 Es ta j anela ir á indicar os par âmetr os de conex ão com o banco de dados . A j anela Data Link Pr oper ties s er á ex ibida: Cada I tem ex ibido nes ta j anela r epr es enta um mecanis mo de conex ão aos dados . Es te obj eto r epr es enta a conex ão com a tabela e é equivalente ao obj eto T T able. S elecione o por tanto. e s eu for mulár io s er á par ecido com a figur a abaix o: . Lembr ando. I ns ir a um obj eto T ADOT able no for mulár io. B as ta alter ar a pr opr iedade Active do obj eto AdoT able1 par a T RUE. uma conex ão JET E ngine. que contém os par âmetr os de conex ão pr é for matados . Na opção nº 1.o com o obj eto DataS our ce1. Abr a o ar quivo DB DEMOS . I ns ir a um obj eto T Datas our ce no for mulár io.UDL.0 OLE DB Pr ovider ” e clique em Nex t. Nes te cas o. par a aces s ar o banco de dados Acces s . devemos conectar es te obj eto ao T ADOConnection.UDL. As opções r epr es entam: U s e D at a L i n k F i l e U s e Con n ect i on S t r i n g Ar quivo . Após clique em OK . o item “Jet Egine 4. A aba connection s er á ex ibida: N ot a: Es ta aba ir á pos s uir uma inter face difer ente par a cada banco de dados . par a voltar ao I DE do Delphi. S elecione Cus tomer . indique o nome da tabela na pr opr iedade T ableName. a fim de conectar com o banco de dados . No nos s o cas o. Per mite cr iar um novo ar quivo . I ns ir a um obj eto T DbGr id.MDB . Pr imeir amente.MDB do banco de dados que s er á aces s ado por nos s a aplicação. Faça is to alter ando a pr opr iedade Connection. ele s e conecta a um motor de aces s o par a r ealizar a conex ão. s elecione Us e Connection S tr ing e clique no botão B uild. e conecte. o ADO não aces s o o banco de dados s ozinho. ou algum outr o tipo de motor ins talado. us ar emos o motor Jet Engine. uma conex ão OLEDB nativa. e linke. Em s eguida. s elecione o ar quivo . indicando o obj eto ADOConnection1. Es te motor pode s er uma conex ão ODB C. com todos os par âmetr os de conex ão.o com o obj eto ADOT able1. Alter e a pr opr iedade Connected par a T RUE.

CoAs yn cCon n ect . Define onde es tar á o cur s or par a s uas tabelas . Ocor r e quando é feita uma conex ão. Define a S tr ing de conex ão entr e a camada inter ces s or a do banco de dados com o ADO. Ocor r e após des conectar . métodos e eventos r elevantes aos obj eto da palheta ADO encontr a. Es ta pr opr iedade per mite es pecificar um deter minado tempo de limite par a s er feita a conex ão com o banco de dados . Ocor r e quando uma conex ão com o AD O ex ecutou um comando(Command). OD B C. Ocor r e antes de efetuar uma conex ão. Define um banco de dados padr ão par a a conex ão quando uma conex ão via Con n ect i on S t r i n g não for bem s ucedida. Es pecifica s e ex is te ou não uma conex ão. O component e T ADOConnect i on Es te componente é utilizado par a cr iar uma nova conex ão com a camada ADO.Del phi 5 Uma des cr ição detalhada de todas as pr opr iedade. É bas tante s emelhante ao componente T Databas e. leitur a e gr avação e etc.s e dis ponível a s eguir . OD B C. es te e o modo padr ao do AD O. Ocor r e quando é iniciada uma nova tr ans ação. s ua utilização também é opcional. OL E D B ). Ocor r e quando o comando Com m i t foi ex ecutado. Es pecifica o método de conex ão que s er á utilizado pela camada AD O: Jet . Es ta pr opr iedade define o tipo de conex ão. Es ta pr opr iedade é s emelhante à pr opr iedade T r ans I s olation do obj eto Databas e. Utilizamos es ta pr opr iedade par a definir qual s er á o banco de dados e a camada par a o AD O ( Jet . Ocor r e quando uma conex ão é bem s ucedida e infor mações adicionais s ão enviadas pelo P r ovi der . Define o nível de is olamento entr e do banco de dados . Define um modo de conex ão: S omente leitur a. Ocor r e andes de des conectar . Ocor r e quando é ter minada uma conex ão. OL E D B . ConnectionT imeout ConnectOption Cur s or Location DefaultDatabas e I s olationLevel Mode Pr ovider Principais Eventos After Connect After Dis connect B efor eConnect B efor eDis connect OnB eginT r as Complete OnCommitComplete OnConnectCompleted OnDis connect OnEx ecuteComplete OnI nfoMes s age Ocor r e após efetuar uma conex ão. Es te modo e utilizado Quando o s er vidor for muito lento. Principais Propriedades CommandT imeout Connected ConnectS tr ing Es ta pr opr iedade per mite es pecificar um deter minado tempo de limite par a obter uma r es pos ta de um comando ex ecutado. CoCon n ect U n s peci f i ed . . etc.

os dados s er ao ar mazenados no cliente. Ct K eys et . Es te tipo de cur s or e o que apr es enta a pior per for mance e o que gas ta mais r ecur s os do s is tema. ir á indicar a r equis ição dos pr óx imos r egis tr os que não for am car r egados par a o bu f f er . Cur s or bi -di r eci on al . as alter acoes s er ao automaticamente enviadas par a o s er vidor . Mar s halOptions Útil apenas quando a tabela es tá em Cl i en t -S i de. quando T r u e. o final do bu f f er . Cas o o valor s ej a m oMar s h al Modi f i edOn l y . Obj eto T AD OCon n ect i on . S omente leitur a. I t P es s i m i s t i c. Ocor r e quando é ex ecutado um RollB ack. Um tipo de lock que não foi pr e. todos os r egis tr os s er ão enviados par a o s er vidor . As alter acoes feitas por tr ans acoes concor r entes não es tar ao aces s iveis . Per mite configur ar uma s tr ing de conex ão com o s er vidor . e os r egis tr os deletados . I t Opt i m i s t i c. que r epr es enta a ins tancia do banco de dados atual. LockT ype Es pecifica como o lock de r egis tr os s er a ex ecutado. I ndica a quantidade máx ima de r egis tr os ex ibidos pelo obj eto. Os pos s iveis valor es s ão. Novos pedidos s ão automaticamente contr olados pelo obj eto. S e o valor for m oMar s h al Al l . O par âmetr o Mor eD at a. Quando Fals e. 0 (zer o) indica todos os r egis tr os . Nes te cas o. nunca r etor nar os r egis tr os . o us uar io poder a apenas navegar par a fr ente. T odos podem alter ar o mes mo r egis tr o. Aqui. Cas o a pr opr iedade s ej a cl U s eS er ver . Ct D yn am i c. I ndica o tipo de cur s or utilizado pelo cliente. Ocor r e quando uma conex ão es tá pr es tes a s er efetuada. Um tipo de cur s or não pr e. Principais métodos Open Clos e Per mite ativar uma conex ão T er mina uma conex ão T ADOT abl e Obj eto ADOT able de uma conex ão ADO é equivalente ao obj eto T T able da camada B DE. . Com es te valor . Ocor r e quando uma ex ecução es tá pr es tes a s er efetuada. I ndica s e o obj eto ir a tr abalhar em modo Ch ach edU pdat es . I t B at ch Opt i m i s t i c. e s im. I mpede que outr as s es s oes alter em quando es tiver em modo update B atch. I t R eadOn l y . Principais Propriedades CacheS ize Connection ConnectionS tr ing Cur s or Location I ndica quantos r egis tr os s er ão pedidos par a o s er vidor por vez. Ct Open F or w ar dOn l y . É impor tante notar que es ta ação não r epr es enta o final da tabela. u pdat e e del et e) per manecer ao no mes mo. não es tar ao dis poniveis . o us uar io vis ualiza as alter acoes .Del phi 5 OnLogin OnRollbackT r ans Complete OnWillConnect OnWillEx ecute Ocor r e quando é aber ta a j anela L ogi n P r om pt . I mpede que outr as s es s oes alter em o r egis tr o que es tiver locado pelo us uar io. não concor r ente. Ct U n s peci f i ed . Cur s or T ype Max Recor ds T ableDir ect T ableName Principais Eventos OnEndOfRecor ds et Ocor r e quando o ponteir o avança após o último r egis tr o car r egado pelo R ecor dS et . ins er coes e delecoes de outr as tr ans acoes . Ct S t at i c. o us uar io pode navegar par a fr ente e par a tr as no r es ult s et.definido pelo obj eto. Nome da tabela dentr o do banco de dados . O valor D ef au l t é F al s e. bi -di r eci on al e con cor r en t e. apenas os r egis tr os modificados s er ão devolvidos . os dados s er ão s empr e r equis itados via intr uções S QL S elect. I ndica quais r egis tr os s er ão devolvidos par a o s er vidor ou par a a camada m i ddl ew ar e. e ar mazenados na memor ia local. apes ar de vis iveis . a ins tr ução é cr iada automaticamente pelo obj eto. Aqui. Pode s er us ado no lugar de um obj eto T AD OCon n ect i on . I t U n s peci f i ed . Uma s imples copia dos r egis tr os .dir ecional. Cas o es ta pr opr iedade es tej a configur ada par a cl U s eCl i en t . Os pos s iveis valor es s ão. e todas as oper acoes r ealizadas (como i n s er t .definido pelo obj eto. Cur s or uni. Qualquer tipo de alter acao concor r ente não s er a vis ualizada nes te cur s or .

Ct K eys et . O s egundo indica como a pes quis a s er á r ealizada. Ocor r e após a gr avação de um valor par a algum campo da tabela. e todas as oper acoes r ealizadas (como ins er t. Uma s imples copia dos r egis tr os . I ndica o tipo de cur s or utilizado pelo cliente. Os pos s íveis valor es par a S eekOption s ão: S oF i r s t E Q. Ocor r e dur ante a leitur a dos dados par a o bu f f er . I t P es s i m i s t i c. Ocor r e após um ou vár ios r egis tr os s er em atualizados . S oL as t E Q. as alter acoes s er ao automaticamente enviadas par a o s er vidor . B i. I t R eadOn l y . o us uar io poder a apenas navegar par a fr ente. I mpede que outr as s es s oes alter em o r egis tr o que es tiver locado pelo us uar io. if found. S omente leitur a. S oB ef or e. Cas o es ta pr opr iedade es tej a configur ada par a cl U s eCl i en t . Os pos s iveis valor es s ão: I t U n s peci f i ed . Cas o ex is ta. Ct Open F or w ar dOn l y . O pr imeir o par âmetr o é um ar r ay OLE (Var Ar r ayOf) de valor es de pes quis a. O par âmetr o P r ogr es s indica a quantidade de r egis tr os lidos . Recor d pointer pos itioned at matching r ecor d.dir ecional e concor r ente. apes ar de vis iveis . os dados s er ao ar mazenados no cliente. Ocor r e antes da alter ação de algum valor da tabela. O ponteir o é pos icionado no r egis tr o encontr ado + 1. o us uar io vis ualiza as alter acoes . Es te tipo de cur s or e o que apr es enta a pior per for mance e o que gas ta mais r ecur s os do s is tema. Max P r ogr es s a quantidade a s er lida e E ven t S t at u s s e a oper ação foi bem s ucedida. update e delete) per manecer ao no mes mo. LockT ype Es pecifica como o lock de r egis tr os s er a ex ecutado. Ct D yn am i c. Com es te valor . I ndica s e o obj eto ir a tr abalhar em modo Ch ach edU pdat es . S eekOption: T S eekOption = s oFir s tEQ): B oolean. Ocor r e antes da edição/ins er ção de um r egis tr o. ins er coes e delecoes de outr as tr ans acoes . Cas o ex is ta. OnfieldChangeComplete OnMoveComplete OnRecor dChangeComplete OnWillChangefield OnWillChangeRecor d OnWillChangeRecor ds et OnWillMove Principais Métodos function S eek(cons t K eyValues : Var iant. nunca r etor nar os r egis tr os .S er vidor . Cur s or uni.definido pelo obj eto. Ocor r e após o ponteir o de r egis tr o r ealizar alguma movimentação. o ponteir o e pos icionado na pr imeir a ocor r encia.definido pelo obj eto. OnFetchComplete OnFetchPr ogr es s Ocor r e quando uma r equis ição de dados par a o bu f f er é ter minada.dir ecional. Aqui. Recor d pointer pos itioned at matching r ecor d. Cas o a pr opr iedade s ej a cl U s eS er ver . Um tipo de lock que não foi pr e. Ct S t at i c. Ocor r e antes da movimentação do ponteir o par a algum lugar . Principais Propriedades Connection Cur s or Location Obj eto T AD OCon n ect i on que r epr es enta a i n s t ân ci a do banco de dados atual. não es tar ao dis poniveis . Cur s or T ype .Del phi 5 O par âmetr o E ven t S t at u s indica s e a oper acao que ger ou o evento foi ou não bem s ucedida. or j us t after wher e that matching r ecor d would have been found. As alter acoes feitas por tr ans acoes concor r entes não es tar ao aces s iveis . or j us t befor e wher e that matching r ecor d would have been found. if found. Faz a pes quis a utilizando o índice atual. Um tipo de cur s or não pr e. I mpede que outr as s es s oes alter em quando es tiver em modo update B atch. O ponteir o ‘e pos icionado no r egis tr o encontr ado – 1 T ADOQuer y Repr es enta o obj eto T Quer y da palheta DataAcces s . Ocor r e antes da edição do valor de um campo. Cur s or bi. Os pos s iveis valor es s ão: Ct U n s peci f i ed . Aqui. não concor r ente. O mais indicado par a conex ões com um banco de dados Cliente. o ponteir o e pos icionado na ultima ocor r encia S oAf t er E Q. T odos podem alter ar o mes mo r egis tr o. S oAf t er .dir ecional. I t B at ch Opt i m i s t i c. o us uar io pode navegar par a fr ente e par a tr as no r es ult s et. e os r egis tr os deletados . I t Opt i m i s t i c. Qualquer tipo de alter acao concor r ente não s er a vis ualizada nes te cur s or . S oB ef or eE Q.

S e T r u e. apenas os r egis tr os modificados s er ão devolvidos . del eção de tabelas e u pdat e bat ch s s ão mais r ápidos quando ex ecutados atr avés des te componente. A s intax e é difer ente da pr opr iedade Par ams do obj eto T Qu er y . Obj eto T AD OCon n ect i on . Pos s ui uma per for mance otimizada par a ins tr uções que não neces s item r etor nar dados par a a aplicação. o obj eto ir á cons ider ar as ex pr es s oes “: var i avel ” como um nome de par âmetr o. T AD OQu er y e T AD OS t or edP r oc. que r epr es enta a ins tância do banco de dados atual. T empo que o obj eto ir á es per ar pela r es pos ta do s er vidor . Ocor r e dur ante a leitur a dos dados par a o bu f f er . O par âmetr o Mor eD at a. A s intax e é difer ente da pr opr iedade Par ams do obj eto T Qu er y .P ar am et er s . Ocor r e antes da edição do valor de um campo. Ocor r e após um ou vár ios r egis tr os s er em atualizados . Aplicações S QL também podem ter um des empenho melhor ado com es te componente. Oper ações como backu p . da biblioteca AD O. Ocor r e após a gr avação de um valor par a algum campo da tabela. Pr opr iedade da cl as s e T P ar am et er s . I ndica o tipo de ins tr ução contida na pr opr iedade Com m an dT ex t . todos os r egis tr os s er ão enviados par a o s er vidor . que s er ve par a a pas s agem de valor es par a os par ametr os da S QL . E s te componente r epr es enta o obj eto AD O Com m an d . quando T r u e. T ADOCommand Não pos s ui equivalente na palheta D at aAcces s . Ocor r e após o pon t ei r o de r egis tr o r ealizar alguma movimentação. Ex : AD OQu er y1 .P ar am B yn am e(‘codigo_ cliente’). o final do buffer . Ocor r e quando uma r equis ição de dados par a o bu f f er é ter minada. S er ve apenas par a enviar ins tr uções S QL par a o s er vidor . É impor tante notar que es ta ação não r epr es enta o final da tabela. S e o valor for m oMar s h al Al l . o obj eto ir á cons ider ar as ex pr es s oes “: var i avel ” como um nome de par âmetr o. Max P r ogr es s a quantidade a s er lida e E ven t S t at u s s e a oper ação foi bem s ucedida. ir á indicar a r equis ição dos pr óx imos r egis tr os que não for am car r egados par a o bu f f er . métodos e eventos s ão os mes mo des tes obj etos . Ocor r e antes da alter ação de algum valor da tabela. Ocor r e antes da edição/ins er ção de um r egis tr o. e não per mite a ligação com obj etos D at aCon t r ol . S uas pr opr iedades . Cas o o valor s ej a m oMar s h al Modi f i edOn l y . S e T r u e. que s er ve par a a pas s agem de valor es par a os par âmetr os da S QL .Del phi 5 Mar s halOptions Útil apenas quando a tabela es tá em Cl i en t -S i de. Principais Propriedades CommandT ex t CommandT imeOut CommandT ype Connection Par amCheck Par ameter s I ns tr ução S QL que s er á ex ecutada pelo s er vidor .Value: = 1. 0 (zer o) indica todos os r egis tr os . OnFetchComplete OnFetchPr ogr es s OnfieldChangeComplete OnMoveComplete OnRecor dChangeComplete OnWillChangefield OnWillChangeRecor d OnWillChangeRecor ds et OnWillMove Principais Metodos Open Clos e Ex ecS QL Abr e a Quer y Fecha a Quer y Ex ecuta uma intr ução S QL T ADODat aS et Es te obj eto é a clas s e pai dos obj etos T AD OT abl e. I ns tr ução S QL que s er á ex ecutada pelo obj eto. Ex : . I ndica quais r egis tr os s er ão devolvidos par a o s er vidor ou par a a camada m i ddl ew ar e. e s im. Pr opr iedade da clas s e T P ar am et er s . Ocor r e antes da movimentação do ponteir o par a algum lugar . I ndica a quantidade máx ima de r egis tr os ex ibidos pelo obj eto.P ar am s . O par âmetr o E ven t S t at u s indica s e a oper acao que ger ou o evento foi ou não bem s ucedida. Max Recor ds Par amCheck Par ameter s S QL Principais Eventos OnEndOfRecor ds et Ocor r e quando o ponteir o avança após o último r egis tr o car r egado pelo R ecor dS et . O par âmetr o P r ogr es s indica a quantidade de r egis tr os lidos .

como MI DAS e CORB A. Com os novos obj etos é pos s ível ex tr air vár ias infor mações do s er vidor . e outr as . Ex is tem outr as alter nativas e s oluções mais inter es s antes par a Delphi. Um maior contr ole do S QL e das tr ans ações r ealizadas também for am adicionadas aos componentes .P ar am B yn am e( ‘codi go_ cl i en t e’) . Per mite acionar uma pr ocedur e ar mazenada no s er vidor de banco de dados . utilizando os componentes da palheta I nter bas e apr es entar á uma per for mance s uper ior do que as aplicações compiladas em ver s ões anter ior es do Delphi. T R DS Connect i on Obj eto par a cr iação de aplicações multi. não dar emos ênfas e ao Remote Data S pace. Principais Propriedades Connection Par ameter s Pr ocedur eName Obj eto T AD OCon n ect i on que r epr es enta a ins tância atual do banco de dados . Define os par âmetr os P r ocedu r e. utilize os eventos do obj eto T ADOConnection. Uma aplicação compilada em Delphi 5. Par a tr atar os pos s íveis r es ultados que es te obj eto pode ger ar . Repar e na figur a 1 a ex emplificação des ta difer ença: Delphi Delphi BDE Banco de Dados Banco de Dados Além de maior per for mance. Uma aplicação cons tr uída com es tes componentes ter á o código de aces s o ao banco “built. Es te obj eto não pos s ui eventos . da palheta DataAcces s . Apes ar de todas es tas vantagens . I s to por que os novos componentes I nter bas e dis pens am a camada B DE – ou qualquer outr a camada. o des envolvedor pas s a a ganhar também em r ecur s os .in”. dentr o do pr ópr io ex ecutável. que s er ão pas s ados ou r ecebidos da S t or ed Nome da S t or edP r ocedu r e.Del phi 5 AD OCom m an d1 . os componentes I nter bas e ofer ecem um óbvio ponto negativo: Uma aplicação cons tr uída com es tes componentes dever á s er totalmente r econs tr uida cas o o cliente r es olvar mudar de banco de dados .Val u e: = 1 . Palheta Interbase A palheta I nter bas e for nece e o melhor método par a cr iar uma aplicação Delphi aces s ando bas e de dados I nter bas e.camadas . . es paço em dis co. ou s ej a. Es te obj eto s er ve como Middletier par a conex ões ADO em vár ias camadas .P ar am s . Principais Métodos Ex ecute Envia a intr ucao S QL par a o s er vidor T ADOS t or edP r oc Equivalente ao obj eto T S tor edPr oc. por centual de r ecur s os dis poníveis .P ar am et er s . como memór ia dis ponível. banco de dados utilizado. Por tanto.

Ex ecuta a ins tr ucao Commit. LoginPr ompt S QLDialect T r aceFlags Principais Eventos After Connect After Dis connect B efor eConnect B efor eDis connect OnI dleT imer OnLogin Ocor r e após a conex ão s er r ealizada. Ex ecuta a ins tr ução Commit e mantém o handle da tr ans ação aber to(os dados continuam na tela). I ndica o código de dialeto S QL utilizado pelo cliente. Dis ponível apenas na ver s ão 6. e mantém o handle da tr ans ação aber to(os dados continuam na tela). da palheta DataAcces s . é pos s ível contr olar tr ans ações concor r entes or iginár ias da mes ma conex ão com o banco de dados . Principais Métodos Commit CommitRetaining Confir ma a tr ans ação no s er vidor . Principais Propriedades Connected Databas ename DefaultT r ans action I dleT imer Quando T r u e . Es pecifica quanto tempo o obj eto ir á es per ar par a ex ecutar o método es pecificado na pr opr iedade D ef au l t Act i on . Principais Eventos OnI dleT imer Ocor r e enquanto a aplicação não envia nenhuma ins tr ução S QL par a o s er vidor . Eles es tão lis tados por or dem de impor tância dentr o do pr oj eto: T I B Dat abas e Equivalente ao componente T Databas e. Ex ecuta a ins tr ução RollB ack. a conex ao s er á des feita. Ocor r e ao pedido de conex ão. ex ecuta o método S tar tT r ans action no s er vidor . Ex ecuta a ins tr ução RollB ack. e r ealiza a conex ão ao banco.s e uma br eve des cr ição dos pr incipais componentes da palheta. O componente I B T r ans action r epr es enta a ins tância da tr ans ação atual e s implifica muito o contr ole de tr ans ações . T aCom m i t R et ai n i n g . S e o tempo for ultr apas s ado e o s er vidor não r es ponder . ou s ej a quando nenhum comando for mais enviado par a o s er vidor . Repr es enta a ins tância do banco de dados da aplicação. Ao definir alguma r otina nes te evento. Ocor r e ao pedido de tér mino da conex ão. I ndica um obj eto T I B T r an s act i on como obj eto de tr ans ação D ef au l t . T I B T r ans act i on Um dos componentes mais inter es s antes da nova palheta. T aCom m i t . ou em T hr eads independentes . Confir ma a tr ans ação e mantém o h an dl e aber to. . Com es te obj eto. DefaultDatabas e I dleT imer I ndica a ins tância do banco de dados no qual a tr ans ação s er é iniciada. S e T r u e. Es pecifica quanto tempo o cliente ir á es per ar cas o o s er vidor não envie nenhuma r es pos ta. I ndica qual s er a o metodo ex ecutado quando a aplicacao ex ceder o tempo de idle time out. Ocor r e enquanto o cliente es per a por uma r es pos ta do s er vidor . Principais Propriedades: Active DefaultAction Quando T r ue. o obj eto pedir á nome e s enha ao us uár io. atr avés da pr opr iedade Connected. automaticamente a j anela de l ogi n não s er á ex ibida e o nome e a s enha dever ão s er pas s ados via código. Es te evento pode s er us ado par a s ubtituir o pedido de u s er n am e e pas s w or d do obj eto. inicia a conex ão com o s er vidor . S eus pos s iveis valor es s ão: T aR ol l back .0 ou s uper ior do I nter bas e. os dados per manecem na tela. T aR ol l backR et ai n i n g . O tempo começa a s er contado a par tir que nenhuma ins tr ução for enviada par a o s er vidor . I ndica quais s er ão as ações monitor adas pelo obj eto T I B S QL Mon i t or . Ocor r e após a conex ão s er ter minada.Del phi 5 C omponentes dapalhetaInterbase A s eguir encontr a. Nome do ar quivo de banco de dados . Nes te cas o.

Os demais eventos e metodos s ão os mes mos do obj eto T UpdateS QL. que r epr es enta a ins tância do banco de dados Nome da pr ocedur e ar mazenada. O obj eto UpdateS QL gar ante maior per for mance par a editar uma tabela. Equivalente ao obj eto T S tor edPr oc. os dados per manecem na tela. da palheta DataAcces s . Define a ins tr ução S QL a s er ex ecutada quando algum r egis tr o for deletado. Nes te cas o. pois a quer y tr abalha em modo ReadOnly. Par a utilizar o obj eto T Quer y como um obj eto de edição. que r epr es enta a ins tância do banco de dados . Com es te obj eto. Nome da tabela dentr o do banco de dados . Rettor na a mens agems de er r o bas eado no ‘E r r or Code’ pas s ado como par âmetr o. que r epr es entar á a tr ans ação ativa par a as ações ex ecutadas atr avés des te obj eto. Edit ou Delete. Código S QL a s er enviado par a o s er vidor . Pr aticamente toda a linguagem S QL(DDL/DML) s upor tada pelo banco de dados pode s er utilizada atr avés des te obj eto. É r ecomendavel o us o do obj eto T I B Quer y. O us o do obj eto T I B T able apr es enta des vantagens em r elação ao us o do obj eto T I B Quer y. I nicia a tr ans ação. T I B U pdat eS QL Per mite configur ar o obj eto T I B Quer y ReadOnly par a tr abalhar com Live Res ult S ets . T I B Quer y Repr es enta uma conex ão S QL com o banco de dados . Equivalente ao obj eto T T Able da palheta DataAcces s . Obj eto T I B T r ans action. Obj eto T I B D at abas e. Os demais eventos e métodos s ão os mes mos do obj eto T S tor edPr oc.Del phi 5 Rollback RollbackRetaining S tar tT r ans action Call Cancela a tr ans ação atual. Define a ins tr ução S QL a s er ex ecutada quando o método Refr es h for ex ecutado. Principais Propriedades DataB as e S tor edPr ocName Obj eto T I B Databas e. Principais Propriedades Databas e S QL T r ans action Obj eto T I B Databas e. que r epr es entar a a tr ans ação ativa par a as ações ex ecutadas atr avés des te obj eto. Principais Propriedades Active Databas e T ableName T r ans action Abr e a conex ão com a tabela. T I B T abl e Repr es enta uma conex ão com alguma tabela do banco de dados . da palheta DataAcces s . Cancela a tr ans ação e mantém o h an dl e aber to. e r ecomendável o s eu us o j untamente com o obj eto T UpdateS QL. vis to que es te componente envia uma quantidade de ins tr ução muito maior ao s er vidor . da palheta DataAcces s . Obj eto T I B T r an s act i on . . é pos s ível definir ins tr uções S QL par a cada método Append. Principais Propriedades I ns er tS QL ModifyS QL DeleteS QL Refr es hS QL Define a ins tr ução S QL a s er ex ecutada quando o método Append for chamado. Define a ins tr ução S QL a s er ex ecutada quando a tabela for editada. Os demais métodos e eventos s ão os mes mos encontr ados no obj eto T T able. Os demais eventos e métodos des te obj eto s ão os mes mos encontr ados no obj eto T Quer y. Dis ponível apenas a par tir da ver s ão 6 do I nter bas e. da palheta DataAcces s . T I B S t or edP r oc Per mite ex ecutar uma pr ocedur e ar mazenada no s er vidor .

I ns tr ução S QL que s er á ex ecutada quando algum r egis tr o for ins er ido. Em contr apar tida. I ns tr ução S QL que s er á ex ecutada quando algum r egis tr o for alter ado. e aloca o mínimo de r ecur s os pos s íveis . É r ecomendável o s eu us o em oper ações que ex ij am uma r ápida per for mance. S QL T r ans action Principais Eventos OnS QLchanging Ocor r e quando a ins tr ução S QL é modificada. é que es te apr es enta a maior per for mance de ex ecução. s etar es ta pr opr iedade par a T r ue ir á pr evenir o obj eto de tentar s ubs tituir o par ametr o da ins tr ução CREAT E PROCEDURE por um valor da pr opr iedade Par ams . Principais Propriedades Active B uffer Chunks Databas e DeleteS QL I ns er tS QL ModifyS QL Refr es hS QL S electS QL UpdateRecor dT ypes I ndica s e a quer y s er a aber ta. S e T r ue. Ocor r e após a liber ação dos handle’s alocados pelo obj eto T I B T r ans action. ter minadas com o metodo Commit ou RollB ack. I ns tr ução S QL que s er á ex ecutada quando algum r egis tr o for deletado. pois o obj eto T Quer y pos s ui todos os s eus r ecur s os . es te obj eto não ofer ece inter face par a conex ão com obj etos DataContr ol – ele apenas ex ecuta as ins tr uções . o que s ignifica que os r egis tr os atuais e ins er idos es tar ão vis íveis . S e T r ue. pai de vár ios componentes como T T able e T Quer y. . como por ex emplo. Os métodos CommitRetaining e RollbackRetaining não s ão captur ados por es te evento. Ocor r e após a liber ação dos handle’s alocados pelo obj eto T I B Databas e. S ua utuilização não é es cencial. r otinas de backup. I ns tr ução S QL que s er á ex ecutada quando a quer y for aber ta. s e a ins tr ução cr iar uma S tor ed Pr ocedur e com um par âmetr o. Ocor r e antes do tér mino da conex ão com o banco de dados . B efor eDatabas eDis connect OnB efor eT r ans actionEnd Databas eFr ee T r ans actionFr ee Os demais métodos des te obj eto s ão mes mos encontr ados na clas s e T DataS et. as pr opr iedades cus Modified. Principais Eventos OnAfter Databas eDis connect OnAfter T r ans actionEnd Ocor r e após o tér mino da conex ão com o banco de dados . I ndica quais r egis tr os es tar ão vis íveis quando a pr opr iedade CachedUpdates es tiver s etada par a T r ue. Ocor r e antes da ex ecução de um comando Commit ou RollB ack. Ocor r e após a ex ecução de uma tr ans ação (com COMMI T ou ROLLB ACK ). Numer o de r egis tr os no buffer . Obj eto T I B Databas e. Principais Propriedades Databas e GoT oFir s tRecor dOnEx ecute Par amCheck Obj eto T I B Databas e que r epr es enta o banco de dados atual. ou s ej a. I ns tr ução que s er á ex ecutada. o obj eto ir á pr evenir de não mis tur ar os par âmetr os definidos na pr opr iedade S QL com os par âmetr os contidos dentr o da ins tr ução S QL. Por default.Del phi 5 T I B Dat aS et Es te componente é o obj eto ances tr al par a os componentes de aces s o a dados da palheta I nter bas e. S ua difer enca par a com o obj eto T Quer y. Es te evento captur a apenas as tr ans acoes “har d”. vai par a o pr imeir o r egis tr o após a ex ecução de uma intr ução S QL Live Res ult S et Es ta pr opr iedade deve s er T r ue quando o obj eto T I B S QL pos s uir uma ins tr ução S QL DDL com par âmetr os . R ai s eE r r or : B ool ean ) : I S C_ S T AT U S . ou s ej a. Por ex emplo. Es te componente também pode s er utilizado par a cr iação de aplicacoes DS QL (Dynamic S QL). aplicações em que o pr ópr io us uár io cr ia as intr uções S QL. que r epr es enta o banco de dados atual. Principais Metodos Call F u n ct i on Cal l ( E r r Code: I S C_ S T AT U S . cus I ns er ted. e cus Unmodified es tao s etadas par a T r ue. Obj eto T I B T r ans action que ir á r epr es entar a tr ans ação atual. T I B S QL Componente par a ex ecutar ins tr uções S QL. I ns tr ução S QL que s er á ex ecutada quando o metodo Refr es h for chamado.

Retor na o númer o de ver s ão do banco de dados . Retor na o tipo I B XS QL D A atualmente alocado pela quer y. Ger a uma ex ceção quando a quer y es tá fechada. Ger a uma ex ceção s e a quer y não pos s uir uma cláus ula S QL válida. a quantidade de memór ia utilizada des de a pr imeir a conex ão r ealizada I ndica s e es paço r es er vado par a backup de r egis tr os modificados no banco I ndica o númer o de bu f f er s alocados Retor na a par te s uper ior da ver s ão do OD S Retor na a par te infer ior da ver s ão do OD S Retor na o númer o de byt es alocados por página Retor na o númer o de P u r gi n gs r ealizados Retor na o númer o de leitur as r ealizadas atr avés de índices . . Retor na o nome do ar quivo de banco de dados . Retor na o nome do s ite do banco de dados . Elimina os handles ger ados pela quer y. 0 par a as s íncr ono e 1 par a s ícr ono. Retor na o númer o de gr avações efetuadas no bu f f er Retor na. Obj eto T I B D at abas e. Retor na o númer o de r egis tr os r emovidos . Utilizado par a aces s ar um campo da tabela atr avés de s eu nome. configur ar s ua pr opr iedade Databas e par a o obj eto T I B Databas e cor r es pondente. Retor na o númer o de D el et es ex ecutados des de a última conex ão com o s er vidor . f u n ct i on Cu r r en t : T I B XS QL D A. Retor na o númer o de F et ch s r ealizados . I ndica o númer o de vezes que um r egis tr o do banco de dados foi r emovido.Del phi 5 Retor na a mens agem de er r o cor r es pondente ao código de er r o. Retor na o númer o de implementação do banco de dados . Principais Propriedades: Allocation B ackoutCount B as eLevel Cur r entMemor y DataB as e DB Filename DbI mplementationClas s DbI mplementationNo DbS iteName DbS QLDialect DeleteCount Ex pungeCount Fetches For cedWr ites I ns er tCount Mar ks Max Memor y NoRes er ve NumB uffer s ODS Maj or Ver s ion ODS Minor Ver s ion PageS ize Pur geCount ReadI dx Count ReadOnly Reads ReadS eqCount S weepI nter val UpdateCount Retor na o númer o de páginas alocadas . T I B Dat abas eI nfo Retor na var ias infor mações a r es peito do banco de dados es pecificado. e captur ar os valor es de s uas pr opr iedades . que indicar á o banco de dados pr ovedor das infor mações . Retor na o númer o de clas s e do banco de dados . CheckClos ed CheckOpen CheckValidS tatement Clos e Cur r ent Ger a uma ex ceção quando a quer y es tá aber ta. I ndica quando o banco de dados é ou não r ead-on l y Retor na o númer o de páginas lidas no banco Retor na o númer o de leitur as s eqüenciais r ealizadas nas tabelas do banco Retor na o númer o de tr ans ações confir madas entr e “ s w eeps ” Retor na o numer o de U pdat es ex ecutados des des a última conex ão com o s er vidor . I ndica como a gr avação de dados es tá s endo r ealizada. T oda ex ecução de uma ins tr ução S QL cr ia uma ins tância des te R ecor d . Retor na o númer o de I n s er t s ex ecutados des de a última conex ão com o s er vidor . Retor na o númer o S QL D i al ect atualmente utilizado pelo s er vidor . Move o pon t ei r o par a o pr óx imo r egis tr o. Es te des cr iptor r epr es enta uma ár ea de tr ans fer ência de dados entr e o banco de dados e aplicação cliente. Retor na a quantidade de memór ia atualmente alocada pelo s er vidor . Utilizado antes de pas s ar par âmetr os par a o obj eto. Per mite pr epar ar uma Quer y par a ex ecução. B as ta ins er ir um componente T I B Databas eI nfo. Ex ecQuer y FieldB yName Nex t Pr epar e Ex ecuta a quer y S QL. em byt es .

indicando quais s er ão os comandos filtr ados pelo obj eto I B S QLmonitor . Es te obj eto é muito útil par a cr iar telas de r efr es h automático. Por ex emplo. UPDAT E ou DELET E. Nome dos eventos que s er ão r ecebidos pelo obj eto.Del phi 5 Us er Names Ver s ion Wr ites Retor na em uma lis ta de S t r i n g . S e T r ue. Es te obj eto r oda em um T hr ead s epar ado. que r epr es enta o banco de dados atual. Os " componentes QuickRepor t" . Par a r etor nar e r eceber deter minado evento. bas ta ins er ir um componente I B S QLMonitor na aplicação(ou em outr o aplicativo). os us uár ios conectados no banco de dados . Não ex is tem pr opr iedades a s er em configur adas . Principais Eventos OnEventAler t Ocor r e quando algum evento é r ecebido pelo obj eto. begin Lis tB ox 1. o des envolvedor pr ecis a us ar es te componente par a monitor ar e otimizar a aplicação cliente.I B S QLMonitor 1S QL(EventT ex t: S tr ing). S etar o par âmetr o CancelAler ts par a T r ue. por ex emplo. indicando o comando enviando par a o s er vidor . e as aplicações que r egis tr ar em os eventos atr avés do obj eto T I B E vents . Nem todas as oper ações envolvendo obj etos da VCL poder ão s er ex ecutadas nes te evento. par a a cr iação de r elatór ios par a impr es s ão. Principais Metodos CancelEvents QueueEvents Regis ter Events UnRegis ter Events Cancela o r ecebimento dos eventos pendentes . Por ex emplo. e o s oftwar e poder ia s er pr ogr amado par a dar um Refr es h em s uas Quer y’s aber tas . do tipo s tr ing. vis to que ele r oda em um T hr ead s epar ado. I ndica ao obj eto par a iniciar o r ecebimento dos eventos . Es tes eventos podem s er pr ogr amados em T r igger s ou S tor ed Pr ocedur es . Regis tr a os eventos lis tados na pr opr iedade E ven t s . O conceito de eventos no I nter bas e é muito inter es s ante: o des envolvedor pode pr ogr amar eventos no banco de dados . Component es Qui ck R epor t O Delphi ofer ece o conj unto de componentes QuickRepor t. Como o aplicativo S QL Monitor não pode monitor ar as intr uções S QL enviadas pelos componentes I nter bas e(pois tr abalha no nível da camada B DE). O us o des te obj eto é muito s imples . T I B E vent s Componente par a utilizar os “eventos ” do I nter bas e.I tems . e não degr ada a per for mance do s is tema. a aplicação poder ia ter um Lis tB ox par a r eceber as ins tr uções : pr ocedur e T For m1. indica que o evento r ecebido dever á s er ignor ado. As ins tr uções S QL podem s er captur adas atr avés do evento OnS QL do obj eto. Após . todos os comando enviados ao s er vidor (definidos na pr opr iedade T r aceFlags do obj eto Databas e) s er iam ex ibidos no Lis tB ox . T odas as máquinas clientes ir iam r eceber es te evento. o us uár io deve configur ar a pr opr iedade T r aceFlags do obj eto Databas e da aplicação cliente. . r eceber ão uma notificação toda vez que algum r egis tr o for ins er ido ou deletado. bas ta chamar o método QueueEvents . T I B S QL Moni t or Per mite cr iar um log de todas as oper ações e ins tr uções S QL que for am enviadas ao s er vidor .Add(EventT ex t). Es te evento pas s a um par âmetr o EventT ex t. Principais Propriedades Databas e Events Regis ter ed Obj eto T I B Databas e. indica que o obj eto es tar á ativo. bas eados em bancos de dados . que s er ão ex ecutados em ins tr uções como I NS E RT . como os chamar emos . end. cr iando o efeito de Refr es h automático s em caus ar Over head de CPU. Cancela o r ecebimento dos eventos lis tados na pr opr iedade E ven t s . Es te método j á ex ecuta o método Qu eu eE ven t s . um evento poder ia s er cr iado toda vez que um r egis tr o for ins er ido na tabela. Com es te código. Retor na a ver s ão do I n t er bas e. Retor na o númer o de páginas de dados es cr itas no banco. es tão localizados na página QRepor t da paleta de componentes .

As tr ês bandas mais impor tantes s ão " T itle" . Na banda " T itle" . Ver emos também detalhes s obr e os componentes QuickRepor t mais impor tantes . adicione um componente QRLabel e alter e s ua pr opr iedade Caption par a o título do r elatór io. Cada tipo de banda s e compor ta de for ma dis tinta. s e r epetem em todas as páginas . Par a cr iar um r elatór io s imples (do tipo " Lis tagem" ). cr ie um novo for mulár io e adicione a ele um componente QuickRep.Del phi 5 O componentes do Q s uickReport Relatór ios cr iados com os componentes QuickRepor t s ão bas eados em bandas . s ão ofer ecidos vár ios r ecur s os par a a for matação detalhada e o pos icionamento pr ecis o dos componentes . como títulos de coluna. Nas bandas podem s er adicionados componentes impr imíveis . outr as s ão ex ibidas apenas uma vez no r elatór io. alter ando a s ua pr opr iedade DataS et. Há também bandas " inteligentes " que ofer ecem r ecur s os par a o agr upamento de dados .Has ColumnHeader e B ands . Como a maior ia dos componentes QuickRepor t s ão impr imíveis . por ex emplo. Cr i ando um r el at ór i o s i mpl es Apr es entamos a s eguir os pas s os neces s ár ios par a a cr iação um r elatór io s imples . " Column Header " e " Detail" . No r es tante des te capítulo ver emos como cr iar dois tipos de r elatór ios comuns : lis tagens e r elatór ios com agr upamento. B ands .Has T itle. Algumas bandas . Alter e as pr opr iedades B ands . valor es de campos de uma tabela. (Você pode adicionar um T able ou Quer y ao for mulár io do r elatór io) Defina as bandas que devem s er ex ibidas no r elatór io (pr opr iedade B ands ).Has Detail par a T r ue par a adicionar es tas bandas ao r elatór io. (Vej a a figur a abaix o). que lis ta os r egis tr os de uma tabela ou quer y. Alter e também a pr opr iedade Font par a des tacar o título. númer os de páginas e outr os . Há mais de dez tipos de bandas difer entes . Ligue o componente QuickRep a um DataS et (T able ou Quer y). . por ex emplo.

Es ta banda é r epetida par a cada r egis tr o do DataS et ligado ao componente QuickRep). alter e DataS et par a " T abPr odutos " e DataField par a " Des cr icao" . es tilos e cor es de fonte. (A banda " Detail" é a mais impor tante do r elatór io. o nome do campo pas s a a s er ex ibido dentr o do componente (vej a a figur a a s eguir ). Na banda " Detail" . alter ando s uas pr opr iedades DataS et e DataField. Ligue cada componente QRDB T ex t aos campos adequados . Par a vis ualizar o r elatór io em tempo de des envolvimento. Quando um componente QRDB T ex t é ligado a um campo de um DataS et.vis ualização do r elatór io: . clique com o botão dir eito no componente QuickRep e es colha o comando " Pr eview" . Aplique os for matos neces s ár ios aos componentes e às bandas . Alter e a pr opr iedade Caption. (A banda " ColumnHeader " é r epetida a cada nova página. como antes . adicione componentes QRDB T ex t par a cada campo do DataS et a s er ex ibido no r elatór io. Por ex emplo.Del phi 5 Na banda " Column Header " . É mos tr ada a j anela " Pr int pr eview" . par a definir o tex to a s er ex ibido no componente. par a ex ibir o campo " Des cr icao" de uma tabela chamada " T abPr odutos " . logo depois do título do r elatór io). Us e a pr opr iedade Fr ame par a definir linhas de contor no. e a pr opr iedade Font par a definir tipos . com uma pr é. adicione componentes QRLabel par a os títulos das colunas que des ej a ex ibir no r elatór io.

Nes ta banda é ger almente colocado tex to es tático – como nomes de campos – us ando o componente QR L abel . e alter e par a T r ue a pr opr iedade " Has . A banda T i t l e (" T ítulo" ) é us ada par a ex ibir o título do r elatór io.Las tPageFooter do componente Qu i ckR ep . O DataS et pode s er adicionado ao mes mo for mulár io do r elatór io. Font. Es te componente deve s er adicionado a um for mulár io vazio e ligado a um DataS et (T able ou Quer y).. Fr ame e Page). o título do r elatór io. pos s ivelmente. D et ai l P ageF oot er S u m m ar y T it le Alterando a formatação geral do relatório O componente QuickRep ofer ece muitas opções de for matação. e é pos icionada logo depois do cabeçalho da página (s e es te ex is tir ). s ão us ados os métodos Pr eview e Pr int. Par a que a banda PageFooter não apar eça na última página do r elatór io. pr incipalmente os componentes QR D B T ex t . s ão colocados componentes com aces s o a dados . Vej a o que pode s er alter ado em cada s eção des ta caix a: Na s eção Paper s ize.s e adicionar ou r emover os s eis tipos de bandas mais us ados .Del phi 5 O Component e Qui ck R ep O componente QuickRep é o componente mais impor tante em um r elatór io. Clique com o botão dir eito no componente QuickRep e es colha o comando Repor t S ettings (ou clique duas vezes no componente) par a ex ibir a s eguinte a caix a de diálogo ilus tr ada a s eguir . ou us ando o comando Repor t S ettings dis ponível no menu de atalho do componente. e a or ientação (r etr ato ou pais agem). alter e par a Fals e a pr opr iedade Options . por ex emplo. Par a r ealizar os cálculos neces s ár ios nes s a banda. A banda P ageF oot er (" Rodapé" ) é pos icionada na ex tr emidade de baix o de cada página do r elatór io (ex ceto. como ver emos adiante. Es ta banda é r epetida par a cada r egis tr o. que devem s er r epetidas em todas as páginas ." cor r es pondente ao tipo de banda des ej ado (vej a a figur a a s eguir ). as mar gens das páginas . na última). Es ta banda é ex ibida logo depois da última banda D et ai l (com os dados do último r egis tr o). por ex emplo. a data ou a hor a. P ageH eader A banda P ageH eader (" Cabeçalho" ) é pos icionada na ex tr emidade de cima de cada página do r elatór io (ex ceto. Es ta banda apar ece apenas uma vez . s ão us ados componentes QR E x pr . você pode alter ar o tipo e o tamanho do papel. como s omas . na pr imeir a página). Es ta banda s e r epete em todas as páginas do for mulár io. Par a ex ibir ou impr imir um r elatór io. alter e par a F al s e a pr opr iedade Opt i on s . Bandas e tipos de bandas Com a pr opr iedade B ands do componente QuickRep. A banda D et ai l (" Detalhe" ) é o " cor ação" do r elatór io. em milímetr os (ou . Par a adicionar uma banda.s e colocar nes s a banda. no Obj ect I ns pector . pos s ivelmente. médias . a data. ou colocado em um DataModule s epar ado. do componente QuickRep. Nes ta banda. A banda S u m m ar y (" Res umo" ) é us ada ger almente par a ex ibir dados agr egados . Par a que a banda P ageH eader não apar eça na pr imeir a página do r elatór io.F i r s t P ageH eader do componente Qu i ckR ep .. clique duas vezes na pr opr iedade B ands . ou outr as infor mações r elevantes . O for mulár io onde é adicionado o componente QuickRep pas s a a s er apenas um " r ecipiente" par a o r elatór io – es s e for mulár io não deve s er ex ibido dir etamente. na pr imeir a página. ou contagens . que podem s er alter adas atr avés do Obj ect I ns pector (pr opr iedades B ands . Nes ta banda podem s er colocados . Na s eção Mar gins . pode. logo abaix o da banda T i t l e. o númer o da página. Pode. S egue uma des cr ição dos s eis tipos de bandas que podem s er adicionados us ando a pr opr iedade B ands : B an da Col u m n H eader D es cr i ção A banda Col u m n H eader é us ada par a os títulos das colunas do r elatór io.

(S e aplica a todas as quatr o bor das ). A fonte e o tamanho es colhidos aqui têm efeito s obr e todos os componentes do r elatór io. é pos s ível acr es centar ou r emover bandas do r elatór io (ativando ou des ativando as opções cor r es pondentes ). etc. Dr awT op: Deter minam quais bor das s er ão ex ibidas – abaix o.Del phi 5 em outr a unidade. tr acej ado. B ands . como as que deter minam a altur a da banda ou linhas de contor no. B or das acima. r es pectivamente.s e pr imeir o s elecioná. e com vár ias cor es e es pes s ur as podem s er definidas .s e a alter ar a fonte e o tamanho de fonte us ados como padr ão no for mulár io. Es s a pr opr iedade pode s er alter ada de for ma inter ativa no r elatór io – clique na banda e ar r as te os pequenos quadr ados que apar ecem acima e abaix o da banda. S tyle: o es tilo da linha das bor das (s ólido. pode. podem s er alter adas com pr ecis ão. A pr opr iedade Fr ame deter mina a ex ibição de bor das em volta da banda de vár ios for matos e cor es . à es quer da. à es quer da ou à dir eita. As opções s ão bas tante intuitivas : Color : A cor das bor das . na unidade de medida atual. por ex emplo. Dr awB ottom. (S e aplica a todas as quatr o bor das ). Pode. es pecificada na s eção Other ).s e definir bor das par a as páginas do r elatór io.s e também aj us tar pr ecis amente a altur a de cada banda. como a lar gur a e a altur a. Par a alter ar as pr opr iedades de uma banda. Na última s eção. Dr awLeft. QRDB T ex t. Propriedades comuns a todas as bandas Há vár ias pr opr iedades comuns a todas as bandas .) Width: a es pes s ur a das bor das . ex ceto aqueles que tiver am s uas fontes alter adas dir etamente. Dr awRight. O númer o de colunas e o es paçamento entr e colunas do r elatór io também podem s er alter ados . (Aplicável s omente em r elatór ios com mais de uma coluna). A pr opr iedade Height deter mina a altur a da banda. . em volta das páginas do r elatór io. (A cor e a es pes s ur a valem par a todas as bor das ). à dir eita e acima. A unidade de medida us ada no r elatór io também pode s er alter ada – a unidade es colhida deter mina como s ão medidas vár ias pr opr iedades dos componentes do for mulár io. Na s eção Page Fr ame. pontilhado. Vej a a s eguir uma des cr ição das pr opr iedade mais impor tantes . P r opr i edade For ceNewPage For ceNewColumn D es cr i ção Alter e a pr opr iedade For ceNewPage par a T r ue. deve.la (nor malmente) com um clique. par a que s ej a iniciada uma nova página cada vez que a banda s elecionada é impr es s a. pode. Alter e a pr opr iedade For ceNewColumn par a T r ue. par a que s ej a iniciada uma nova coluna cada vez que a banda s elecionada é impr es s a. abaix o. Na s eção Other . QRS ys Data e QREx pr . Height Fr ame O utros componentes importantes Ver emos agor a mais alguns detalhes impor tantes s obr e os quatr o componentes mais us ados em r elatór ios : QRLabel.

como s omas ou médias . por ex emplo. A pr opr iedade DataField deter mina o campo da T able ou Quer y. qr s T ime. s ão as mes mas . o QRLabel s er á alinhado pela ex tr emidade dir eita da banda. como a data. cuj o conteúdo é ex ibido no componente.Pr eco) AVERAGE(Pr eco* Quantidade) I F(Pr eco = 0. s ó faz s entido quando Wor dWr ap for T r ue. há mais duas pr opr iedades impor tantes : DataS et e DataField. . tamanho e cor ). a hor a. qr s DateT ime qr s PageNumber qr s Repor tT itle Par a mos tr ar . Pr aticamente todas as pr opr iedades do componente QRLabel s e aplicam também ao componente QRDB T ex t. Vej a alguns valor es que podem s er atr ibuídos à pr opr iedade Data: Alter e Data par a. A pr opr iedade DataS et deter mina o T able ou Quer y ligado ao componente QRDB T ex t. C riando relatórios comagrupamento Relatór ios com agr upamento s ão muito comuns . na maior ia dos aplicativos com aces s o a bancos de dados . O alinhamento de um componente QRLabel pode s er alter ado us ando as pr opr iedade Alignment e AlignT oB and. do componente QRLabel. A pr opr iedade Ex pr es s ion deter mina a oper ação r ealizada. Ex emplos des s e tipo de r elatór io s ão " Funcionár ios por loj a" . es tilo. A data. é pos s ível r ealizar cálculos . S e AlignT oB and for T r ue e Alignment for taRightJus tify. Alignment alter a o alinhamento com r elação ao tamanho do componente. ou outr as oper ações no r elatór io. mas podem s er colocados em qualquer tipo de banda. 'For a de es toque') A pr opr iedade Ex pr es s ion pode s er alter ada dir etamente. um r elatór io (em um aplicativo de contr ole de es toque) que lis ta o es toque agr upado por loj a. AutoS tr etch faz com que a altur a do componente s ej a aj us tada automaticamente (par a tex tos com mais de uma linha).Del phi 5 O Component e QR L abel O componente QRLabel é us ado par a tex tos es táticos . e taCenter pelo centr o. Wor dWr ap faz com que tex tos longos s ej am quebr ados em vár ias linhas . taRightJus tify pela dir eita. A pr opr iedade AlignT oB and faz com que o alinhamento s ej a feito em r elação à banda. o aces s o a dados é r ealizado dir etamente e não atr avés de um componente DataS our ce.. T r ês pr opr iedades r elacionadas deter minam o tamanho e a or ganização do tex to ex ibido no componente QRLabel.. a hor a. Es te componente é muito s emelhante ao componente QRLabel – as pr opr iedades de for matação. Us ar emos um componente Quer y par a obter os dados neces s ár ios e par a gar antir a or denação cor r eta (por loj a). Note que difer entemente dos componentes Data Contr ols (como o DB T ex t e o DB Edit). etc. A pr opr iedade Caption deter mina o tex to que s er á ex ibido no componente. O efeito des s as tr ês pr opr iedades às vezes depende do valor das outr as duas . AutoS tr etch. Além des s as . O título do r elatór io (ex tr aído da pr opr iedade Repor tT itle do componente QuickRep). Os r elatór ios com agr upamento s ão cr iados com os mes mos componentes apr es entados nas s eções anter ior es . Vej a algumas ex pr es s ões válidas : Pr eco* Quantidade S UM(Pr eco) MI N(T abEs toque. Ver emos como cr iar um r elatór io com agr upamento atr avés de um ex emplo. O Component e QR DB T ex t O componente QRDB T ex t é uma ver s ão. O Component e QR S ys Dat a O componente QRS ys Data é us ado par a ex ibir infor mações úteis . O númer o da página.. " Médico por es pecialização" . AutoS ize faz com que o QRLabel alter e s ua lar gur a automaticamente. com aces s o a bancos de dados . 'Em es toque'. A s intax e das ex pr es s ões s egue uma s intax e par ecida com a da linguagem S QL. " Pr ofes s or es por depar tamento" . Podem s er calculados totais ou médias de um campo. por ex emplo. ou a data e hor a atuais . Os componentes QREx pr s ão fr eqüentemente colocados em bandas do tipo " S ummar y" . O Component e QR E x pr Com o componente QREx pr . ou atr avés do " Ex pr es s ion Wizar d" (clique duas vezes ao lado do nome da pr opr iedade par a abr i es te " Wizar d" ). de acor do com o compr imento do tex to. como títulos ou nomes de campos . A pr opr iedade Data deter mina a infor mação ex ibida no componente. ou o título do r elatór io. A pr opr iedade Font define as opções de fonte (fonte. qr s Date. r es pectivamente. por ex emplo. par a r ealizar cálculos agr egados .Quantidade) MAX(T abPr odutos .. Apenas um novo componente é neces s ár io: um tipo de banda es pecial chamado QRGr oup. da for ma us ual: taLeftJus tify alinha pela es quer da. por ex emplo.

Adicione um componente Quer y e alter e a pr opr iedade S QL par a a s eguinte cons ulta S QL: S ELECT Nome. a par tir da paleta de componentes .CodLoj a AND Pr odutos .Codigo = Es toque. adicione outr o QRDB T ex t e ligue. Pr odutos WHERE Loj as . A ilus tr ação a s eguir mos tr a os r es ultados das mudanças . Pr eco* Quantidade AS T otal FROM Loj as . us ando o comando Pr eview. adicione componentes QRDB T ex t par a cada um dos campos a s er em lis tados . .Dr awB ottom da banda par a T r ue e a pr opr iedade Width par a 2. Na banda " Gr oup Header " . Alter e também a pr opr iedade Fr ame. I s s o per mite tes tar o r elatór io em tempo de des envolvimento. Ligue o componente QuickRep ao componente Quer y (pr opr iedade DataS et). us ando a pr opr iedade B ands do componente QuickRep.CodPr oduto ORDER B Y Nome Vej a a es tr utur a das tabelas us adas na cons ulta: Alter e par a T r ue a pr opr iedade Active do componente Quer y. Es toque. Adicione também uma banda QRGr oup. Quantidade. como na ilus tr ação a s eguir : Na banda " Detail" . ao lado de " Loj a" . Des cr icao.Codigo = Es toque.o ao campo " Nome" da Quer y (o nome da loj a).Del phi 5 Faça o s eguinte: Cr ie um novo for mulár io e adicione a ele um componente QuickRep. Ligue cada um dos componentes à Quer y (alter ando a pr opr iedade DataS et) e alter e as s uas pr opr iedades DataField par a os nomes dos campos . Adicione uma banda " Detail" . Pr eco. Na banda " Gr oup Header " (o componente QRGr oup) adicione componentes QRLabel.

Es s e comando.Del phi 5 Par a r ealizar o agr upamento automático. Relatór ios podem s er também ex ibidos e – o que é mais impor tante – impr es s os .B tPr eviaClick(S ender : T Obj ect).vis ualização do r elatór io em um for mulár io chamado " RelVendas " : pr ocedur e T For mRelator ios . clar amente deve s er chamado a par tir de um comando de menu. us e o método Pr eview do componente QuickRep do r elatór io. com alguns dados de amos tr a: I m pr i m in do e pr e-vi s u al iz an do r el at ór i os Até agor a vimos apenas como ex ibir r elatór ios em tempo de des envolvimento. Finalmente. begin RelVendas . em um for mulár io s epar ado (lembr e. par a tes tar o r elatór io.Pr eview.vis ualizar um r elatór io em tempo de ex ecução. I s s o faz com que os dados s ej am agr upados por loj a. clique nele com o botão dir eito e es colha o comando Pr eview. ou de algum outr o componente. alter e a pr opr iedade Ex pr es s ion da banda " Gr oup Header " par a " Nome" (s em as as pas ). É tudo muito s imples . em tempo de ex ecução. Par a pr e. O código a s eguir mos tr a a pr e. A ilus tr ação a s eguir mos tr a o r elatór io ger ado.QuickRep1. .s e que o for mulár io que contém o r elatór io não deve s er ex ibido). us ando o comando Pr eview.

Já ao utilizar mos o obj eto COM dir etamente do aplicativo calculador a. P al het a S er ver s Es ta palheta per mite uma conex ão COM(Components Obj ect Model) com aplicativos da família Office. e a r eutilização de funções pode s er cons eguida de uma maneir a muito pr ática. Pr imar iamente. poder iamos pr os s eguir e cr iar mais quatr o: fator ial. T er íamos uma família de obj etos COM par ecida com a ilus tr ação abaix o: Soma Multiplicaçã o Subtração Divisão Pas s o 1: Cr iação dos obj etos bás icos . por centual. dever íamos cons tr uir quatr o obj etos COM: um par a cada oper ação matemática bás ica (s omar . pois a DLL s er ia car r egada uma vez par a cada pr oces s o. MS E x cel. dever íamos nos pr eocupar em atualizar tanto a DLL quanto a aplicação cliente. Pas s o 2: Cr iação de novos obj eto a par tir dos obj etos bas ícos . como no s eguinte código: pr ocedur e T For mPr incipal. A palheta S er ver s ofer ece a funcionalidade COM dos aplicativos da família Office. j á que cada pr oces s o cr ia uma ins tância completa da OCX em ques tão. atr avés de OLE Automation. A ar quitetur a COM s e bas eia em pequenos obj etos . Entendemos is to como: MS Wor d. por ém via código. podemos dizer que o Wor d e o Ex cel s ão. I s to tambem vale par a a OCX. O Contr ole des tes aplicativos j á es tavam dis poníveis no Delphi 4. A funcionalidade COM dos . mas não quer emos r ees cr ever o código. Nes ta vis ão. Outr o pr oblema s e r efer e a memór ia. que es tivés s emos cons tr uindo uma aplicação calculador a científica em C+ + . e ins talar o aplicativo apenas no s er vidor . Com a calculador a cr iada. Cer tamente ir emos pr ecis ar das funções imbutidas na calculador a. end. vis to que es ta pr ecis a de um header par a impor tar as funções .Del phi 5 end. a opção 3 ofer ece as vantagens : No cas o da DLL. além de ofer ecer mais poder ao des envolvedor . que podem s e conectar a outr os obj etos e for mar o aplicativo. Nes te cas o. mes mo que es tivés s emos utilizando apenas uma par te do todo). por ém. T er íamos tr ês opções : Fatorial Soma Multiplicação Subtração Divisão Percentual Cosseno Seno Cr iar uma DLL em C com as funções da calculador a ex por tadas . dever íamos apenas atualizar a calculador a no s er vidor . multiplicar e dividir ). s er á a tendência dos novos aplicativos par a Windows . ao atualizar alguma das funções do obj eto. no entanto que s e dê um nome mais s uges tivo a es s e componente (" Relator io" . MS Power Point. um gr ande conj unto de obj etos COM inter faceados e for necendo uma s olução integr ada. s e alguma função fos s e incluída. Es te obj etos podem s er aces s ados por obj etos COM de outr os aplicativos . begin RelVendas .Pr int. nada mais . a inter face COM é o mais novo padr ão da Micr os oft e. Podemos também ofer ece a calculador a como um obj eto dis tr ibuido (DCOM – Dis tr ibuted COM). As máquinas clientes ir iam s e conectar ao obj eto COM atr avés da LAN. MS Outlook e MS Acces s . e des ta for ma. Com es tes quatr o obj etos . Utilizar os obj etos COM do aplicativo calculador a dir etamente da aplicação DELPHI . diminuir .Relator ioVendas 1Click(S ender : T Obj ect). imaginemos agor a que iniciar emos a cons tr ução de um aplicativo contábil em Delphi. E impor tante notar que qualquer outr o aplicativo ou obj eto COM pode s er aces s ado atr avés do Delphi. por ex emplo). ter íamos maior facilidade par a manutenção. e não todo o aplicativo (a DLL e a OCX s er iam car r egadas por completo na memór ia. Recomenda.OCX contendo as funcoes da calculador a. s eno e cos s eno. Par a impr imir um r elatór io. Ms B r inder . com funcionalidade pr ópr ia.s e. Note que foi us ado o nome padr ão do componente QuickRep (" QuickRep1" ). na ver dade. j á que não pr ecis ar íamos declar ar “header s ” nas aplicações clientes . por ex emplo. Outr o ponto pos itivo s e deve ao fato de que apenas os obj etos neces s ár ios s er iam ins tanciados .QuickRep1. us e o método Pr int do componente QuickRep do r elatór io. Cr iar um obj eto .Vamos imaginar .

Data). Wor dDocument1.I tem(2). Wor dFont1. . a palavr a de indice 2 s er a s ubs tituida pela s tr ing B or land Delphi. I ns er indo uma figur a dentr o do ar quivo: var for mato : Wor d.Font).Activate.Content.Del phi 5 aplicativos Office é muito ex tens a. //cola a ar ea de tr ans fer encia dentr o do documento end. Abr indo um documento em br anco no Wor d .S etAs Handle(For mato. Wor dFont1.ConnectT o(Wor dDocument.B old: = 1.Palette).Content. digite o codigo: var T : WideS tr ing. //o tex to s er a ins er ido com a for matacao negr ito e italico End. begin T : = 'Clube Delphi'. Wor dDocument1.I ns er tAfter (t). S egue abaix o alguns ex emplos pr áticos s obr e o us o des ta palheta: I nicializando o Wor d . Data : T Handle. Em s eguida. Wor dApplication1.I ns er tAfter (t).Content. Palette: HPALET T E. Wor dDocument1.Wor ds . //Es te comando ir a ins er ir a s tr ing 'Clube Delphi' apos a s egunda palavr a Wor dDocument1.Vis ible : = T r ue. //copia o conteudo do obj eto image par a o clipboar d ClipB oar d. Alter ando a for matação de uma palavr a . S ubs tituindo uma palavr a .Data.com. I ns er indo tex to no meio de um ar quivo: var T : WideS tr ing.I ns ir a um obj eto T Wor dFont e um T Wor dDocument. end. begin T ex to : = 'Wor kS hop Delphi 5 Novos Eecur s os ' + chr (13)+ chr (10)+ 'www.S aveT oClipB oar dFor mat(For mato. begin Wor dFont1.Content. //Cr ia um novo documento I ns er indo tex to no final do ar quivo: var T ex to : WideS tr ing. end.I ns ir a um componente T Wor dApplication e utilize o codigo: Wor dApplication1.I tem(2).Pas te.clubedelphi. //Ex ibe o aplicativo Wor d (não e neces s ar io) Wor dDocument1.br '. Wor dDocument1.NewI ns tance.Wor ds . e ex ecute o metodo NewI ns tance: Wor dDocument1.I talic: = 1. e o obj etivo des ta apos tila não é o de s er uma r efer ência s obr e o as s unto.T ex t: = 'B or land Delphi'.Connect.Nes te cas o.I ns ir a um obj eto T Wor dDocument.Pictur e. begin I mage1.I ns er tAfter (t).

Cada í con e r epr es en t a um ar qui vo . r epr es entando o nome da aplicação. S elecione o obj eto AppletModule1 e alter e o s eu evento OnActivate: pr ocedur e T AppletModule1.Del phi 5 Cont r ol P anel Appl et Ar quivos . begin For m1. . end. atr avés do menu File. Um ar quivo CPL pos s ui a mes ma es tr utur a de um ar quivo ex ecutável.CP L .S howModal. l ocal iz ado n o di r et ór i o W i ndow s / S ys t em Vej amos como cr iar uma aplicação CPL: Vá no Obj ect Repos itor y e s elecione Contr ol Panel Application. S elecione algum ar quivo . Ar quivos CPL (Contr ol Panel Ex tens ion) nada mais s ão do que os aplicativos r econhecidos pelo Windows como conteúdo do Painel de Contr oles .AppletModuleActivate(S ender : T Obj ect. Alter e as pr opr iedades do obj eto AppletModule1 de acor do com a tabela abaix o: AppletI con Caption Help Í cone que s er á ex ibido no Painel de Contr ole.CPL agor a podem s er facilmente cr iados com o Delphi.I CO do dir etór io de imagens do Delphi. T ex to que s er á ex ibido na bar r a de s tatus do painel de contr ole. Digite “Aplicação de tes te”. por ém. T ex to que ir á apar ecer abaix o do ícone. New for m. s eu cabeçalho é difer ente. Digite T es te. Repar e que um obj eto T AppletModule s er á ex ibido: Cr ie agor a o for mulár io que s er á chamado pela aplicação. Data: I nteger ).

T ex to que ir á apar ecer abaix o do ícone. Lembr e. I ndica o númer o do ícone a s er ex ibido. Enviar e r eceber dados em pacotes XML é uma tar efa que . não neces s itando ex ecutar um pes ado Reques t a cada movimentação de r egis tr o feita pelo us uár io. Principais Eventos OnActivate OnI nquir y OnS top OnS tar tWPar ams OnCr eate OnDes tr oy Ocor r e quando o us uár io inicia a aplicação atr avés do painel de contr ole.CPL par a o dir etór io S ys tem do Windows . Vár ias s tr ings de Help s ó podem s er adicionadas com um editor de r ecur s os . A XML (Ex tended Mar kup Language) é uma ex tens ão da HT ML. Ocor r e quando o AppletModule é r emovido da memór ia. e não pelo us uár io. como ícones . T ex to que s er á ex ibido na bar r a de s tatus do painel de contr ole. Vár ios Captions s ó podem s er adicionados com um editor de r ecur s os . Uma das pr incipais difer enças par a quem tr abalha com banco de dados . I ndica o númer o do Res our ce da s tr ing r efer ente ao Caption. r epr es entando o nome da aplicação.s e que um aplicativo pode pos s uir vár ios ícones . par a que a aplicação s ej a copiada par a o dir etór io S ys tem do Windows . tex tos e outr os . e tr az vár ias melhor ias no s entido de per for mance e flex ibilidade. Clique com o botão dir eito s obr e o obj eto AppletModule1 e s elecione a opção I ns tall Contr ol Panel Applet. Ocor r e quando o Windows (Painel de Contr ole) lê as infor mações de r ecur s o do aplicativo. Abr a o Painel de Contr ole e tes te o s eu aplicativo! N ot a: O pr oces s o de ins talação do aplicativo no Painel de Contr ole s e limita apenas à cópia do ar quivo . Obj et o T Appl et Modul e Principais Propriedades AppletI con Caption Help Res idI con Res idI nfo Res idName Í cone que s er á ex ibido no Painel de Contr ole. Ocor r e quando o AppletModule é ins tanciado. I ndica o númer o do Res our ce da s tr ing de help.Del phi 5 Em s eguida. I nt er net E x pr es s Es ta palheta vem adicionar um r ecur s o muito inter es s ante par a o des envolvedor Delphi: o fato de poder ex por tar dados em for mato XML. Ocor r e quando o aplicativo é iniciado por outr o aplicativo. Nenhum tipo de alter ação no r egis tr o é neces s ár io. Ocor r e quando o Windows (Painel de Contr oles ) inicia o pr oces s o de S hutDown do aplicativo. s alve o pr oj eto. O mes mo vale par a a des ins talação do aplicativo. é que a XML “buffer iza” os dados no B r ows er .

Cr ie um novo pr oj eto no Delphi. ou s ej a. por ém. Confir a na tabela abaix o o s ignificado das opções : CoClas s Name I ns tancing Nome da clas s e que s er á r egis tr ada no Windows .thr ead. dentr o do es paço de pr oces s o da aplicação. livr e de conflitos de memór ia. dentr o da nova aplicação. por ém. Uma ins tância do DataModule s er á cr iada par a cada cliente conectado. Nes ta s ituação. Clique duas vezes s obr e o item Remote Data Module. Multiple I ns tance Apenas uma ins tância da aplicação s er á cr iada. S elecione a aba MultiT ier . As concor r ências dever ão s er tr atadas par a que um conflito de aces s o a memór ia não ocor r a. Browser Cliente Vamos cr iar pas s o a pas s o uma aplicação par a pr over infor mações em pacotes XML: Pr imeir amente.S afe. S ingle I ns tanceUma ins tância da aplicação s er á cr iada par a cada cliente conectado. Apar tment O Datamodule1 é ins tanciado par a cada r equis ição do cliente. Recomendável quando o s er vidor que es tiver s endo cons tr uído for uma DLL. Es ta opção é r ecomendável par a aplicações que utilizem o B DE. T hr eading Model Utilizado apenas quando o Remote Data Module es tá s endo cr iado dentr o de uma DLL. Note a difer ença de camadas em uma aplicacao I S API nor mal e uma aplicacao I S API XML: Servidor WEB Servidor WEB Midas Server CGI XML Aplicação CGI Pedido Resposta (Request) (Respons e) Browser Cliente Pedido (Request) Buffer dos registros . Confir a os pos s íveis valor es : S ingle S omente uma r equis ição s er á pr oces s ada por vez. nes te cas o. As demais per manecer ão em fila. abr a o Repos itór io de Obj etos . Os pos s íveis valor es s ão: I nter nal Cr ia a ins tância do DataModule dentr o do pr ópr io pr oces s o. os dados não es tar ão T hr ead. que a j anela a s eguir ir á apar ecer .Del phi 5 também neces s ita de uma camada MI DAS par a captur a da infor mação no banco de dados . os dados es tão s egur os . devemos cr iar o pequeno s er vidor MI DAS que ir á bus car as infor mações no banco de dados . I ndica como o Datamodule s er á ins tanciado. . pois todos os aces s os s er ão s afe. Fr ee Es te thr ead T er á um compor tamento par ecido com Apar tment.

Abr a o r epos itór io de obj etos e s elecione a opção Web S er ver Application. A aplicação s er á ger ada em for ma de ex ecutável (. A par tir des te momento ter emos um s er vidor midas ins talado na maquina. Devemos agor a ins er ir o obj eto que ir a pr over os dados par a a aplicacao XML. ofer ece des empenho infer ior ao I S API . em s eguida. e não em thr eads . devemos colocar um obj eto T S es s ion. Linke o table com o obj eto Databas e e aponte. Var iação do CGI cr iada par a s er utilizada em s er vidor es Windows 16 bit. o r etor no par a o cliente s er á feito em fila. Após . Es ta opção ir á ofer ecer melhor des empenho e menos cons umo de memór ia.o de acor do com a tabela abaix o: DataS et Name T able1 Pr ovider Animals E OK ! S alve a aplicação e ger e o ex ecutável. que ir á r ecuper ar os dados atr avés do s er vidor MI DAS e for necê. Es ta pr opr iedade ir á cr iar um nome de s eção difer ente par a cada us uár io conectado na aplicação. o obj eto T r emoteDataModule ir á apar ecer : Pr imeir amente. vamos configur ar a caix a de diálogo confor ma a tabela abaix o: CoClas s Name I ns tancing T r ead Model COMidas S er ver Multiple I ns tance Apar tment Após dar OK na caix a de diálogo. Coloque um obj eto DataS etPr ovider e configur e. Devemos agor a cr iar a aplicacao XML. E . B as eado nis to. por ém.o par a a tabela Animals . e ele s e encontr a na palheta MI DAS . Es te obj eto s er á da clas s e T dataS etPr ovider . coloque um obj eto T table no DataModule.los par a a máquina cliente atr avés do pr otocolo HT T P. que ir á contr olar as ações de vár ios us uár ios concor r entes dentr o da aplicação. apes ar de s er bem pr ática.Del phi 5 B oth I gual a opção Fr ee. É impor tante também configur ar a pr opr iedade AutoS es s ionName par a T RUE. um obj eto Databas e deve s er ins er ido no DataModule1.EXE). A j anela de s eleção Web S er ver Application s er á ex ibida: I S API /NS API CGI Win/CGI A aplicação s er á ger ada em for ma de DLL. . Es ta opção. Cr ie uma nova aplicação no Delphi. Configur e cor r etamente o obj eto databas e par a que aponte par a o alias DB DEMOS .

Es te obj eto ir á cr iar a página XML bas eada nos dados da tabela. XMLB r oker 2 DCOMConnection1 Pr ovider Clients Name RemoteS er ver Pr ovider Name Em s eguida. S elecione o obj eto Midas PagePr oducer 1 e dê um clique duplo s obr e a pr opr iedade WebPageI tems do obj eto. T midas PagePr oducer . devemos ins er ir a última clas s e r equer ida. No editor de ações . O Editor HT ML s er á ex ibido: Clique com o botão dir eito s obr e o item Midas PagePr oducer 1 e s elecione a opção New Component. que r epr es enta a conex ão com o s er vidor MI DAS . Des ta vez. O último pas s o é cr iar uma ação par a ex ecutar es te Midas PagePr oducer . s elecione Datagr id. S elecione Pr ovider Animals . coloque um obj eto T DCOMConnection (palheta MI DAS ).Del phi 5 S elecione a opcao I S API e dê OK . Repar e que o DbGr id j á ir á ex ibir o título das colunas . Configur e s uas pr opr iedades de acor do com a tabela abaix o: S er ver Name Computer Name Connected Nome do s er vidor Midas a s er conectado Deve s er pr eenchido apenas quando o s er vidor midas não es tiver local. Clique com o botão inver s o no obj eto WebDataModule e s elecione a opção actions editor . DataFor m. I ns ir a um obj eto T midas PagePr oducer no for mulár io. Nes te cas o. Após . S elecione DCOMConnection1 Nome do obj eto DataS etPr ovider que r epr es enta as tabelas ex por tadas pelo s er vidor MI DAS . o nome da máquina onde o s er vidor es tá ins talado deve s er as s inalado nes ta pr opr iedade T RUE Em s eguida. Nes te cas o. Um novo obj eto T webModule s er á ex ibido: Pr imeir amente. S elecione o novo item. cr ie uma nova ação atr avés do botão New Action. Es te obj eto ir á r ecuper ar os dados das tabelas contidas dentr o do s er vidor . s elecione XMLB r oker 1.Em s eguida. DataGRid1 e configur e s ua pr opr iedade XMLB r oker par a o nome do obj eto XMLB r oker que ir á pr over os dados conver tidos em XML. Configur e s uas pr opr iedades de acor do com a tabela abaix o: . clique com o botão dir eito s obr e o novo item. Configur e s uas pr opr iedades de acor do com a tabela abaix o: Name RemoteS er ver Pr ovider Name XMLB r oker 1 Obj eto T DCOMConnection. es colha Datafor m. Es te obj eto ir á r ealizar a conex ão com nos s o s er vidor MI DAS . Um obj eto T webAction s er á cr iado. ins ir a dois obj etos T XMLB r oker (palheta MI DAS ) dentr o do WebModule.

não é neces s ár io infor mar es ta pr opr iedade E Ok! Compile o pr oj eto. Com es te. s em nenhum par âmetr o. Nes te cas o. Clique com o botão inver s o s obr e o WebDataModule e s elecione a opção Action Editor . U t i l i z ando o DB Navi gat or com X ML Vamos cr iar um outr o tipo de inter face par a a nos s a Homepage: Os dados s er ão ex ibidos em campos e o us uár io poder á navegar entr e eles atr avés de uma bar r a de navegação.j s Xmler r dis p. Ok! S er á neces s ár io cr iar uma ação par a es te PagePr oducer ..com. s er á o obj eto Midas PagePr oducer 1. Dê um clique duplo s obr e a pr opr iedade WebPageI tems .Del phi 5 Default Pr oducer PathI nfo T RUE.ex e/Midas PagePr oducer 2 E o r es ultado s er á par ecido com a ilus tr ação abaix o: . Clique novamente s obr e o item Datafor m1 e adicione o item DataNavigator . Par a tes tar a aplicação bas ta digitar a ur l: http: //s er vidor web/dir etor io_ da_ aplicação/pr oj ect1.clubedelphi. Clique s obr e o item datafor m1 e pr es s ione o botão inver s o do mous e.j s Xmldom. Par a a cons tr ução des te ex emplo. Ex : www.j s É impor tante notar que o s er vidor WEB dever á es tar cor r etamente configur ado e aj us tado par a que a aplicacão funcione de for ma es tável. s elecione a opção DataFor m. abr a o cliente XML cons tr uído anter ior mente. No dir etór io da aplicação. I ns ir a um novo Midas PagePr oducer . Par âmetr o que o us uár io dever á digitar na URL par a ex ecutar es ta ação. S elecione o item Midas PagePr oducer 1 e clique com o botão inver s o do mous e. Compile o pr oj eto e ins tale.j s Xmls how. S elecione a opção FieldGr oup. que r etor nar á uma página XML par a o cliente. que acabar a de s er cr iado. O pr óx imo pas s o é copiar o aplicativo par a algum dir etór io de aplicações do s er vidor WEB . ir emos contr uir a nova página de vis ualização dos dados . Como es ta é a ação default. Es tes ar quivos es tão no dir etór io < Delphi> \S our ce\WebMidas : Xmldb.ex e Nome do obj eto r es pons ável pela r epos ta ao cliente.br /pr oj ect1.j s Xmldis p.o no s er vidor Web.. e r epar e que o aplicativo pr oj ect1.dll s er á adicionado no dir etór io da aplicação. Cr ie uma nova ação e configur e s ua pr opr iedade Pr oducer par a o obj eto Midas PagePr oducer 2. Na j anela de s eleção. S elecione a opção New Component. alguns ar quivos JavaS cr ipt dever ão s er copiados . I s to ir á ex ecutar es tá quando o us uár io digitar o nome do aplicativo no br ows er . par a que o editor de páginas s ej a ex ibido.

Del phi 5 .

Sign up to vote on this title
UsefulNot useful