Artigo Clube Delphi Edição 30 - Sistema Datacar
Artigo da Revista Clube Delphi Edição 30.
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" [...] continue lendo...
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo