Criando Form Padrão: Herança:
Hoje estaremos trabalhando como conceito de herança de formulário no Delphi X. Um exemplo simples.
O Objetivo e criar um formulário padrão, e com isto criar os novos a partir deste. Com isso manteremos o padrão de tela e otimizaremos alguns códigos que sempre se repetem em todos os formulários.
Então, dar início ao nosso aplicativo. Crie um novo projeto. Vá te File >> New >> Windows VCL Application - Delphi. Salve o formulário como FFormPadrao e o Projeto Sistema.
Vamos utilizar:
Nosso formulário FFormPadrao vamos colocar os componentes acima desta forma:
Adicione agora o componente TImageList e selecione 10 ícones de sua preferência:
Vamos vincular as imagens nos botões, colocamos um TActionList e adicionamos cinco action com os nomes de actNovo, actAlterar, actExcluir, actGravar, actFechar, na properties Images vinculamos ao TImageList, e no ImageIndex de cada action se coloca o índice de cada imagem do TImageList
Adicionar imagens aos actions criados pelo ImageIndex
Vamos começar a adicionar os comandos para os botões, a partir do TDataSource
Dê um duplo clique sobre o evento OnStateChange do TDataSource e adicione o comando abaixo:
procedure TFFormPadrao.dsGenericoStateChange(Sender: TObject);
begin
actGravar.Enabled := (dsGenerico.DataSet.State in dsEditModes);
actNovo.Enabled := not actGravar.Enabled;
actAlterar.Enabled := actNovo.Enabled;
actExcluir.Enabled := actNovo.Enabled;
if actGravar.Enabled then
actFechar.Caption := 'Cancelar'
else
actFechar.Caption := 'Fechar';
end;
Este código vai controlar se os botões estão habilitados ou não.
Dê um duplo clique sobre o evento OnExecute do actNovo e adicione o comando abaixo:
procedure TFFormPadrao.actNovoExecute(Sender: TObject);
begin
dsGenerico.DataSet.Insert;
end;
Dê um duplo clique sobre o evento OnExecute do actAlterar e adicione o comando abaixo:
procedure TFFormPadrao.actAlterarExecute(Sender: TObject);
begin
if not (dsGenerico.DataSet.State in dsEditModes) and not dsGenerico.DataSet.IsEmpty then
dsGenerico.DataSet.Insert;
end;
Dê um duplo clique sobre o evento OnExecute do actExcluir e adicione o comando abaixo:
No evento OnCreate adicione o comando abaixo apenas para controle para lembrar de adicionar o componente de conexão a banco de dados:
procedure TFFormPadrao.actExcluirExecute(Sender: TObject);
begin
if not dsGenerico.DataSet.IsEmpty and
(MessageDlg('Deseja excluir o registro', mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
dsGenerico.DataSet.Delete;
end;
Dê um duplo clique sobre o evento OnExecute do actGravar e adicione o comando abaixo:
procedure TFFormPadrao.actGravarExecute(Sender: TObject);
begin
if dsGenerico.DataSet.State in dsEditModes then
dsGenerico.DataSet.Post;
end;
Dê um duplo clique sobre o evento OnExecute do actFechar e adicione o comando abaixo:
procedure TFFormPadrao.actFecharExecute(Sender: TObject);
begin
if dsGenerico.DataSet.State in dsEditModes then
dsGenerico.DataSet.Cancel
else
Close;
end;
No evento OnCreate adicione o comando abaixo apenas para controle para lembrar de adicionar o componente de conexão a banco de dados:
procedure TFFormPadrao.DoCreate;
begin
inherited;
Try
dsGenerico.DataSet.Open;
except
on e: Exception do begin
ShowMessage('Erro ao conectar base de dados' + sLineBreak + 'Classe : ' + E.ClassName);
End;
End;
end;
Então em si nossa tela esta pronta, logico da para incluir varias outras perfumarias na tela, mas lembrando que tem que ser códigos que ira ser utilizado por todas as telas filhas
Agora para utilizar este formulário padrão para as telas de cadastro de registro, basta ir em File > New >Other > Inheritable Items > FFormPadrao.

Seu novo formulário herdará todas as características do formulário padrão.
Exemplo: Download do exemplo
0 comentários:
Postar um comentário