Criando uma Interface para padronização dos formulários de Cadastro

Veja como criar uma interface com métodos em comum para todos cadastros e aplicá-la nos formulários de cadastro de um projeto.

Neste artigo irei mostrar como utilizar uma interface para padronizar os formulários de um projeto. Não irei explicar para que serve as Interfaces para não tornar o artigo muito extenso, deixando isso para um próximo artigo.

 

Como exemplo irei utilizar um formulário de cadastro simples. Não irei incluir a manipulação de banco de dados e componentes visuais, pois será um exemplo genérico que poderá ser aplicado em qualquer forma de armazenamento de dados.

 

A idéia principal é fazer com que todos os formulários de cadastro de um projeto utilizem um padrão para seus métodos de manipulação do cadastro e com isso facilitar o entendimento e a manutenção dos formulários.

 

Inicie o Delphi (estou utilizando a versão 7 do Delphi, mas sinta-se à vontade para utilizar a versão que mais lhe agradar), crie uma nova aplicação, o delphi irá criar automaticamente um formulário para sua aplicação, salve-o com o nome de frmCadastro, sua Unit com o nome de Cadastro.pas e o projeto com o nome Interfaces.

 

Feito isso inclua uma nova Unit e salve-a com o nome de MinhasInterfaces.pas, ela deverá contem o seguinte código.

 

 

Unit MinhasInterfaces;

 

interface

 

implementation

 

end.

 

 

Agora vamos incluir na Unit a nossa interface. Após a declaração interface, insira o seguinte código:

 

 

type

  ICadastros = Interface

 

end;

 

 

Posicione o cursor na linha em branco entre o type e o end e precione Ctrl+Shift+G para que o Delphi crie automaticamente um novo número de ID para a interface. Veja que o valor gerado não se repete, então não se preocupe caso o valor gerado esteja diferente do que aparece nesse exemplo. A Unit deverá estar da seguinte forma:

 

 

Unit MinhasInterfaces;

 

interface

 

type

  ICadastros = Interface

    [{35EF018D-7AC0-4D9B-9D42-DE6F508721C7}]

  end;

 

implementation

 

end.

 

 

Agora podemos incluir alguns métodos em nossa interface, como podemos ver a seguir:

 

 

Unit MinhasInterfaces;

 

interface

 

type ICadastros = Interface

  [{35EF018D-7AC0-4D9B-9D42-DE6F508721C7}]

    procedure Incluir;

procedure Alterar;

    function Deletar(Perguntar :Boolean) :Boolean;

procedure Salvar;

    procedure Cancelar;

function ValidarDados :Boolean;

  end;

 

implementation

 

end.

 

 

Já temos nossa interface, agora vamos implementá-la em nossa tela de cadastro.

Volte para o nosso formulário frmCadastro e visualize sua Unit, ela deve estar da seguinte forma:

 

 

Unit Cadastro;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs;

 

type

  TfrmCadastro = class(TForm)

  private

{ Private declarations }

  public

{ Public declarations }

  end;

 

var

  frmCadastro: TfrmCadastro;

 

implementation

 

{$R *.dfm}

 

end.

 

 

Agora vamos declarar a Unit da nossa interface na Unit Cadastro, vá no Uses e inclua MinhasInterfaces.

 

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, MinhasInterfaces;

 

 

Feito isso, basta informar para nossa classe TfrmCadastro que será implementada a interface ICadastros como mostra o código a seguir:

 

 

  TfrmCadastro = class(TForm, ICadastros)

 

 

Tente compilar o projeto e veja que o Delphi irá retornar 6 erros, acusando Undeclared identifier para os métodos de nossa interface, pois estamos implementando uma interface e não declaramos os métodos contidos na mesma.

 

Continuando, vamos inserir os métodos da interface ICadastros em nosso formulário, você pode copiá-los e colá-los após a declaração public da Unit Cadastro como mostra o código a seguir:

 

 

Unit Cadastro;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, MinhasInterfaces;

 

type

  TfrmCadastro = class(TForm, ICadastros)

  private

{ Private declarations }

  public

{ Public declarations }

procedure Incluir;

procedure Alterar;

function Deletar(Perguntar :Boolean) :Boolean;

procedure Salvar;

procedure Cancelar;

function ValidarDados :Boolean;

  end;

 

var

  frmCadastro: TfrmCadastro;

 

implementation

 

{$R *.dfm}

 

end.

 

 

Para que o Delphi crie automaticamente a implementação dos métodos incluídos na Unit, basta posicionar o cursor logo após a declaração public e pressionar a combinação de teclas Ctrl+Shift+C.

 

Pronto seu formulário já contém os métodos de sua interface, agora é só implementar o que cada método deverá fazer. A seguir segue o exemplo completo da Unit Cadastro.

 

 

Unit Cadastro;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, MinhasInterfaces;

 

type

  TfrmCadastro = class(TForm, ICadastros)

  private

{ Private declarations }

  public

{ Public declarations }

procedure Incluir;

procedure Alterar;

function Deletar(Perguntar :Boolean) :Boolean;

procedure Salvar;

procedure Cancelar;

function ValidarDados :Boolean;

  end;

 

var

  frmCadastro: TfrmCadastro;

 

implementation

 

{$R *.dfm}

 

{ TfrmCadastro }

 

//método para alterar os dados de um registro do cadastro

procedure TfrmCadastro.Alterar;

begin

  ShowMessage(Alterando dados do cadastro.);

end;

 

//método para cancelar uma inclusão ou edição do cadastro

procedure TfrmCadastro.Cancelar;

begin

  ShowMessage(Cancelando inclusão / edição de dados do cadastro.);

end;

 

//método para excluir um registro do cadastro

function TfrmCadastro.Deletar(Perguntar: Boolean): Boolean;

begin

  result := false;

  if (Perguntar) then

if (Application.MessageBox(Deseja excluir o registro ?,Atenção,MB_ICONQUESTION+MB_YESNO)=idYes) then

begin

ShowMessage(Registro excluído);

result := true;

end;

end;

 

//método para incluir um novo registro no cadastro

procedure TfrmCadastro.Incluir;

begin

  ShowMessage(Incluindo dados do cadastro.);

end;

 

//método que valida os dados do registro do cadastro e salva caso esteja tudo ok

procedure TfrmCadastro.Salvar;

begin

  if (ValidarDados) then

ShowMessage(Registro salvo.)

  else

ShowMessage(Informe os campos obrigatórios.);

end;

 

//método para validar os o preenchimento dos campos do cadastro retornando True/False

function TfrmCadastro.ValidarDados: Boolean;

begin

  result := true;

end;

 

end.

 

 

Existem outras formas de implementar um formato de padronização para as telas de um projeto, tentei mostrar para vocês uma forma simples para fazer isso.

 

Até o próximo artigo.

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados