DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Artigo Clube Delphi Edição 30 - Sistema Datacar

Artigo da Revista Clube Delphi Edição 30.

Esse artigo faz parte da revista Clube Delphi edição 30. Clique aqui para ler todos os artigos desta edição

Sistema Datacar

Criação de um sistema completo com Delphi/Kylix

Parte 2 – Iniciando o acesso a dados

Na primeira parte deste artigo (Edição 29), apresentamos o sistema Datacar, modelamos as tabelas, criamos o banco de dados, construímos o formulário principal e o de base de cadastro, além dos formulários para as tabelas do sistema. Nesta segunda parte, adicionaremos funcionalidade ao formulário de cadastro, e construiremos o Data Module e o acesso a dados.

Personalizando o cadastro padrão

No artigo anterior criamos uma interface padrão para as fichas de cadastro, porém, não adicionamos suas funcionalidades. Abra então o formulário FrmFichaPai que está na unit UFichaPai para iniciar a codificação.

Quando abrir qualquer ficha de cadastro, o usuário deverá ter somente a opção de Incluir ou Procurar um registro. Então, configure a propriedade Enabled dos botões Gravar, Cancelar e Excluir como False. A partir deste momento o sistema deverá controlar os botões automaticamente. O fato de o botão estar habilitado ou não dependerá do estado da tabela. Uma tabela pode estar em 13 diferentes estados. Apenas quatro são importantes para nós: dsInsert (o usuário está inserindo um registro), dsEdit (está alterando), dsBrowse (está consultando ou navegando pelos registros) e dsInactive (a tabela está fechada).

O componente TDataSource (que chamamos de "DtSrc") possui uma propriedade chamada State que informa o estado atual da tabela. Possui também o evento OnStateChange que é chamado a cada vez que o estado da tabela é alterado. Podemos controlar a propriedade Enabled dos botões a partir deste evento, com o seguinte código:

 

procedure TFrmFichaPai.DtSrcStateChange(Sender: TObject);

const

 Estados: array [TDataSetState] of string =

   ('Fechado','Consultando','Alterando','Inserindo',

    '','','','','','','','','');

begin

  btnIncluir.Enabled   := DtSrc.State in [dsBrowse,dsInactive];

  btnGravar.Enabled    := DtSrc.State in [dsInsert,dsEdit];

  btnCancelar.Enabled  := DtSrc.State in [dsInsert,dsEdit];

  btnExcluir.Enabled   := DtSrc.State in [dsBrowse];

  btnProcurar.Enabled  := DtSrc.State in [dsBrowse,dsInactive];

  StsBr.Panels[0].Text := Estados[DtSrc.State];

end;

 

Observe que o array de strings é baseado na enumeração TDataSetState, que contém os possíveis estados da tabela. Este array é usado na última linha de código para preencher o primeiro painel da StatusBar (que chamamos de "StsBr"). Inicialmente este evento não será chamado, pois a tabela está fechada. Assim, coloque "Fechado" na propriedade Text do primeiro painel.

Outra funcionalidade importante que adicionamos ao cadastro é a de verificar se os campos requeridos foram preenchidos. Declare, na seção private, a função Verifica_Campos_Em_Branco e implemente-a da seguinte forma:

 

function TFrmFichaPai.Verifica_Campos_Em_Branco: Boolean;

var cont: Integer;

begin

  Result:=True; //assume que estão todos preenchidos

  for"

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Fernando Sarturi Prass
é Mestre em Ciência da Computação pela UFSC. Professor da Universidade Luterana do Brasil (ULBRA) nos campus de Santa Maria e Cachoeira do Sul. Sócio-diretor da dotBR Soluções em TI (www.dotbr.com.br), empresa que presta serviços de desenvolvimento de sistemas e de consultoria em Bancos de Dados e M...
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03