Você está na página 1de 39

COLGIO ESTADUAL PROF. UBEDULHA CORREIA DE OLIVEIRA ENS.

FUNDAMENTAL, MDIO E PROFISSIONAL


RUA JULIO FARINACEO - Nmero: 110 CJ HAB LUIZ DE S - Cep: 86.085-440 Fone: (0xx43) 33370325 LONDRINA - PARAN

EMBARCADERO RAD STUDIO DELPHI 2010

Turma: 3 Tcnico em Informtica Disciplina: Linguagem e Programao Professor: Alberto Takeshi Mon-ma

Contedo
1 Introduo.................................................................................................................. 3 2 IBEXPERT ................................................................................................................. 4 3 AMBIENTE DELPHI ................................................................................................ 12 3.1 FORMULRIO DE CADASTRO DE CLIENTES ............................................... 18

1 Introduo
Prezados(as) tentaremos em poucas partes ter uma noo de como programarmos com o Programa Delphi, uma das interfaces mais procuradas para uso comercial. Utilizaremos para isto o Delphi 2010 Studio, Ibexpert e Firebird 2.5. Tambm irei aborda uma conexo com base de dados Access. No percamos tempo.

2 IBEXPERT

IBExpert uma ferramenta para administrao de bancos de dados Interbase e Firebird. Permite criar e gerenciar usurios e tabelas. Para utilizar o gerenciador necessrio registrar o banco de dados, isto necessrio para que o IBExpert reconhea o banco. Para isso basta clicar: Shift + Alt + R, que abrir uma tela para este registro. A verso gratuita para testes. Caso tenha interesse em obter a verso completa, dirija-se ao site oficial da IBExpert e adquira o gerenciador. Com IBExpert possvel: analisar dados, copiar objetos de Bancos de Dados, utilizar ferramentas de SQL, comparar Bancos de Dados ou tabelas de Bancos de Dados, bem como a opo de Database designer, para criar tabelas. O IBExpert no um simples administrador de Bancos de Dados Interbase e Firebird, mas sim uma poderosa ferramenta que contm o que h de melhor para administrao de BD. Com uma interface em ingls, mas simples de utilizar, contm alguns recursos para preenchimento de tabelas para inserir dados de teste, por exemplo. Suporta os Bancos de Dados Interbase 4,5 e 6 e o Firebird 1.0 ao 1.5. Banco de dados O termo banco de dados foi criado pela comunidade de computao para indicar colees de dados armazenados em computadores. Os bancos de dados, ou bases de dados, so conjuntos de dados que organizam informaes, que normalmente so utilizadas para um mesmo fim. Para manter ou acessar um banco de dados, utilizamos softwares conhecidos como Sistemas Gerenciadores de Banco de Dados. Interbase Desenvolvido pela produtora de softwares Borland, o Interbase um gerenciador de bancos de dados relacionais e uma alternativa para bancos de dados tradicionais, como Access ou SQL Server. O diferencial do Interbase que ele gratuito e OpenSource produto de cdigo livre.

Quanto velocidade, pode-se dizer que um gerenciador relativamente rpido e suporta bancos de dados maiores que 2 Gigabytes. Firebird O Firebird um Sistema Gerenciador de Bancos de Dados desenvolvido em mantido por uma comunidade de desenvolvedores e pela Fundao FireBird. Originouse do Interbird, e sendo assim, um produto OpenSource, desenvolvido sobre licensa Interbase License. Administre seu Banco de Dados de forma simples e com resultados excelentes, utilizando o IBExpert. Vamos fazer o cadastro de nossa base de dados. Para isso no menu de atalhos clique em Criar Base de Dados.

Nesta tela em Server name coloque Localhost, pois a base e firebird e suas consultas sero na maioria Linguagem SQL, em data base clique em abrir, para maior organizao crie na unidade C local, uma pasta Siscomp e dentro dela BD. Username: sysdba Password: masterkey Charset: ISO8859_1 Pressione boto OK

Prximo tela e complementao.

Em Server Version coloque a verso instalada do seu Firebird. Database Alias: um apelido para sua base. Font characters set: ANSI_CHARSET Clique no boto: Test Connect. Se tudo estiver acordo agora e register de s

