Você está na página 1de 63

NDICE:

Como construir um sistema utilizando Delphi?......................................................................... Como criar uma nova aplicao no Delphi?.............................................................................. Como salvar a aplicao no Delphi?.......................................................................................... Como alterar as propriedades da tela? ...................................................................................... Como executar a aplicao no Delphi? ..................................................................................... Como fechar a aplicao? ......................................................................................................... Como abrir a aplicao? ............................................................................................................ Como inserir uma imagem na tela? .......................................................................................... Como criar uma tela de splash? ................................................................................................ Como criar uma lista de aes? ................................................................................................ Como criar um menu de opes? .............................................................................................. Como inserir uma lista de imagens? ......................................................................................... Como criar uma barra de ferramentas? ..................................................................................... Como criar uma barra de status do sistema? ............................................................................. Como inserir data e hora na barra de status do sistema? .......................................................... Como pedir confirmao ao fechar tela na aplicao?.............................................................. Como criar uma nova tela na aplicao?................................................................................... Como remover uma tela da aplicao?...................................................................................... Como preparar o banco de dados para ser usado no sistema? .................................................. Como criar uma tela de login do sistema? ................................................................................ Como alterar a Main Form do sistema? .................................................................................... Como criar uma tela padro? .................................................................................................... Como utilizar uma tela padro do sistema? .............................................................................. Como utilizar um DBGrid? ....................................................................................................... Como utilizar um DBNavigator? .............................................................................................. Como inserir campos de uma tabela na tela? ............................................................................ Como chamar uma tela no Delphi? ........................................................................................... Como criar uma tela manualmente na aplicao? ..................................................................... Como criar relacionamento Master/Detail na aplicao? ......................................................... Como utilizar componentes do tipo LookUp? .......................................................................... Como criar consultas em tabelas do banco de dados? .............................................................. Como utilizar filtro em uma tabela? ......................................................................................... Como usar a linguagem SQL no Delphi? ................................................................................. Como criar um relatrio com o QuickReport? ......................................................................... Como criar um relatrio no Rave Reports? .............................................................................. Como criar um relatrio com a linguagem Rave Reports? ....................................................... Como validar dados e tratar erros no Delphi? .......................................................................... Como criar campos calculados? ................................................................................................ Como criar campos Lookup? .................................................................................................... Como exportar / importar dados com Delphi/Excel? ............................................................... Como utilizar uma Unit no vinculada a forms? ...................................................................... Como utilizar uma DLL? .......................................................................................................... Como preparar um sistema para ser utilizado em rede? ........................................................... Como criar um sistema de ajuda? ............................................................................................. Como criar discos de instalao para a aplicao? ................................................................... Como compactar o banco de dados do Access no Delphi? .............................................. Como criar uma rotina de Backup/Restore do sistema? ................................................... Como criar um grfico no Delphi? ...................................................................................... Como criar um relatrio de produtos em falta.................................................................... Como realizar algumas melhorias no sistema? ......................................................................... Como criar um objeto em tempo de execuo? ........................................................................ Como estruturar o banco de dados Banco.MDB ................................................................... .............................................................................
02 03 03 04 05 05 06 07 08 09 10 11 12 13 13 14 14 15 16 19 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 38 41 42 43 44 45 46 47 48 51 53 54 56 58 59 60 61

Este tpico dever ser realizado uma nica vez para cada sistema a ser criado.

File ->

Este tpico deve ser executado para a aplicao ser gravada em disco. : Nunca deixe para salvar somente quando terminar tudo. : Organize o seu trabalho, utilizando as anteriormente. pastas criadas

-> Save All ou clique no boto Escolha a pasta C:\Sistema\Programas na Combobox Salvar em para indicar o local onde a aplicao ser gravada.

Digite o nome da Unit da tela principal, por exemplo, UMenuPrin.pas Digite o nome do projeto, por exemplo, Sistema.dpr

Este tpico deve ser realizado para fazer o programa funcionar.

Escolha a opo

Run, na barra de menus, ou simplesmente, tecle

para executar a aplicao

