Fórum Invalid input value. Use escape key to abandon changes #222024
24/03/2004
0
Acontece que se a pessoa começar a digitar algo no campo e depois apagar o conteúdo do mesmo e sair acontece a mensagem:
Eu não quero que esta mensagem apareça, quero tratá-la para que o usuário possa sair normalmente do campo sem ser interrompido.
Já tentei isso no [b:9f6e46a7d0]onExit, onKeyPress, onKeyDown[/b:9f6e46a7d0] do controle e nos eventos [b:9f6e46a7d0]onChange, onValidate e onGetText [/b:9f6e46a7d0]do campo no FieldsEditor.
valeu
Adriano Santos
Curtir tópico
+ 2Post mais votado
25/03/2004
Na propriedade Mask coloquei.
[color=red:6d3eb4d224][b:6d3eb4d224]!99/99/9999;1;_[/b:6d3eb4d224][/color:6d3eb4d224]
Quando se coloca 9 ao invés de 0, você consegue sair do campo sem digitar totalmente a data, do jeito que eu quero. Se colocar 0, é obrigatório terminar a digitação, me corrijam se eu estiver errado pois foi o que pude perceber.
Ai com esse controle eu tenho mais ´controle´ sobre o objeto. no OnExit coloquei:
Try if not (RemoveEspaco(dbNasc.Text) = ´//´) and not (ActiveControl = btnSair) and not (ActiveControl = btnCancelar) then StrToDate(dbNasc.Text); Except Mensagem(´O campo "Data de Nascimento" contém um valor inválido.´ + #13 + ´Data: ´ + dbNasc.Text); if dbNasc.CanFocus then dbNasc.SetFocus; end;
Ai funcionou, o único problema é que tenho que atualizá-lo manualmente, mas até ai beleza.
valeu galera.
Adriano Santos
Gostei + 1
Mais Posts
24/03/2004
Paulo_amorim
Isso enche o saco mesmo...acontece tambem no TMaskEdit. Até hoje não achei código que suspenda esse maldito aviso...
Eu sempre emito mensagens de erro, menos nesse caso que mantenho o do componente.
Até+
Gostei + 0
24/03/2004
Delphi32
[url]http://delphiforum.icft.com.br/forum/viewtopic.php?t=38904[/url]
Se você descobrir, poste aki, ok?
bb!
Gostei + 0
24/03/2004
Ariovaldo
// Função para Validar Data
function CheckDate(Sender: TField; Text: String): Boolean;
begin
Result := False;
if (Text = ´ / / ´) or (Text = ´ / / ´) then
begin
Sender.Clear;
Result := True;
end
else
begin
try
Sender.AsString := Text;
Result := True;
except
Showmessage(´Data Inválida !!!´, mtInformation,[mbOk],0 );
if Screen.Cursor = crHourGlass then begin
Screen.Cursor := crDefault;
end;
end;
end;
end;
e no evento On SetText do Field da data eu tenho este código
if not ( CheckDate(Sender,Text) ) then begin
Abort;
end;
end;
na propriedade display format do field eu coloco
dd/mm/yyyy
Na propriedade Edit mask do field eu coloco isso
#//
Gostei + 0
25/03/2004
Delphi32
era exatamente isso! thx!
Gostei + 0
14/12/2018
Atilio
Vai adicionar um evento ONCHANGE no botão
if TDBIMASKEDIT(SENDER).GETVALUE = '' (Ou com TRIM = Caractere Fixo)
then
TDBIMASKEDIT(SENDER).Modified := False;
Assim toda vez que limpar o campo vai ser como se nunca tivesse modificado o mesmo para ele ficar "aguardando um valor"
Gostei + 1
Clique aqui para fazer login e interagir na Comunidade :)