Veja o seguinte: Na guia database Explorer foi includo o testando o DB, na parte inferior temos uma explicao de onde-se encontra a base de dados entre outras. Para termos acesso a base, bata dar duplo clique em Testando o DB, ou no menu de atalhos Connect to Database. Ou apenas Shift+Ctrl+C.

Veja que ele se conectou a base de dados e expandiu o sua rvore de contedos. Vamos Criar uma Tabela de dados, aonde iremos inserir dados em uma base. Para isso clique com o boto direito do Mouse em Tables/new tables ou simplesmente CTRL+N.

Vamos identificar alguns itens para o bom funcionamento.

Nome da Tabela 1 2 3 4 5 6 7

1 Executar os comando SQL para registro da Tabela 2 Editar a tabela 3 Inserir campos na tabela na sequncia; 4 Inserir campos na tabela entre os campos j inseridos; 5 Excluir campos; 6 Mudar a ordem do campo para cima; 7 Mudar a ordem do campo para baixo;

Bom como vocs podem ver o nome de minha tabela CLIENTE. O primeiro campo idcliente, e como vocs podem observar tem uma chave do lado, est chave quer dizer que os dados sero mostrados na ordem do IDCLIENTE, mas vamos entender porque colocar um campo destes. Veja bem para distinguirmos os vrios clientes que utilizam os nossos servios, devemos identific-los de com alguma coisa, antigamente os comerciantes, identificavam atravs do local onde moram ou aonde trabalha ex: Jos da venda, Jos da rua dos fundos. Desculpem a chacota, mas nos dias de hoje com tantas pessoas e Homnimos, no conseguimos fazer isto, n. Ento o que feito um cadastro o qual guardamos algumas caractersticas que possam identific-los, por exemplo, o Registro Civil famoso RG, Cadastro de Pessoa Fsica o CPF, tudo isso para que possamos cobrar de quem comprou. Contudo devemos ter um registro interno para que possamos contabilizar a quantidade de Clientes por isso o IDCLIENTE ou Identificao do Cliente. Bem vamos aos campos de nossa base.

Feito isto falta definir uma coisa o IDCLINTE, como campo Auto-incremental, na mesma linha segue-se as colunas v at aonde se encontra AUTINC, e selecione, agora ele mostrar algumas telas. Nesta criamos uma varivel de identificao da chave primria, e comea com contedo Zero(0).

Aqui se verifica que aps a insero de contedos na base de dados o campo IDCLIENTEN continua NULO, ou entras palavras sem contedo. Acrescentando +1 ao ndice.

Neste cria-se uma Procedure para devoluo do resultado das operaes. Ao campo procedente.

Agora aperte Compilar ou Ctrl+F9. Se tudo acontecer como planejado ir aparecer uma tela como esta. Agora s Pressionar Commit. Para que se as configuraes tomem efeito.

Veja que no quadro Database explore j se alteraram algum dos itens. Vamos inserir alguns registros(clientes) para isso clique na Aba DATA.

10

Vamos entender uma barra em especial a de manipulao de registros, o qual tambm iremos ver em nossa programao Delphi.

10

Da Esquerda para a Direita. 1 ir para o primeiro Registro; 2 Retornar ao registro anterior; 3 Prximo registro; 4 ir para o ltimo registro; 5 Adicionar um Novo registro; 6 Excluir o registro atual; 7 Editar/Alterar o registro atual; 8 Salvar o registro atual; 9 Cancelar as operaes/Alteraes; 10 Atualizar os registros; Bem insiramos uns 4(quatro) registros e vamos para o Delphi o que nos interessa. Podemos fechar o IBEXPERT e vamos ao DELPHI 2010.

11

3 AMBIENTE DELPHI
1 rea central aonde se encontra os projetos j elaborados no ambiente Delphi, bem como a criao de novos projetos atravs do NEW PROJECT. 2 Project manager: aqui podemos ver e identificar os mdulos j criados em nosso projeto coisas que em verso anteriores no tnhamos e tambm a conexes com as base dados atravs da guia Data Explorer (como veremos mais a seguir). 3 Tool Palette: como prprio nome diz Paleta de Ferramentas aqui se encontra os objetos para a criao dos formulrios. Alis o Delphi uma programao OOb Orientada a Objetos, quer dizer que utilizaremos objetos para que possamos manipular as bases de dados.

