Tutorial passo a passo de um sistema em paradox

Início
Fields Editor
Formulário de clientes
Formulário de despesas
Formulário de Pesquisa de Clientes
Formulário de Pesquisa de Despesas
Relatório de Clientes

Início

Como foi visto na primeira parte sobre banco de dados, o dbnavigator não necessita de codificação nenhuma para manipular dados. Como você não terá acesso individualmente aos botões do mesmo, será difícil por exemplo: ao clicar no botão para inserir novo registro, você enviar o foco para uma determinada caixa, além de outros inconvenientes, como ao excluir exibir a confirmação, etc.

Para isso neste exemplo não vamos utiliza-lo.

Criando o Menu do Sistema

Inicie um projeto novo:
- Menu File / Neew / Application.
- Clique no botão Save All ou Menu File / Save All.
- Salve a unit como: Menu.
- Salve o projeto como: ctrDespesa.

Clique no componente MainMenu na guia Standard e na propriedade Name, coloque: mmMenu.

Dê um duplo clique neste componente que você acabou de colocar, e crie os menus com as seguintes opções:

Caption Shortcut
&Cadastro  
   C&liente Ctrl+L
   -  
   Sai&r Alt+F4
&Despesa  
   L&ançamento Ctrl+A
&Relatório  
  Cliente  
  Despesa  

Observação: Para criar os itens na vertical (um abaixo do outro):
- Depois que você fez o Menu Cadastro e pressionar Enter, o delphi deslocará para a direita.
- Clique na palavra Cadastro que o desloccamento será para baixo.

Neste projeto, será utilizado o Data Module. Os componentes Table e Data Source, serão colocados dentro do mesmo. O Data Module funciona como um repositório de dados, ou seja: ao invés de você colocar o Table e o Data Source em todos os formulários, basta colocar dentro do mesmo e fazer a referência em cada formulário.

Clique no Menu File / New / Data Module
Name: dmDespesa

Ligando o Table e o DataSource

Selecione a Guia BDE. Coloque o componente Table e altere as propriedades:
Name: tbCliente
Databasename: Selecione o alias Despesa (Clique aqui para ver como cria o alias)
TableName: Selecione a tabela Cliente.DB.

Fields Editor
Clique com o botão direito no componente tbCliente que você colocou no módulo, e selecione: Fields Editor.

Selecione Add Fields e confirme no botão OK.

Todos os campos serão inseridos na lista.

Propriedade EditMask

Selecione o campo DataCadastro. Pressione a tecla F11 e na propriedade EditMask, clique no botão ao lado para configurar a máscara de entrada. Faça o mesmo com o telefone.

Selecione a Guia Data Access. Coloque o componente Data Source e altere as propriedades:
Name: dsCliente
DataSet: tbCliente

Formulário de Clientes

Vamos utilizar o mesmo projeto Despesas, bastando apenas que você retire o dbnavigator dos dois formulários e os componentes Table e Data Source.
Deixe o formulário de acordo com a imagem abaixo:

Você deverá criar mais dois painéis: pnlNavegacao e pnlOpcoes
Na guia Additional, coloque 10 botões bitbtn

Name Glyph Hint
btnPrimeiro Arrow1L Primeiro
btnAnterior Arrow2L Anterior
btnProximo Arrow1R Próximo
btnUltimo Arrow2R Último
btnNovo FileNew Novo
btnEditar Edit Editar
btnSalvar FileSave Salvar
btnExcluir Trash Excluir
btnCancelar Ignore Cancelar
btnConsulta CRDFILE1 Consulta
btnSair DoorOpen Sair

Selecione todos os botões e coloque na propriedade ShowHint como True, para que quando você passar o mouse sobre os mesmos, seja exibida a mensagem colocada na propriedade Hint.

Ligando o Data Module no formulário

Clique no Menu File/Use Unit. Selecione na janela o módulo. Caso não apareça o módulo (dmDespesa), é porquê o mesmo já está ligado ao formulário. Isto acontece quando você arrasta os campos da janela do Field Editor para o formulário.

Codificando os botões

Primeiro:
dmDespesa.tbCliente.First
Anterior:
dmDespesa.tbCliente.Prior
Próximo:
dmDespesa.tbCliente.Next
Último:
dmDespesa.tbCliente.Last

Novo:
dmDespesa.tbCliente.Insert;
btnNovo.Enabled:=False;
btnEditar.Enabled := False;
btnExcluir.Enabled :=False;
btnSalvar.Enabled:= True;
dbeDataCadastro.Text := dateTostr(Date); //função dateTostr converte tipo Data para String
pnlDados.Enabled :=True;
dbeNome.SetFocus;
Editar:
dmDespesa.tbCliente.Edit;
btnEditar.Enabled := False;
btnNovo.Enabled := False;
btnExcluir.Enabled := False;
btnSalvar.Enabled := True;
pnlDados.Enabled := True;
dbeNome.SetFocus;
Salvar:
if Application.MessageBox('Deseja Salvar ?','Salvar', mb_YesNo + mb_IconQuestion) = idYes then
dmDespesa.tbCliente.Post //Salva (atualiza) o registro na tabela
else
dmDespesa.tbCliente.Cancel; //Cancela o Insert ou Edit
btnNovo.Enabled := True;
btnEditar.Enabled := True;
btnExcluir.Enabled := True;
btnSalvar.Enabled := False;
pnlDados.Enabled := False;
Excluir:
try
dmDespesa.tbCliente.Delete;
except
Application.MessageBox('Existem detalhes! Despesas lançadas!','Cliente',mb_Iconinformation);
end;
Cancelar:
dmDespesa.tbCliente.Cancel;
btnNovo.Enabled := True;
btnEditar.Enabled := True;
btnExcluir.Enabled := True;
btnSalvar.Enabled := False;
pnlDados.Enabled := False;
Sair:
Close;

Abrindo a tabela

- Selecione o formulário e na Guia Events
- Selecione onShow
- Dê um duplo clique dentro da caixa branca e na janela de código digite:
dmDespesa.tbCliente.Open;

Fechando a tabela

- Selecione onClose
- Dê um duplo clique dentro da caixa branca e na janela de código digite:
dmDespesa.tbCliente.Close;

Codificando o menu para abrir o formulário de cliente

- Pressione Shift+F12.
- Selecione frmMenu.
- Clique no Menu Cadastro / Cliente.
- Digite na janela de código: frmCliente.ShowModal e pressione F9 para executar o programa.
- Será exibido a mensagem de acordo com a imagem abaixo:

ou seja: a mensagem indica que o formulário de menu está fazendo uma referência para o formulário de clientes. Para que o delphi coloque na lista de formulários criados, responda Yes e pressione F9 novamente para ao acessar o Menu Cadastro / Cliente, o mesmo seja carregado.