Você está na página 1de 9

1

Criao do Template

1. Crie uma nova aplicao no Delphi
2. Salve a aplicao (Menu File- Opo Save All)
3. Salve o nome da Unit como UMenu e o nome do Projeto como Comercial
4. Selecione o formulrio aberto, no Object Inspector altere a propriedade Name para
FMenu e a propriedade Caption para Menu.
5. Na seqncia dirija-se paleta Standard e selecione o componente MainMenu
6. Crie a primeira opo do Menu denominada Cadastros e depois crie a subopo
Pas.
7. Na seqncia crie um formulrio para criao do nosso template(Menu File, Opo
New Form)
8. Salve este arquivo com o nome UPadrao.
9. Selecione o formulrio aberto, no Object Inspector altere a propriedade Name para
FPadrao e na propriedade Caption apague todo o texto.
10. Na paleta Standard , selecione o componente Panel e coloque-o sobre o formulrio.
11. Selecione o componente Panel1 e no Object Inspector apague o texto da
propriedade Caption e mude a propriedade Align para AlClient (O Panel
redimensionado para preencher toda a rea do formulrio).
12. Na paleta Standard, selecione outro componente Panel e coloque-o sobre Panel1
13. Selecione o componente Panel2 e no Object Inspector apague o texto da
propriedade Caption e mude a propriedade Align para AlBottom (O Panel2
posicionado na parte inferior do Panel1 e redimensionado para preencher toda a
largura do Panel1). Redimensione a altura se julgar necessrio.
14. Na paleta Win32, selecione o componente PageControl e coloque-o sobre o
Panel1.
2
15. Selecione o componente PageControl e no Object Inspector mude a propriedade
Align para AlClient(O PageControl redimensionado para preencher toda a rea
do Panel1 que no esteja ocupada)
16. Selecione o componente PageControl1, clique com o boto direito do mouse e
selecione a opo New Page. Neste momento criada uma nova pgina
denominada TabSheet1. Selecione esta pgina e altere a propriedade Caption para
Manuteno e a propriedade Name para TabManuteno
17. Selecione o componente PageControl1 novamente, clique com o boto direito do
mouse e selecione a opo New Page. Neste momento criada uma nova pgina
denominada TabSheet2. Selecione esta pgina e altere a propriedade Caption para
Geral e a propriedade Name para TabGeral
18. Selecione o componente Panel da paleta Standard e coloque-o sobre a pgina
TabManutencao.
19. Selecione o componente Panel3 e no Object Inspector apague o texto da
propriedade Caption e mude a propriedade Align para AlBottom (O Panel3
posicionado na parte inferior do pgina TabManutencao e redimensionado para
preencher toda a largura da pgina). Redimensione a altura se julgar necessrio.
20. Insira 5 botes BitBtn da Paleta Additional sobre o Panel 3.
21. Altere as seguintes propriedades para cada boto:
a. Primeiro Boto
i. Propriedade Name: Novo
ii. Propriedade Caption: Novo
iii. Propriedade Glyph: FileNew
b. Segundo Boto
i. Propriedade Name: Alterar
ii. Propriedade Caption: Alterar
iii. Propriedade Glyph: Edit
c. Terceiro Boto
i. Propriedade Name: Excluir
ii. Propriedade Caption: Excluir
3
iii. Propriedade Glyph: Erase
d. Quarto Boto
i. Propriedade Name: Confirmar
ii. Propriedade Caption: Confirmar
iii. Propriedade Glyph: Check
e. Quinto Boto
i. Propriedade Name: Cancelar
ii. Propriedade Caption: Cancelar
iii. Propriedade Glyph: Undo
22. Insira o componente GroupBox da Paleta Standard no Panel2.
23. Selecione o GroupBox1 e no Object Inspector altere a propriedade Caption para
Busca.
24. Insira um Combox e um Edit da Paleta Standard dentro do GroupBox1. Apague o
contedo da propriedade Text do Combox1 e do Edit1. Altere a propriedade Color
para clMoneyGreen
25. Na paleta DataControls, selecione um DbNavigator e coloque-o dentro do Panel2.
26. Selecione o DbNavigator1 e no Object Inspector clique sobre a propriedade
Visible Buttons. ,Deixe o valor True para apenas os 4 primeiros botes
(nbFirst,nbPrior, nbNext, nbLast) .
27. Na paleta DataControls, selecione uma Dbgrid e coloque-a na pgina TabGeral
Altere a propriedade Align para AlClient
At agora, inserimos apenas os componentes da Interface. O Resultado final est
apresentado nas figuras abaixo.



