procedure para Abrir formulário conforme o estado

24/11/2020

0

Como fazer essa procedure abaixo em um cadastro de listagem modelo, que sera herdada por outros de cadastros de lista e a clicar no botão: Novo, Editar ou excluir existente no formulário de listagem, execute um dos comando da procedure conforme o estado. Ela funciona bem dentro do formulario no exemplo e o TfrmListagemFornecedor, e justamente o que quero é deixa ele genérica.

procedure TfrmListagemFornecedor.AbrirCadastro(
estadoCadastro: TEstadoDoCadastro);
begin
try
dmCadastroFornecedor := TdmCadastroFornecedor.Create(Self);
frmCadastroFornecedor := TfrmCadastroFornecedor.Create(Self);
frmCadastroFornecedor.dtsDados.DataSet := dmCadastroFornecedor.qryCadastroFornecedor;
frmCadastroFornecedor.EstadoDoCadastro := estadoCadastro;
case estadoCadastro of
ecNovo:
begin
dmCadastroFornecedor.qryCadastroFornecedor.ParamByName(''''IDFORNECEDOR'''').AsInteger := -1;
dmCadastroFornecedor.qryCadastroFornecedor.Close;
dmCadastroFornecedor.qryCadastroFornecedor.Open;
dmCadastroFornecedor.qryCadastroFornecedor.Append;
end;
ecModificar:
begin
dmCadastroFornecedor.qryCadastroFornecedor.ParamByName(''''IDFORNECEDOR'''').AsInteger :=
dmListaFornecedor.qryListafornecedorIDFORNECEDOR.AsInteger;
dmCadastroFornecedor.qryCadastroFornecedor.Close;
dmCadastroFornecedor.qryCadastroFornecedor.Open;
end;
ecExcluir:
begin
dmCadastroFornecedor.qryCadastroFornecedor.ParamByName(''''IDFORNECEDOR'''')
.AsInteger := dmListaFornecedor.qryListafornecedorIDFORNECEDOR.AsInteger;
dmCadastroFornecedor.qryCadastroFornecedor.Close;
dmCadastroFornecedor.qryCadastroFornecedor.Open;
end;
end;
frmCadastroFornecedor.ShowModal;
finally
dmCadastroFornecedor.qryCadastroFornecedor.Release;
dmListaFornecedor.qryListafornecedor.Close;
dmListaFornecedor.qryListafornecedor.Open;
end;

end;
Joaci Queiroz

Joaci Queiroz

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar