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.
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo