Forum > Portuguese
Problema validando campos de um dataset
(1/1)
joaoclobocar:
Estou mudando para o Lazarus mas não consigo fazer a validação de campos a medida que são digitados.
Criei o evento OnSetText e lá fiz a validação, levantando uma exceção caso o campo esteja inconsistente.
--- Code: ---procedure TModelLancamentoFinanceiro.SetTextValorDocumento(Sender: TField; const aText: string);
var
Valor : Currency;
begin
Valor := StrToCurr(aText);
if Valor <> 1 then
begin
raise Exception.Create(Format('o conteúdo %s não é válido para o campo %s', [aText, 'Valor']));
end
else
Sender.AsCurrency := Valor;
end;
--- End code ---
Digitei 2 no DBEdit associado ao valor do pagamento.
Quando teclo Enter no DBEdit, a exception é lançada e o valor do campo volta a ser exibido no DBEdit.
Até aí tudo bem.
Quando teclo Tab ou mudo de campo utilizando o mouse, a exception é lançada, o curso vai para o próximo campo e o valor exibido no DBEdit passa a ser o novo valor (o inconsistente). Apesar de o valor do campo permanecer inalterado, o usuário continua vendo o "2" no DBEdit.
Há alguma forma de permanecer no DBEdit enquanto o seu conteúdo estiver inválido?
Procurei bastante encontrar formas de fazer isto, mas não encontrei.
Navigation
[0] Message Index