Fórum Formatar Data em edit Delphi #574459
01/02/2017
0
Por exemplo:
Coloco 01/16 e ao pressionar TAB puxar automático no edit 2016, sendo assim 01/2016
Mas isto com qualquer período que o o usuário digitar.
Gxf
Curtir tópico
+ 0Post mais votado
01/02/2017
Criei a função e está funcionando como você deseja, veja se realmente ajuda.
private
{ Private declarations }
Function Formate_Data(Dados_Atual:String):String;
implementation
{$R *.dfm}
Function TForm1.Formate_Data(Dados_Atual:String):String;
begin
Result:=
Copy(Dados_Atual,1,2)+//Pegamos o mês ou seja os dois primeiros digitos da esquerda para a direita
'/'+
Copy(DateToStr(now),7,2)+//Pegamos os dois digitos do ano Atual
Copy(Dados_Atual,4,2);//Pegamos os dois ultomos digitos Informado
//Exemplo:
//Onde uma vez foi digitado 01/17
// A função entede que 01 é o mês e 17 é o ano.
// Então será convertido para 01/2017.
end;
//Chamando a Função
No evento onexit do edit desejado cole.
Edit1.Text:=Formate_Data(Edit1.Text);
Bônus do Canal: Aprendiz Delphi.
Abraço.
P2, muito obrigado!!!! Era isso mesmo, certinho!!!
Gxf
Gostei + 1
Mais Posts
01/02/2017
Gxf
Por exemplo:
Coloco 01/16 e ao pressionar TAB puxar automático no edit 2016, sendo assim 01/2016
Mas isto com qualquer período que o o usuário digitar.
Alguém?
Gostei + 0
01/02/2017
Gxf
Por exemplo:
Coloco 01/16 e ao pressionar TAB puxar automático no edit 2016, sendo assim 01/2016
Mas isto com qualquer período que o o usuário digitar.
Alguém?
Ninguém? :((((
Gostei + 0
01/02/2017
Pestana
FormatDateTime('mm/yyyy',date)Gostei + 0
01/02/2017
Gxf
FormatDateTime('mm/yyyy',date)Agradeço a atenção.
Não seria bem formatar, e sim completar.
Por exemplo:
se digito 01/16 quando apertar tab e pular par outro campo queria que completasse como 01/2016...
se digito 07/15 quando apertar tab e pular par outro campo queria que completasse como 07/2015...
E assim com qualquer mês ano que for informado no edit
Gostei + 0
01/02/2017
Raimundo Pereira
Criei a função e está funcionando como você deseja, veja se realmente ajuda.
private
{ Private declarations }
Function Formate_Data(Dados_Atual:String):String;
implementation
{$R *.dfm}
Function TForm1.Formate_Data(Dados_Atual:String):String;
begin
Result:=
Copy(Dados_Atual,1,2)+//Pegamos o mês ou seja os dois primeiros digitos da esquerda para a direita
'/'+
Copy(DateToStr(now),7,2)+//Pegamos os dois digitos do ano Atual
Copy(Dados_Atual,4,2);//Pegamos os dois ultomos digitos Informado
//Exemplo:
//Onde uma vez foi digitado 01/17
// A função entede que 01 é o mês e 17 é o ano.
// Então será convertido para 01/2017.
end;
//Chamando a Função
No evento onexit do edit desejado cole.
Edit1.Text:=Formate_Data(Edit1.Text);
Bônus do Canal: Aprendiz Delphi.
Abraço.
Gostei + 0
02/02/2017
Gxf
Criei a função e está funcionando como você deseja, veja se realmente ajuda.
private
{ Private declarations }
Function Formate_Data(Dados_Atual:String):String;
implementation
{$R *.dfm}
Function TForm1.Formate_Data(Dados_Atual:String):String;
begin
Result:=
Copy(Dados_Atual,1,2)+//Pegamos o mês ou seja os dois primeiros digitos da esquerda para a direita
'/'+
Copy(DateToStr(now),7,2)+//Pegamos os dois digitos do ano Atual
Copy(Dados_Atual,4,2);//Pegamos os dois ultomos digitos Informado
//Exemplo:
//Onde uma vez foi digitado 01/17
// A função entede que 01 é o mês e 17 é o ano.
// Então será convertido para 01/2017.
end;
//Chamando a Função
No evento onexit do edit desejado cole.
Edit1.Text:=Formate_Data(Edit1.Text);
Bônus do Canal: Aprendiz Delphi.
Abraço.
Caso for dia/mês/ano , muda muita coisa?
Gostei + 0
02/02/2017
Nomad
Como ficaria no caso de dia/mês/ano?
Não consegui converter mesmo analisando o código. :/
Gostei + 0
02/02/2017
Raimundo Pereira
Function TForm1.Formate_Data(Dados_Atual:String):String;
begin
Result:=
Copy(Dados_Atual,1,6)+
Copy(DateToStr(now),7,2)+
Copy(Dados_Atual,7,2);
end;
Para chamar realiza o mesmo procedimento no evento onexit:
Edit1.Text:=Formate_Data(Edit1.Text);
Gostei + 0
02/02/2017
Gxf
Function TForm1.Formate_Data(Dados_Atual:String):String;
begin
Result:=
Copy(Dados_Atual,1,6)+
Copy(DateToStr(now),7,2)+
Copy(Dados_Atual,7,2);
end;
Para chamar realiza o mesmo procedimento no evento onexit:
Edit1.Text:=Formate_Data(Edit1.Text);
P2, muito obrigado! É isso mesmo.
Se não for muito incômodo, teria como me explicar o motivo da seqüência de números? Estudei o código mas não consegui compreender.
Se preferir pode me enviar por email: gabryel.silva@ledware.com.br
Gostei + 0
02/02/2017
Raimundo Pereira
O segundo número indica a até aonde o conteúdo será copiado.
Exemplo:
Conteúdo 03/02/2017
Para Copiar apenas o mês irei usar (4- Começo a copiar o caractere de 4º posição)
Então da 4º posição quero apenas 2 caracteres.
Então o copy ficará assim >> ,4,2);
Gostei + 0
03/02/2017
Gxf
O segundo número indica a até aonde o conteúdo será copiado.
Exemplo:
Conteúdo 03/02/2017
Para Copiar apenas o mês irei usar (4- Começo a copiar o caractere de 4º posição)
Então da 4º posição quero apenas 2 caracteres.
Então o copy ficará assim >> ,4,2);
Muito obrigado P2, me ajudou bastantate.
Gostei + 0
03/02/2017
Gxf
Teria alguma forma de bloquear isto?
Gostei + 0
03/02/2017
Raimundo Pereira
Se a quantidade de caracteres do campo for menor que 8 "03/02/2017 " Ele roda a função.
Certo?
Gostei + 0
03/02/2017
Raimundo Pereira
{ Private declarations }
Function Formate_Data(Dados_Atual:String;Quantidade_Char:integer):String;
Function TForm1.Formate_Data(Dados_Atual:String;Quantidade_Char:integer):String;
begin
// Data completa tem 03/02/2017 = 10.
if Quantidade_Char<10 then //Se não estiver formatada será aplicado a conversão.
begin
Result:=
Copy(Dados_Atual,1,6)+
Copy(DateToStr(now),7,2)+
Copy(Dados_Atual,7,2);
end
else
begin
Result:=Dados_Atual;
end;
end;
Chamando a nova função:
Edit1.Text:=Formate_Data(Edit1.Text,Length(Edit1.Text));
//Edit1.Text, é o conteúdo do campo para ser analisado pela função
//Length(Edit1.Text), é a quantidade de carracteres no campo
//Se for menor que 10, será aplicada a conversão.
//Se = 10, permanecerá o valor atual
Gostei + 0
03/02/2017
Raimundo Pereira
01/2017 = 7 então verificasse se é menor que 7
Para validar dai, mês e ano:
01/01/2017=10 então verificasse se é menor que 10
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)