4




Na seqncia iremos inserir os componentes de acesso ao banco ao template.
O componente Database deve ser inserido uma nica vez na aplicao, ento iremos coloc-lo no
fornulrio FMenu, atravs dos seguintes passos:
1. Selecione o formulrio FMenu.
5
2. Adicione da Paleta BDE o componente Database. Obs: atravs deste componente que
acessamos a base de dados.
3. Selecione o Database1 e configure:
a. No object Inspector, na propriedade AliasName selecione a opo Comercial (
Este o nome da fonte de dados criada que conecta ao banco comercial via
ODBC)
b. Na propriedade DatabaseName informe o nome de SisCom (Sistema
Comercial). Toda vez que for necessrio referenciar este componente, ser
utilizado o nome SisCom.
c. Clique duas vezes sobre o componente Database1. Ser aberta uma caixa de
dilogo para ser configurado alguns parmetros do database. Clique sobre o boto
Defaults. Ao clicar sobre este boto, uma lista de parmetros ser exibida em
Parameter Overrides. Para evitar que toda vez que for rodar o programa seja
solicitado o nome do usurio e a senha, ser desmarcada o opo Login Prompt
e configurado os parmetros USER NAME com o valor comercial e PASSWORD
com o valor fateb.
d. Na seqncia clique no boto OK para confirmar as configuraes e fechar a caixa
de dilogo.
e. Na seqncia, no Object Inspector, altere a propriedade Connected para true.
Se no acusar nenhum erro, significa que a conexo com o banco foi executada
com sucesso.
4. Adicione no Formulrio FPadrao o componente Query da Paleta BDE. Ser neste
componente onde ser especificado o SQL principal de cada cadastro.
5. Selecione o Query1 e no Object Inspector configure:
a. Na propriedade DatabaseName selecione a opo SisCom. atravs desta
propriedade que associamos a query (consulta SQL) ao banco de dados que ser
extrada as informaes. DatabaseName deve corresponder ao nome colocado na
propriedade DatabaseName do componente Database1 que consta no Formulrio
FMenu.
b. Na propriedade Name informe o valor QPrincipal.
c. Altere a propriedade CachedUpdates para True.
6. Adicione da Paleta BDE o componente UpdateSQL.
7. Na seqncia, selecione a Query denominada QPrincipal e associe a este dataset que
somente leitura, o componente UpdateSQL. Para isto, no Object Inspector, na propriedade
UpdateObject, selecione o componente denominado UpdateSQL1.
8. Adicione da Paleta Data Acess o componente DataSource e altere a propriedade Name
para DSPrincipal.
6
9. Altere a propriedade AutoEdit para False. Configure esta propriedade para permitir
alterao dos campos apenas se tiveram em estado de Edio ou Insero.
10. Associe o componente QPrincipal ao DSPrincipal, atravs da propriedade DataSet do
Data Source.
11. Na seqncia associe os componentes Dbgrid1 e DbNavigator1 ao Data Source. Para
isto selecione na propriedade Data Source dos componentes DbGrid1 e DbNavigator1 a
opo DSPrincipal.
12. Agora iremos inserir mais um componente Query que ser utilizado para buscar o valor da
seqncia criada no banco.
13. Adicione no Formulrio FPadrao o componente Query da Paleta BDE e altere a
propriedade Name para QSequencia e a propriedade DatabaseName para Siscom.

Neste momento, temos os componentes de interface e os componentes de acesso ao
banco.Vamos agora realizar a programao de cada boto.

Primeiramente vamos criar um procedimento denominado Habilita_Desabilita_Botoes.
Este procedimento far o tratamento dos botes dependendo das funes selecionadas no
Cadastro.
Para isto, abra a Unit UPadrao e na seo Type declare o procedimento. No exemplo
estamos declarando um procedimento denominado Habilita_Desabilita_Botoes. Este
procedimento apresenta um parmetro inteiro denominado tipo.

unit UPadrao;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ExtCtrls, StdCtrls, Buttons, DBCtrls, Grids, DBGrids,
DB, DBTables;