4 Structure: Aqui se encontra todos os componentes inseridos em nosso formulrio. 5 Objector Inspector: Nesta paleta a mais importantes de todos, com ela manipulamos todos os objetos de nosso projeto; 6 Menu e atalhos no to menos importante so os atalhos e menus. 6

4 2

1 5 3

12

VAMOS MOS A OBRA, clique em new Project/Delphi Projects/VCL Forms Application/OK.

Veja que mudou-se o ambiente:

Formulrio ou Form Nossa rea de trabalho.

Em structure veja que temos FORM1, o nome de nossa rea de trabalho, a medida que formos inserindo componentes poderemos ver que esses componentes estaro logo abaixo do FORM1.

13

Veja um exemplo abaixo: Aqui inserimos um componente chamado de Button1 no formulrio FORM1, veja que ele est abaixo. Note tambm que quando selecionamos o Objeto Button1, nosso Object Inspector tambm, mudou para as propriedades do Boto.

Bem vamos ao que interessa. Na lado direto da tela temos a o Project manager, logo abaixo dele temos a guia data Explorer.

14

Clique, nesta guia para que possamos ver todas as bases de dados Nativos, para conexo com o Delphi 2010. Uma das coisas mais legais desta verso que a embarcadero quando comprou os direitos do Delphi, ele deu ateno aos programadores. Ele traz nativo o Firebird, como vocs podem ver, coisa que em outras verses, para se ter uma conexo voc teria que utilizar-se de artimanhas com conexes de outras base dados que podem falhar. Agora no voc j pode conectar direto. Bem vamos comear, clique com o boto direito do mouse sobre o Firebir/Add new connection

15

Nesta tela definimos o Nome de nossa conexo com a Base de dados Firebird, isto do Delphi no confundo com o que fizemos la no IBEXPERT. Clique em OK

Crio-se a nossa conexo e agora vamos modific-lo para que encontre a nossa base de dados. Clique com o boto direito do mouse na conexo e depois em Modify Connection.

Aqui, em Database Name, coloque localhost e o endereo e nome da base da dados criado, caso tenha dvidas v ao Explorer e copie o caminho da base. No meu caso ficou desta forma: localhost:C:\Sisco mp\BD\testedb.fdb Clique em teste connection para ver se tudo est funcionando, caso esteja clique em OK.

16

*Nota: um dos principais erros de conexo nesta fase no encontrar a DLL de conexo com a base de dados Firebird. Para se corrigir isto v em C:\Arquivos de programas\Firebird\Firebird_2_5\bin e copie o arquivo fbclient.dll para C:\WINDOWS\system32. Agora se voc clicar no sinal de + do lado da conexo ConexDB, ele se conecta do a base de dados e mostra os contedos desta base como se fosse o IBEXPERT.

Se voc der um duplo clique em cima da tables cliente, em nossa rea de trabalho ir abrir o contedo de nossa tabela, veja:

17

Nesta tela podemos inserir registros como se fosse no IBEXPERT, para que se possa salvar o contedo alterado, clique com o boto direito na guia cliente, e de Close Page, a final perguntar se deseja salvar as alteraes.

3.1 FORMULRIO DE CADASTRO DE CLIENTES Iremos construir um formulrio de Insero, alteraes e Excluso de cadastro de Clientes. Comecemos pelo Formulrio principal iremos alterar a propriedade Name deste Formulario para FRMCad para isso v ao Object Inspecort procure pela propriedade NAME e altere como foi informado. Veja que quando alteramos e apertamos a tecla enter. Logo acima, em Structure e no prprio Object Inspector muda-se o Nome. Outra propriedade que podemos alterar e a de Caption, o que ir ficar escrito na Janela do nosso programa. Altere para : Cadastro de Clientes.

18

Vamos inserir dois componentes chamados PANEL, v em Tool Palette, para parte ando tem uma Lupa, se chama search, comece a digitar PANEL.

Selecione o PANEL1, e vamos alterar as seguintes propriedades: Propriedade Caption Align BevelInner Height Alterao Deixar em branco alTop bvLowered 80

19

Selecione o PANEL2, e vamos alterar as seguintes propriedades: Propriedade Caption Align BevelInner Alterao Deixar em branco alClient bvLowered

