Fórum Como criar um campo para inserção de hora, que somente os digitos valido seja digitados ? [DELPHI] #597123

13/09/2018

0

Boa tarde a todos

Bom eu venho desenvolvendo um sistema em delphi, e me deparo com a seguinte questão.
Como faço para com que o campo hora somente receba os valores validos de hora
e o mesmo com o campo data.

Espero ter sido claro
Agradeço desde ja.
Doni

Doni

Responder

Posts

13/09/2018

Felipe Morais

Doni,

O Delphi possui validações de data e hora (unit SysUtils) nas seguintes funções:

TryStrToDate
TryStrToTime
TryStrToDateTime


Use-as para validar os seus campos. Espero ter ajudado.
Responder

Gostei + 0

13/09/2018

Doni

Mas com eu evito que ele digite 25:00 por exemplo
eu queria restringir ele a somente ao valores validos para hora (00:00 a 23:59)

seria possivel isso ?
talvez com algum outro componente?
Responder

Gostei + 0

15/09/2018

Raimundo Pereira

Criei esta função:

function TForm1.ValidValue(ValorCampo: string): ttime;
begin
 try
   Result:=StrToTime(ValorCampo);
  except
   Result:=StrToTime('00:00:00');
 end;
end;


procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
Edit1.Text:=TimeToStr(ValidValue(Edit1.Text));

end;
end;
Responder

Gostei + 0

15/09/2018

Doni

Criei esta função:<br />
<br />
<br />
function TForm1.ValidValue(ValorCampo: string): ttime;<br />
begin<br />
 try<br />
   Result:=StrToTime(ValorCampo);<br />
  except<br />
   Result:=StrToTime(''00:00:00'');<br />
 end;<br />
end;<br />
<br />
<br />
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);<br />
begin<br />
if key = #13 then<br />
begin<br />
Edit1.Text:=TimeToStr(ValidValue(Edit1.Text));<br />
<br />
end;<br />
end;<br />
<br />
<br />
<br />


o que essa codição com #13 faria ?
Responder

Gostei + 0

15/09/2018

Raimundo Pereira

Doni, esta condição está dentro Edit1KeyPress

Significa que ao pressionar uma tecla ele executar algo.
No caso eu valido no onkey press do button "Enter" =13

Você pode chamar a função ao sair do campo também.
Responder

Gostei + 0

15/09/2018

Raimundo Pereira

Doni, esta condição está dentro Edit1KeyPress

Significa que ao pressionar uma tecla ele executar algo.
No caso eu valido no onkey press do button "Enter" =13

Você pode chamar a função ao sair do campo também.
Responder

Gostei + 0

15/09/2018

Doni

a sim, mas nesse caso a validação da hora só aconteceria após o usuário apertar o enter ou sair do campo;

esse é o único modo ? Esta pensado em algo do tipo, o usuário não conseguir digitar, não aparecendo na tela.

Isso seria no caso em tempo de execução, estou ceto ?
É um meio mais complicado, ou inviável ?

Responder

Gostei + 0

16/09/2018

Raimundo Pereira

Você pode verificar duas casas da esquerda se for maior que 24.
Use a função copy para copiar o conteúdo do campo e validar ao ser preenchido pelo usuário
Responder

Gostei + 0

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

Aceitar