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.