O arquivo executvel (.exe), e outros, criados no momento da execuo do sistema, sero gravados dentro da pasta onde se encontra o cdigo fonte (*.pas e *.dpr), a no ser que sejam especificadas outras pastas atravs do comando -> Option -> Directories / Conditionals da barra de menus do Delphi. Os arquivos de extenso *.dcu, *.~*, *.exe podem ser apagados, pois os mesmos so reconstrudos aps executarmos o comando

Este tpico dever ser executado para fechar a aplicao. Lembre-se de salv-la antes disso.

-> Close All

Tela de splash ou de abertura a primeira tela exibida quando o programa executado. Sua exibio dura apenas alguns instantes.

-> New -> Form (cria uma nova tela) -> Save All (Salve a Unit como Altere as da tela FrmSplash 250 400 na pasta Programas) conforme tabela a seguir: bsNone poScreenCenter clGray

Acrescente um objeto 210 385 True

tela e altere suas 3 3

Acrescente um objeto clWhite True

tela e altere suas 26 45

Sistema Comercial 1.0

Selecione, na barra de menus, a opo cdigo fonte da aplicao.

-> View Source para exibir o

Procure a linha de comando Application.CreateForm(TFrmSplash, FrmSplash) e insira os comandos abaixo aps a mesma :

exibe a tela FrmSplash d um refresh na tela (aguarda 02 segundos)


na clusula . inclua a unit

Para testar a

aplica o at este

Elimina a tela da memria.

ponto, execute-a, teclando


objeto.

// anula a referncia ao ponteiro do

Este tpico ensina como criar menus de opes.

Insira um componente Selecione o objeto

(guia e d um

na tela principal no mesmo

Digite as opes abaixo em sua propriedade

Acrescente as demais opes do menu atravs da propriedade (propriedade que exibe as aes do conforme mostra a prxima figura. Para criar os separadores, digite sinal de subtrao propriedade e tecle na ) e deixe seu menu

Para inserir uma opo em branco tecle Para apagar uma opo Tecle A opo Produtos deve ser digitada na propriedade Para criar o , tecle sobre a opo

.: Somente aps digitarmos os comandos das opes do menu no evento de cada ao da que as mesmas sero

habilitadas. Observe que s a opo Sair que est habilitada at agora.

10

Este tpico tem o propsito de ensinar como criar uma barra de ferramentas com botes representando cada opo do menu principal.

Insira um componente Altere a propriedade Altere a propriedade

da guia para do objeto

da paleta de componentes (permite exibir as dicas de Hint) para ImageList1

Clique com o boto direito do mouse sobre a barra de ferramentas e escolha New Button para inserir um novo boto ou New Separator para inserir um separador. Em nosso exemplo insira respectivamente ,e Para cada boto altere a propriedade opo do menu. , de acordo com a respectiva ,

.: Somente aps digitarmos os comandos no evento cada ao da que os botes sero habilitados. At o est habilitado. Execute a

de

presente momento, somente o boto aplicao e confira o resultado.

12

Este tpico tem o propsito de ensinar como criar uma tela de login

Figura 4

Layout da Tela de Login

-> New -> Form (cria uma nova tela) -> Save All (Salve a Unit como na pasta )

Altere as propriedades da tela Form conforme tabela a seguir: FrmLogin 225 400 bsDialog poScreenCenter Login

Acrescente um objeto 84 113 True

e altere suas propriedades: 4 4 HandShak.bmp

Acrescente 01 objeto Logando no Sistema 4 88

e altere suas propriedades: GrpBxLogin 96 382

Acrescente 03

tela e

ao GrpBxLogin) e mude as propriedades:

SISTEMA COMERCIAL Verso 1.0

Usurio

Senha

taCenter False True Comic Sans Ms, 14, Bord 140, 4, 208, 50

taLeftJustify taLeftJustify True False 18, 20,-,True False 18, 54,-,-

19

Este tpico tem o propsito de ensinar como alterar a Main Form

do

sistema, ou seja, fazer com que seja mudada a tela que apresentada em primeiro lugar quando o sistema executado. Se voc tentou executar o sistema at este ponto, percebeu que a tela de login no apareceu. Uma das maneiras de fazer com que isto acontea, alterar a Main Form para a tela FrmLogin. Para isto siga os procedimentos abaixo:

Selecione a opo de menu Selecione a guia Forms e altere a opo Main Form para a tela desejada, em nosso exemplo escolha FrmLogin e clique no boto OK. Tecle para executar a aplicao

21

Execute este tpico sempre que for apresentar campos da tabela na tela, utilizando controles . (Utilize apenas um dos procedimentos)

: Selecione o

onde esto os componentes de sobre o objeto

banco de dados. Logo em seguida d um

correspondente tabela que deseja pegar os campos. Selecione todos os campos que deseja incluir na tela e arraste-os para dentro da tela em que eles ficaro. Como exemplo, selecione a tela datamodule objeto AdoTable a tela e o selecione os seus campos e arraste-os para Neste caso so utilizados controles DBEdit.

Selecione o objeto altere as propriedades

desejado,

, por exemplo, e

(origem dos dados) e

(campo) de acordo com a informao a ser exibida ou editada da tabela.

26

Este tpico vai ensinar os procedimentos para criar um relacionamento na aplicao. Como exemplo utilizaremos as tabelas , onde, Em um relacionamento Master para cada registro da tabela e Detail. , so

relacionados apenas os registros da tabela

que tiverem os mesmos valores ).

de chaves primria e estrangeira, respectivamente (

Selecione a tela

) da tabela detail da tabela master, da tabela ,e

Selecione a propriedade escolha o nome do Selecione a propriedade

master).na tabela Tab_ItemVenda e digite VendID

Execute a aplicao e chame a tela de vendas. A partir de agora, quando a tela de itens da venda for chamada, s sero exibidos os registros dos itens correspondentes ao registro da venda selecionada. D duplo-clique na propriedade MasterField para ver a janela de designer do relacionamento. O relacionamento tambm poderia ter sido feito selecionando-se as chaves primria e estrangeira e clicando no boto Add. Faa isto apenas se voc no se lembrar do nome da chave primria.

Janela Designer do Relacionamento

29

Este tpico vai ensinar os procedimentos para criar uma consulta parcial a uma tabela e uma de chave completa. A Unit do Delphi utilizada deve ser a .

Para criar uma

a uma tabela de banco de dados, ou

seja, uma pesquisa que procura parte do campo desejado, siga os passos: Selecione o evento do componente desejado (neste caso como abaixo:
] );

na tela de Clientes e digite o comando


