Fórum DATAS AUTOMÁTICAS COM EDIT #562711
22/09/2016
0
Tenho 12 campos EDITS no primeiro campo vai receber a data de forma manual e quero que os outros edits receba as outras datas de vencimentos de forma automática. Como posso implementar isso?
Mailson Janoca
Curtir tópico
+ 0Post mais votado
22/09/2016
Se for um mês e o nome dos Edits forem sequenciais (Edit1, Edit2,.., Edit12), tente:
Adicione [b]DateUtils[/b] na uses form.
var
i: Integer;
Data: TDate;
begin
try
Data := StrToDate(Edit1.Text);
except
ShowMessage('Data Inválida');
Exit;
end;
for i := 2 to 12 do
begin
Data := IncMonth(Data);
TEdit(FindComponent('Edit' + IntToStr(i))).Text := DateToStr(Data);
end;
end;Natanael Ferreira
Gostei + 1
Mais Posts
22/09/2016
Mailson Janoca
Teria um modo de deixar os dias de vencimentos fixos e só mudar os meses e ano?
Gostei + 0
22/09/2016
Natanael Ferreira
Fevereiro = Tem 28 ou 29 dias (Bissexto ou não).
Setembro = Tem 30 dias.
Janeiro = Tem 31 dias.
Por exemplo, se o usuário escolher a data 31/01/2016.
Você terá uma inconsistência, porque não existe a data 31/02/2016 (Fevereiro foi até 29 este ano).
Gostei + 1
22/09/2016
Mailson Janoca
Gostei + 0
22/09/2016
Natanael Ferreira
var
i, cont: Integer;
Data: TDate;
begin
try
Data := StrToDate(Edit1.Text);
except
ShowMessage('Data Inválida');
Exit;
end;
cont := 1;
for i := 2 to 12 do
begin
TEdit(FindComponent('Edit' + IntToStr(i))).Text := DateToStr(IncMonth(Data, cont));
Inc(cont);
end;
end;Se a data for um dia inexistente, o código buscará a data anterior válida.
Gostei + 1
22/09/2016
Natanael Ferreira
var
i: Integer;
Data: TDate;
begin
try
Data := StrToDate(Edit1.Text);
except
ShowMessage('Data Inválida');
Exit;
end;
if DayOf(Data) in [29 .. 31] then
begin
ShowMessage('Dia Inválido');
Exit;
end;
for i := 2 to 12 do
begin
Data := IncMonth(Data);
TEdit(FindComponent('Edit' + IntToStr(i))).Text := DateToStr(Data);
end;
end;Gostei + 1
22/09/2016
Mailson Janoca
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)