Com o Panel1 selecionado, insira 6(seis) botes, para isso do mesmo modo que o Panel, v na barra de Tool Palette, e digite Button.

Note em Structure, que os botes esto abaixo do Panel1, isso quer dizer que ele pertence ao Panel1, se tentar mos mover para fora do Panel1 ele desaparece, mas se arrastarmos pelo Structure, ai sim.

20

Alteremos as propriedades dos botes, para os seguintes parmetros: BUTTON1: Propriedade Caption Name BUTTON2: Propriedade Caption Name BUTTON3: Propriedade Caption Name BUTTON4: Propriedade Caption Name BUTTON5: Propriedade Caption Name BUTTON6: Propriedade Caption Name Alterao Fechar BtFechar Alterao Excluir BtExcluir Alterao Salvar BtSalvar Alterao Cancelar BtCancelar Alterao Alterar BtAlterar Alterao Inserir BtInserir

21

Agora vamos salvar nosso projeto pela Primeira vez. V em File/Save All ou Shift+Ctrl+S.

Nesta primeira tela estaremos salvando o cdigo referente ao fomulrio manipulado, ele tambm conhecido como UNIT, por Nomeclatura, o ideal e se coloca a letra U + o nome do formulrio construdo, U_cadcli assim sendo saberei que esta UNIT referente ao cadastro de Clientes. Por padro a extenso .PAS

22

Nesta prxima tela temos que escolher o nome definitivo do programa, pois atravs deste nome que ser dada ao arquivo Executavel. A extenso por padro de .DPROJ.

Veja que ao salvarmos mudou-se a barra da janela com o nome do projeto, e dentro da rea de trabalho tambm mudou-se aba que contm o formulrio:

Agora voc me pergunta o cdigo professor..... Para voc ter acesso ao cdigo selecione na parte debaixo do formulrio a aba CODE ou pressione F12.

23

Observe que no cdigo contem todos os componentes utilizados em nosso formulrio e sua atual situao de NAME. E a medida que formos implementando o nosso formulrio este mesmo cdigo ir crescer. Bom parte do formulrio j construmos, agora iremos fazer a conexo com a base de dados e alguns objetos para manipular a base de dados.

24

Procure na palheta de ferramentas (tools palette), o componente SQLConnection, SQLDataSet, DataSetProvider, ClientDataSet e DataSource.

Vamos ao nosso primeiro componente o SQLConnection1 (conectividade com a base de dados). Em ConnectionName, selecione o nome, criado em no DataExplores, ConexDB. Na propriedade LoginPrompt, desative coloque FALSE, em Connected coloque TRUE. Em Name coloque Conexao.

25

Selecione SQLDataSet1(Server para selecionarmos com comando SQL os registros de uma TABLE) e altere as seguintes propriedades: Altere a propriedade para SQSCliente. Name e

Clique SQLConnection selecione a Conexao.

Em CommandText, selecione os Trs pontinhos para criarmos linhas de comando SQL para a seleo dos campos de nossa base de dados.

Veja que nesta tela temos a TABLES cliente que j tnhamos criado, de um duplo clique para criarmos a primeira parte do SQL. Select from CLIENTE Na parte Fields, selecione *(asteristico), que quer dizer todos os registros. Ento fica como est na Ilustrao. E pressione OK.

E depois na propriedade Active, selecione TRUE. Selecione o DataSetProvider1(atravs deste componente conseguimos atualizar os contedos de uma tabela), vamos alterar as seguintes propriedades:

26

Propriedade DSPCliente. DataSet, SQSCliente.

Name,

para

selecione

Note a propriedade DataSet, est em destaque, pois uma propriedade de prioridade.

Selecione ClienteDataSet1(nos ajudando a criar uma tabela temporria em memria, para inclumos registros temporrios, e depois fazermos o que quisermos com eles, gravar em banco de dados em arquivo em disco e etc...), alteremos as seguintes propriedades: Na propriedade Name, altere para CDSCliente. ProviderName DSPCliente. Active, torne TRUE. selecione

E por ltimo o nosso DataSource1, no tem muito a alterar. Altere a propriedade Name para DScliente. DataSet para CDSCliente.

27

