...
Na sequência , a título de melhorar o exemplo foi resgatado o valor informado ao campo “AUTORIZACAO” através da função “ValorNaTela” e comparado se o valor informado já não cumpre o que se espera como regra personalizada (valor possuir 7 caracteres). Caso não atenda a regra personalizada o objeto do tipo TFormValidacao é criado, o valor atual informado é atribuído ao valor atual do componente, e a tela é apresentada a partir do método ShowModal. Conforme o resultado do ShowModal o novo valor é atribuído em tela ou uma mensagem de erro é adicionada a tela do cadastro não permitindo salvar a informação sem que seja resolvida a situação. No “finally“importante destacar a chamada do método “free” evitando que o formulário e seus componentes fiquem em memória.
Segue o código completo do da unit “uPrinc” utilizada nesse exemplo:
Code Block | ||
---|---|---|
| ||
uses uFormValidacao; var form : TFormValidacao; cAutorizacao : String; begin cAutorizacao := Trim(FFormPadraoRHCAGEDRESP.ValorNaTela('AUTORIZACAO')) if (Length(cAutorizacao) < 7) then begin form := TFormValidacao.Create(nil); try form.edAutorizacao.Text := cAutorizacao; if (form.Showmodal = mrok) then FFormPadraoRHCAGEDRESP.ValorParaTela('AUTORIZACAO', form.edAutorizacao.Text) else FFormPadraoRHCAGEDRESP.AddErro(FFormPadraoRHCAGEDRESP.EditorDaColuna('EB_','AUTORIZACAO'), 'Autorização deve ter 7 dígitos'); finally form.free; end; end; end; |
Evidenciando boas práticas
Uso do ShowModal
Para o caso dos script´s para eventos em que se espera um resultado a partir da execução de um formulário, é uma boa prática que esse formulário seja aberto com ShowModal. Sem usar o ShowModal e sim o Show corre o risco do usuário clicar fora da tela e o formulário criado ser sobreposto causando dificuldade ao usuário.Uso do Free
Importante sempre usar o método “Free”, inclusive quando instanciado formulários. O não uso deixa objetos perdidos em memória que podem causar problemas na utilização do sistema.