Programmation delphi

Résolu
fatighaz Messages postés 3 Date d'inscription mercredi 11 avril 2012 Statut Membre Dernière intervention 22 mai 2012 - 9 mai 2012 à 11:40
cs_walidlam Messages postés 107 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 29 avril 2013 - 13 mai 2012 à 19:22
j'ai une base de donnee paradox, j'ai deux date date B.C et date ech je veux une requette sous delphi 7 où quanq je saisie la date B.C l'autre date monte d'un mois exp: date B.C:= 01/01/2011 sera date ech := 01/02/2011 automatique ; fatima

5 réponses

cs_walidlam Messages postés 107 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 29 avril 2013 1
9 mai 2012 à 20:38
salut
1- mettez cette fonction
function  mois(const a:tdate):tdatetime;
var  LYear,Lmonth, LDay: Word;
begin
decodedate(a,Lyear,lmonth,lday);
if (Lmonth = 12) then
result:=EncodeDate(LYear+1,1, LDay) else
result:=EncodeDate(LYear,Lmonth+1, LDay);end;

A avec dbedit {evenement onexit}
[code=pas]procedure TForm.DBEdit1Exit(Sender: TObject);
begin
if latable.State in[dsinsert,dsedit] then 
laTableDateech.AsDateTime:=mois(laTabledateB_C.AsDateTime) 
end;
/code
b avec DateTimePicker {evenement onchange}
procedure TForm.DateTimePickerChange(Sender: TObject);
begin
if latable.State in[dsinsert,dsedit] then
begin
laTabledateB_C.AsDateTime:=DateTimePicker.date;
laTableDateech.AsDateTime:=mois(DateTimePicker.date);
 end ;
end;

et voila!!
{si ca marche click sur bonne repense @+}
3
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
13 mai 2012 à 01:24
non la première fonction est fausse car Month+1 = 13 si month = 12

Il suffit de déclarer DateUtils dans les Uses et d'utiliser IncMonth(Date,1);


________________________________________________________
3
cs_walidlam Messages postés 107 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 29 avril 2013 1
13 mai 2012 à 13:14
salut
c'est pas fausse mon ami!!!!!!
if (Lmonth = 12) then
result:= EncodeDate(LYear+1,1, LDay) else
result: =EncodeDate(LYear,Lmonth+1, LDay);end;
si month =12 alors
month=1
sinon
month:=month+1
@+ foxi
3
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
13 mai 2012 à 16:33
Houla oui j'avais pas vus la condition, je devais être dans la lune.

Mais il n'empèche qu'il est plus pratique d'utiliser IncMonth ;) ça evite tout un fatra de bidule (qui certes ne sont pas inintéréssant à savoir quand dans un langage il n'existe pas de fonction IncMonth, IncDay ou IncYear).

________________________________________________________
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_walidlam Messages postés 107 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 29 avril 2013 1
13 mai 2012 à 19:22
salut!!
oui avec DateUtils c est facile ;mais l objectif c est d aider les gents a faire leurs procedures et fonctions aussi pas seulement resoudre les problemes et merci
@+
0
Rejoignez-nous