Selecione novamente CDSCliente, de um duplo clique para podemos inserir os campos que iremos utilizar em nosso formulrio. Para isto basta clicar com o boto direito do mouse e selecionar ADD ALL FIELDS ou simplesmente Ctrl+F, olha ai os campos de nossa TABLE Cliente. Feito isto podemos fechar esta tela.

Colocarei os cones da base de dados em um canto s para podermos manipular os contedos melhores.

28

Agora na palheta SEARCH, procure o LABEL(Rtulo). Altere a propriedade Caption para Cdigo:

Insira um componente chamado DBText1 logo aps o Label1(Cdigo), vamos alterar as seguintes propriedades: DataSource para DSCliente e DataField para IDCliente. Aparecer o Numero do primeiro registro em nossa Tabela. Insira mais 6(seis) LABELs (Label2, Label3, Label4, Label5, Label6, Label7). Altere as propriedades Caption para os seguintes (Label2 -> Nome, Label3 -> Endereo:, Label4 -> Cidade:, Label5 -> Estado:, Label6 - > CEP, Label7 -> Telefone:)

29

Insira um componente chamado DBEdit1, altere as propriedades: DataSource para DSCliente e DataField para Nomecli.

30

Faa o mesmo com os campos Endereo e Cidade.

Para o Estado iremos utilizar um componente chamado DBComboBox, neste iremos alterar o seguintes campos: DataSource para DSCliente e DataField para ESTADOCLI. Agora v para a propriedade Items, clique em (Strings), agora insira a sigla dos Estados em Ordem Alfabtica um em cada Linha, e clique em OK.

31

Insira dois novos DBEdits um para CEP e outro para Telefone. Mas antes de tudo vamos colocar uma Mascar para modelarmos os seus contedos. Para isto selecione o CDSCliente e d um duplo clique. Selecione o ten CEPCLI, e no Object Inspector a propriedade EditMask. Na tela Input Mask Editor selecione Long ZIP Code, no campo Input Mask, apague um dos 9(noves), para corrigir conforme CEP do Brasil. Logo abaixo temos o Test Input, para testarmos a Mascar se est de modo correto. Se estiver Clique em OK.

Agora faamos como Telefone: Apague um 9(nove) entre parnteses e acrescente um 0(zero) antes do trao, para ficar certo. Lembrando que o Estado do So Paulo em 08/2012 acrescentou mais um digito no telefone.

32

Insira agora os dois DBEdits, um para o CEP e outro para o Telefone, alterando os campos DATASORCE e DATAFIELD.

UFA, vamos agora para os cdigos de manipulao dos botes. Mas antes de mais nada vamos rodar o programa pela primeira vez, para isso tecle F9 ou RUN. Se nada tiver com erro ele ir mostra a tela de cadastro, como na figura abaixo.

33

Feche a janela. Agora sim, vamos para o cdigo, d um duplo clique no boto Inserir.

Formulri o em que est o objeto.

Objeto da ao.

Ao que ser feita.

Para podemos inserir um novo registro digitemos, primeiramente o nome da objeto o qual contm os campos que no nosso caso o CDSCliente e depois o comando INSERT. procedure TFRMCad.BtInserirClick(Sender: TObject); begin CDSCliente.Insert; end; end. No Delphi a partir do 2005, temos o sistema de complete. Para isso digite as primeira letras do cdigo e tecle Ctrl+barra, para trazer as opes de complemento.

34

E quando apertamos o ponto, em seguida traz as propriedades do objeto.

Vamos fazer os cdigo dos outros botes Alterar e Cancelar. procedure TFRMCad.BtAlterarClick(Sender: TObject); begin CDSCliente.Edit; end; procedure TFRMCad.BtCancelarClick(Sender: TObject); begin CDSCliente.Cancel; end; Os botes Salvar e Excluir tm algumas particularidades, alm do comando de salvar e excluir, tambm temos que incluir um comando para atualizar a base de dados atravs do comando ApplyUpdates(0) , veja. procedure TFRMCad.BtSalvarClick(Sender: TObject); begin CDSCliente.Post; CDSCliente.ApplyUpdates(0); end; procedure TFRMCad.BtExcluirClick(Sender: TObject); begin CDSCliente.Delete; CDSCliente.ApplyUpdates(0); end; O boto Fechar..... Este meio complicado, mas vamos l para solucionar parte a parte. O comando de fechar o formulrio CLOSE. procedure TFRMCad.BtFecharClick(Sender: TObject); begin close; end;