( 'CliNome',ValorCampo.Text, [loCaseInsensitive,
Onde,

Dm tab_Clientes CliNome ValorCampo.Text loCaseInsensitive loPartialKey

DataModule AdoTable

TEdit

Para realizar uma

, ou seja, o contedo s ser

encontrado depois de digitado todo o contedo do campo, utilize o mesmo comando, remova a palavra conforme o exemplo a seguir:
( 'CliNome',ValorCampo.Text, [loCaseInsensitive])
e coloque o comando dentro de uma estrutura de deciso If,

Digite o comando acima no evento OnClick do boto Pesquisar, por exemplo. Neste caso, lembre-se de colocar comentrio (//) no comando do evento OnChange do TEdit ValorCampo, utilizado anteriormente. Para fazer uma consulta com dois campos utilize a sintaxe: Tabela. [loPartialKey]); ('Campo1;Campo2', VarArrayOf([Contedo1, Contedo2]),

31

Este tpico vai ensinar os procedimentos para a utilizao dos comandos da linguagem (Structure Query Language) no Delphi. Atravs desta linguagem

voc pode criar e alterar tabelas, inserir, alterar, apagar registros, bem como fazer pesquisas simples e complexas em tabelas de bancos de dados.

Utilize algum componente para banco de dados que aceite instrues Em nosso exemplo, como estamos utilizando componentes na guia da paleta de componentes, o componente . para

, selecione

inserindo-o na tela Altere a propriedade

Defina a conexo do banco de dados que contm as tabelas desejadas. Para isto altere a propriedade nosso exemplo, escolha Clique na propriedade ... e digite o comando: para selecionar todos os registros da tabela de Clientes da cidade fornecida como parmetro de pesquisa pelo usurio atravs da aplicao, em ordem pelo nome do cliente. Em nosso exemplo sero selecionados todos os campos de cada registro , mas, se preferir selecionar apenas alguns campos, basta apenas digitar no lugar do asterisco o nome de cada campo separado por vrgula. D um duplo-clique no objeto teclando e selecione todos os campos , escolhendo a conexo. Em

:A sintaxe para utilizao de um objeto a seguinte:


<nome do ADOQuery>

com os comandos SQL

Close; Parameters[n de ordem do parmetro].Value := <valor>; Open; // <outros comandos do Delphi, se houver> Close;

* Logo a seguir ser mostrado um exemplo.

33

Este tpico vai ensinar os procedimentos para a criao de um relatrio utilizando o Rave Reports.

Selecione a tela FrmCadCliente. Acesse a guia e insira um componente ,

que responsvel pela conexo com o banco de dados. Mude a propriedade para Configure a propriedade

selecionando o nome da tabela ou query. Neste exemplo, escolha a query QueryClientes. Insira um componente , que ser responsvel pela exibio para

do relatrio, na tela ou na impressora. Mude Insira um componente gerenciamento do relatrio. Mude propriedades para

, que ser responsvel pelo para . , ou, escolha Ajuste as

D um duplo clique no componente para abrir o

em sua rea de Design.

Acesse Acesse conexo boto

-> New para criar um novo relatrio no Rave -> e escolha na rea . Selecione a e clique no

36

No evento OnPrint do objeto RvSysCliente digite:

QueryClientes.First; // vai para o primeiro registro da query ( // enquanto no for fim de arquivo

Lin := 1; // Declarar varivel

com o tipo

e escopo

Cab_RelCadCliente; // chama a procedure cabealho do relatrio ( ) ( )

Det_RelCadCliente; // chama a procedure detalhe do relatrio QueryClientes.Next; //vai para o prximo registro ;

NewPage; // insere uma nova pgina ao relatrio ; Lin := Lin - 0.2; MoveTo(0.7,Lin); //move o cursor para a coluna e linha indicados LineTo(20.5,Lin);//traa uma linha at posio Lin := Lin + 0.5; ; indicada.

Crie as

a seguir para imprimir cada banda do relatrio: Detalhe do relatrio

RvSysCliente .BaseReport

Gotoxy(0.7,Lin);//tabula coluna e linha no relatrio Print (QueryClientesCliNome.AsString); // Imprime Nome do cliente Gotoxy(6.5,Lin); Print (QueryClientesCliNumFone.AsString); Gotoxy(10,Lin); Print(QueryClientesCliCid.AsString); Lin := Lin + 0.5;

39

Este tpico vai ensinar os procedimentos para criar campos do tipo calculado, cujos clculos so feitos toda vez que um registro da tabela alterado.

Visualize a tela de objeto .

do Sistema, ou qualquer tela que possua o

D duplo-clique sobre o objeto escolha Tecle Em

desejado. Para nosso exemplo,

para inserir um novo campo. digite o nome do campo na caixa de texto e

escolha o tipo do mesmo em Em marque o tipo do campo como para calcular o total do produto

Para que seja criado um campo

vendido, deixe sua tela conforme o modelo a seguir:

Clique sobre o boto Para que o campo calculado funcione inclua o clculo no evento da tabela para a qual ele foi criado. No evento da tabela tab_ItemVenda, digite: dm.tab_ItemVendaTotal.Value dm.tab_ItemVendaItVeQtde.Value (dm.tab_ItemVendaItVeValorUnitario.Value dm.tab_ItemVendaItVeDescontoItem.Value) Na tela d um duplo-clique sobre o . Selecione a coluna . Insira um e

novo campo, clicando sobre o boto mude a propriedade

da mesma para

42

Este tpico vai ensinar os procedimentos para criar campos lookup, que exibem valores de campos de registros de tabelas primrias de um relacionamento.

Visualize a tela de objeto

do Sistema, ou qualquer tela que possua o

. Para isto tecle desejado. Para nosso exemplo,

D duplo-clique sobre o objeto escolha Tecle Em

para inserir um novo campo. digite o nome do campo na caixa de texto e digite o tamanho em ,

escolha o tipo do mesmo em Em Em

marque o tipo do campo como escolha em a chave estrangeira Em

escolha o nome da tabela primria. Escolha o nome da chave primria da tabela escolhida anteriormente em escolha o campo que aparecer como resultado em E finalmente Para que

seja exibido o nome da categoria do produto na tabela de produtos deixe sua tela conforme o modelo a seguir:

Clique sobre o boto Acrescente o campo criado ao da tela de , ou, arraste-o

junto aos demais campos na tela, como j foi feito com os outros campos da mesma. Crie campos ( nas tabelas ( e ), ) e adicione-os aos respectivos

43

Este tpico vai ensinar os procedimentos para utilizar units no vinculadas a forms para criar um arquivo de funes e procedimentos comuns aplicao.

para acrescentar uma unit nova no vinculada a tela na aplicao. Para acess-la de outros locais, use para salvar a como

Uma tela aparecer, como a do modelo a seguir:

A seo Na seo Na seo

possui o nome da unit gravada no disco (*.pas) declare as funes e procedimentos de uso comum. implemente tudo o que foi declarado na

Para que as funes e procedimentos criados na possam ser utilizados, informe o nome da mesma na clusula de cada em que os mesmos forem solicitados. Aproveite este momento para pesquisar ou criar procedures e funes que possam ser utilizadas em vrios pontos do sistema e acrescente-as Unit UFunProGeral.pas

45

valor numrico que define o nmero de ordem da apresentao no sistema de ajuda. Cada identificao deve ser feita como uma nota de rodap, portanto coloque o cursor antes de cada ttulo principal exemplo) e acione o comando , por e escolha

Na caixa de texto Personalizada digite o smbolo identificador e clique no boto . Na digite o texto do

identificador, conforme a tela a seguir:

Observe que no exemplo anterior foi identificado apenas o tpico de , portanto, faa o mesmo para os outros dois tpicos restantes, utilizando os mesmos procedimentos. Defina os links do seu sistema de ajuda. Por exemplo, no tpico , na opo , selecione a palavra e escolha o estilo de sublinha Exatamente aps a palavra clientes, digite a palavra-chave contexto ) selecione-a, e aplique salve o seu documento como Na pasta programa (Help WorkShop). . , execute o com efeito aplique . (nome do e

Crie o arquivo de contedo no Help WorkShop e digite na caixa Default filename (and Windows) o nome do arquivo Para inserir um cabealho, clique sobre o boto ,

49

Este tpico vai ensinar os procedimentos para criar discos de instalao da aplicao utilizando o programa . Este programa acompanha as

verses Professional e Enterprise do Delphi. Antes de executar os procedimentos deste tpico tenha certeza de que o computador. j tenha sido instalado em seu

No Windows clique carregar o No a opo do zero, manualmente. Project Name and escolha a pasta onde ser

para

para criar uma instalao a partir

armazenado o arquivo de instalao, digite o nome do arquivo e clique no boto . , clique sobre o boto . Ao retornar tela do Na e defina as principais informaes sobre o seu projeto, como: nome do produto, verso, cdigo, nome do autor, etc. Clique sobre para definir os tipos de instalao que

estaro disponveis ao usurio, como por exemplo, tpica, mnima, e Na selecione os arquivos da aplicao (executveis, banco de dados, ajuda, dentro de suas respectivas pastas Logo em seguida arrasteDestination compu para confirmar os arquivos selecionados e

51

Este tpico vai mostrar como criar uma rotina para cpia de segurana e restaurao do banco de dados do sistema.

Crie uma opo no menu principal:

->

Crie a tela a seguir com o Name = FrmBkpRst, contendo os objetos: ( e ( ) Visible ) use as propriedades Caption e Items ( ),

CommonAvi

Selecione o DriveComboBox1 e altere sua propriedade DirList, para para que os dois fiquem associados.

Fonte: 10 pt

Digite os comandos abaixo no evento OnClick do boto Confirma:


('Antes de confirmar esta operao, feche o banco de dados' + #13 + #13 + 'Deseja efetuar ' + RadioGroup1.Items[RadioGroup1.ItemIndex] + '?', mtConfirmation, [mbYes, mbNo],0) = mrNo Abort; Animate1.Visible := True; Animate1.Active := True; //ativa a animao RadioGroup1.ItemIndex = 0 ; (Application.ExeName)+'\Banco.mdb', DirectoryListBox1.Directory ; ; RadioGroup1.ItemIndex = 1 // se a segunda opo do RadioButton for escolhida Dm.Conexao.Connected := False; // Desconecta o banco de dados DirectoryListBox1.Directory + '\Banco.mdb', (Application.ExeName) ; Dm.Conexao.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ (Application.ExeName)+'\Banco.mdb;Persist Security Info=False;Jet OLEDB:Database Password= '; // monta a string de conexo ao banco de dados Dm.Conexao.Connected := True; // Conecta o banco de dados ; Animate1.Visible := False; 54 Animate1.Active := False; ('Operao concluda.', mtInformation, [mbOk], 0); ; FrmMenuPrin

Este tpico vai mostrar como criar grficos estatsticos no Delphi, como por exemplo, grfico de barras, verticais, de pizza, etc.

Crie uma tela nova no sistema, altere as propriedades = Insira um objeto , = ( .

) tela. Altere as propriedades e d um duplo-clique sobre o mesmo.

Escolha o tipo de grfico a ser utilizado: guias Chart, Series e nos botes Add (

(Barras . Para isto, clique nas 3D) e OK.

Clique no boto Titles e altere o ttulo da srie para Cidades. Selecione a guia Titles e digite o ttulo do grfico: caixa de texto e selecione o Alignment = Center Clique no boto Close. Faa referncia unit da tela DM. File (UDM) na

Insira um objeto ADOQuery tela e altere as propriedades: Name: Connection: SQL: D duplo-clique na query QCliCid e tecle [Ctrl] + [F] para inserir os campos. Copie o boto Btn_Imprimir da tela FrmCadCliente para a tela FrmGrafico. Insira um componente PrintDialog da guia Dialogs na tela FrmGrfico.

A tela dever ficar com a seguinte aparncia:

56

No evento

do

da tela padro do sistema, digite:

if Button in [nbInsert, nbEdit] then begin GroupBox1.Enabled := False; //desabilita o GroupBox1 e todos seus componentes. GroupBox2.Enabled := False; DbNavigator1.Enabled := False; DbNavigator2.Enabled := False; DbNavigator3.Enabled := True; end; No evento do da tela padro do sistema, digite:

GroupBox1.Enabled := True; GroupBox2.Enabled := True; DbNavigator1.Enabled := True; DbNavigator2.Enabled := True; DbNavigator3.Enabled := False;

No evento if (Button = nbInsert) then begin Dm.Tab_Clientes.Cancel; Dm.Tab_Clientes.Append; EdtNome.SetFocus; end;

do

da tela

, digite:

Faa o mesmo procedimento para as demais telas do sistema. Lembre-se de alterar o nome das tabelas e do componente que receber o foco na tela. Para utilizar a tecla como nas telas do sistema, selecione a tela padro para Logo em seguida, digite os

do sistema e altere a propriedade seguintes comandos no evento if Key = #13 then begin keybd_event(9,0,0,0); Key := #0; end;

da tela padro:

59

Tabela:

ProdID ProdCategoria ProdCodigo ProdNome ProdPrecoVenda ProdQtdeEst ProdUnidade ProdFornecedor

AutoNumerao Nmero Texto Texto Moeda Nmero Texto Nmero

7 50 5

Tabela:

VendID VendCliente VendDt_venda VendValorProdutos VendDesconto VendAcrescimo VendFrete VendQtde Tabela:

AutoNumerao Nmero Data/Hora Moeda Moeda Moeda Moeda Nmero

ItVeID ItVeVenda ItVeProduto ItVeValorUnitario ItVeDescontoItem ItVeQtde

AutoNumerao Nmero Nmero Moeda Moeda Nmero

62

Você também pode gostar