Como criar um campo para inserção de hora, que somente os digitos valido seja digitados ? [DELPHI]
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.
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
Curtidas 0
Respostas
Felipe Morais
13/09/2018
Doni,
O Delphi possui validações de data e hora (unit SysUtils) nas seguintes funções:
Use-as para validar os seus campos. Espero ter ajudado.
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.
GOSTEI 0
Doni
13/09/2018
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?
eu queria restringir ele a somente ao valores validos para hora (00:00 a 23:59)
seria possivel isso ?
talvez com algum outro componente?
GOSTEI 0
Raimundo Pereira
13/09/2018
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;
GOSTEI 0
Doni
13/09/2018
Criei esta função:<br />
<br />
<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 />
o que essa codição com #13 faria ?
GOSTEI 0
Raimundo Pereira
13/09/2018
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.
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.
GOSTEI 0
Raimundo Pereira
13/09/2018
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.
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.
GOSTEI 0
Doni
13/09/2018
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 ?
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 ?
GOSTEI 0
Raimundo Pereira
13/09/2018
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
Use a função copy para copiar o conteúdo do campo e validar ao ser preenchido pelo usuário
GOSTEI 0