35

Se terminssemos por aqui estaria bom, mas temos que ser mais crticos pois, devemos prever os usurios. E se o usurio estiver alterando ou Inserindo algum registro, e resolve Fechar o formulrio, sem salvar o contedo. Isto pode ocasionar um corrompimento da base de dados. Para que no ocorra isto temos que condicionar. Mo na massa. Os texto que esto aps as duas barras // so comentrios, outra forma de comentrio entre chaves { } utilizando quando o texto muito prolongado. procedure TFRMCad.BtFecharClick(Sender: TObject); begin if (CDSCliente.State=dsEdit) or (CDSCliente.State=dsInsert) then //Caso a tabela esteja no modo de Insero ou Edio faa ShowMessage('Salver o registro atual!') //mostre uma caixa de dialogo pedindo para salvar o registro else //seno if MessageDlg('Deseja fechar o programa?',mtConfirmation,[mbYes,mbNo],0)=mrYes then // se apos a caixa de confirmao se deseja fechar sim ou no for SIM , ento close; //Feche end; Veja como ficou com o programa rodando.

Agora para que possamos obrigar, que o usurio utilize a o boto FECHAR e no o dialogo da janela o X. Selecione em Struct o nome do formulrio FRMCad e v em propriedades do formulrio e edite os em BordeIcons, coloque tudo em FALSE.

Veja na figura abaixo que j no projeto no se aparece mais os botes maximiza, minimizar e fechar.

36

E isto se repetira na janela do programa rodando.

Masss, ainda no est bom.!!! No sabemos em que estado o registro se encontra. Para isso vamos fazer um pequeno joguinho. Se o registro est no modo de insero, ento obrigatoriamente os botes Alterar e Exluir devero estar opacos. Para isso vamos programar os botes, como? Do mesmo modo em que ele Insere o registros. Bem vamos l d duplo clique no boto Inserir. E insira o seguinte cdigo aps o cdigo de insero de registros.

procedure TFRMCad.BtInserirClick(Sender: TObject); begin CDSCliente.Insert; BtAlterar.Enabled:=false; // est desabilitando o boto Alterar BtExcluir.Enabled:=False; // est desabilitando o boto Excluir end; Quando apertarmos o boto Alterar, os botes Inserir e Excluir devero estar inativos. procedure TFRMCad.BtAlterarClick(Sender: TObject); begin CDSCliente.Edit; BtInserir.Enabled:=false; // est desabilitando o boto Inserir BtExcluir.Enabled:=False; // est desabilitando o boto Excluir end;

37

Quando apertamos os botes Salvar e Cancelar , todos os botes sero habilitados novamente. Para isto basta acrescentar as seguintes linhas: BtInserir.Enabled:=True; // est habilitando o boto Inserir BtExcluir.Enabled:=True; // est habilitando o boto Excluir BtAlterar.Enabled:=True; // est habilitando o boto Alterar

Bem at ai j estaria bom demais, mas uma das coisas mais previsveis. o usurio digitar com letras maisculas e minsculas. O Firebird e case-sensitive, ou seja ele s ir fazer uma busca em um registro se for exatamente igual, para no acontecer isto, selecione o primeiro DBEdit1 no caso o do NOME. V em propriedades Charcase, e troque por UpperCase

Faa o mesmo com todos os DBEdits de nosso formulrio. Tem coisa pra caramb.. mas no paramos por ai.

38

E se quisermos ver outros registros ou alterar um deles, como podemos??? Atravs de um componente chamado de DBNavigator.

Bem algumas delas j inclumos como botes e j tambm utilizamos no IBEXPERT, se vocs se lembram. O que queremos so apenas as de navegaes, ento para isto como DBNavigator selecionado vamos alterar as propriedades. Em VisibleButtons devero estar TRUE apenas nbFirst, nbPrior, nbNext e nbLast e os demais devero estar FALSE. Na propriedade DATASORCE altere para DSCliente.

PRONTO NOSSO PRIMEIRO PROGRAMA DE CADASTRO EST CERTINHO, AT A PRXIMA.

39