type
TFPadrao = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
PageControl1: TPageControl;
TabManutencao: TTabSheet;
procedure Habilita_Desabilita_Botoes(tipo:integer);

7

Aps a declarao do procedimento, iremos cri-lo na seo Implementation.

procedure TFPadrao.Habilita_Desabilita_Botoes(Tipo:integer);
begin
if tipo=1 then
begin
Novo.Enabled := False;
Excluir.Enabled := False;
Alterar.Enabled := False;
Confirmar.Enabled := True;
Cancelar.Enabled := True;
DBNavigator1.Enabled := False;
end
else
begin
Novo.Enabled := true;
Excluir.Enabled := true;
Alterar.Enabled := true;
Confirmar.Enabled := False;
Cancelar.Enabled := False;
DBNavigator1.Enabled := true;
end;
end;
Obs: O tipo igual a 1 ser utilizado quando o usurio selecionar a opo Novo ou Altera.
Ao selecionar estas opes, ficaro ativos apenas os botes para Cancelar e Confirmar. O
DbNavigator1 tambm ficar desabilitado.
O tipo igual a 2 ser utilizado quando o usurio Confirmar ou Cancelar um cadastro. Ao
selecionar estas opes, sero habilitados os botes para Criar, Excluir ou Alterar um novo
registro. O DbNavigator1 tambm ser habilitado.
Na seqncia iremos implementar o evento OnClick de cada Boto
Boto Novo
procedure TFPadrao.NovoClick(Sender: TObject);
begin
QPrincipal.Append; //cria um novo registro no final do dataset
Habilita_Desabilita_Botoes(1); //habilita apenas os botes Confirmar e Cancelar
end;.

Boto Alterar
procedure TFPadrao.AlterarClick(Sender: TObject);
8
begin
QPrincipal.Edit; //Habilita a Edio do Registro
Habilita_Desabilita_Botoes(1); //habilita apenas os botes Confirmar e Cancelar
end;



Boto Excluir
procedure TFPadrao.ExcluirClick(Sender: TObject);
begin
if MessageDlg('O Registro corrente ser apagado ... Confirma ?',
mtInformation, [mbYes, mbNo], 1) = mrYes then
begin
QPrincipal.Delete;
QPrincipal.ApplyUpdates;
QPrincipal.CommitUpdates;
end;
end;

Boto Confirmar
procedure TFPadrao.ConfirmarClick(Sender: TObject);
begin
Qprincipal.Post;
QPrincipal.ApplyUpdates;
QPrincipal.CommitUpdates;
Habilita_Desabilita_botoes(2);
end;

Boto Cancelar
procedure TFPadrao.CancelarClick(Sender: TObject);
begin
QPrincipal.CancelUpdates;
{Limpa todas as atualizaes pendentes em cache na memria e reestabele o dataset no seu
estado inicial}
Habilita_Desabilita_Botoes(2); //Habilita apenas os botes Inserir, Alterar e Excluir
end;


Na seqncia selecione o DBGrid1 e no evento DblClick faa:

procedure TFPadrao.DBGrid1DblClick(Sender: TObject);
begin
PageControl1.ActivePage:=tabManutencao;
9
{Ao clicar duas vezes sobre a grid, ser ativada a pgina do PageControl denominada
TabManuteno}
end;

A nossa Query principal (Qprincipal) ser aberta quando ativar o formulrio, conforme
cdigo abaixo:

procedure TFPadrao.FormActivate(Sender: TObject);
begin
Habilita_Desabilita_Botoes(2); { Ao ativar o formulrio , ser habilitados apenas os
botes Inserir, Alterar e Excluir}
QPrincipal.Open; // Abri a Query
end;

Para que o uso da Tecla Enter funcione, ative a propriedade KeyPreview para True do
formulrio FPadrao e no evento onKeyPress do formulrio digite o cdigo abaixo:

procedure TFPadrao.FormKeyPress(Sender: TObject; var Key: Char);
begin
If key = #13 then {verifica se a tecla pressionada a tecla ENTER, conhecida pelo Delphi
como #13}
begin
//se a tecla for Enter, zera o valor da varivel Key e passa o foco para o prximo campo,
Key:= #0;
Perform(Wm_NextDlgCtl,0,0);
end;

Salve novamente.Agora este novo template de cadastro est pronto.

Você também pode gostar