Chrono Time [Résolu]

Messages postés
49
Date d'inscription
mercredi 28 septembre 2005
Dernière intervention
31 mars 2006
- - Dernière réponse :  cs_Delphiprog - 8 mars 2006 à 18:06
Bonjour,

J'ai 3edit (eDebut, eFin, eDif) , 1button depart, 1button fin
Voila j'aimerai savoir comment je pourrai faire pour que quand je clique sur le button depart il m'affiche le temps actuel dans eDebut et quand je clique sur le button fin il m'affiche le temps actuel dans eFin et la difference dans eDif (le temps HH:MM:SS)

Si quelqu'un pourrait me venir en aide Je debute debute

Merci d'avance
Afficher la suite 

Votre réponse

20/24 réponses

Meilleure réponse
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
3
Merci
code teste qui fonctionne: (je n'ai pas renommer les composants)

procedure TForm1.Button1Click(Sender: TObject);

var str:string;

begin

debut:=now ;

DateTimeToString(str,'dddd d mmmm yyyy:hh-mm-ss',debut);

edit1.Text:=str

end;

procedure TForm1.Button2Click(Sender: TObject);

var str:string;

terme,deltaT:Tdatetime;

begin

terme:=now;

DateTimeToString(str,'dddd d mmmm yyyy:hh-mm-ss',terme);

edit2.text:=str;

deltaT:=terme-debut;

DateTimeToString(str,'hh-mm-ss',deltat);

edit3.text:=str;



end;

l'erreur vien du copié collé (encore!!)

DateTimeToString(hh-mm-ss',terme);

---->

DateTimeToString(hh-mm-ss',DeltaT);

milles excuses



@+

jlen

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 97 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jlen100
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
3
Merci
c'est parcequ'il compte les milisecondes si tu veux une soustraction exacte il faut utiliser d'autres fonctions de l'unité DateUtils :

function YearsBetween(const ANow, AThen: TDateTime): Integer; // Calcule le nobre d' Années entre deux dates
function MonthsBetween(const ANow, AThen: TDateTime): Integer; // Calcule le nobre de Mois entre deux dates
function WeeksBetween(const ANow, AThen: TDateTime): Integer; // Calcule le nobre de Semaines entre deux dates
function DaysBetween(const ANow, AThen: TDateTime): Integer; // Calcule le nobre de Jours entre deux dates
function HoursBetween(const ANow, AThen: TDateTime): Int64; // Calcule le nobre de Heures entre deux dates
function MinutesBetween(const ANow, AThen: TDateTime): Int64; // Calcule le nobre de Minutes entre deux dates
function SecondsBetween(const ANow, AThen: TDateTime): Int64; // Calcule le nobre de Secondes entre deux dates
function MilliSecondsBetween(const ANow, AThen: TDateTime): Int64; // Calcule le nobre de Milisecondes entre deux dates

@+
Cirec

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 97 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Cirec
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
0
Merci
salut;

var debut:Tdatetime;

procedure TForm1.departClick(Sender: TObject);

var str:string;

begin

debut:=now

DateTimeToString(str,'dddd d mmmm yyyy:hh-mm-ss',debut);

edebut.text:=str

end;

procedure TForm1.finClick(Sender: TObject);


var str:string;


terme,deltaT,:Tdatetime;




begin

terme:=now


DateTimeToString(str,'dddd d mmmm yyyy:hh-mm-ss',terme);


efin.text:=str;

deltaT:=terme-debut;


DateTimeToString(str,'dddd d mmmm yyyy:hh-mm-ss',terme);

edif.text:=str;


end;



@+

jlen
Commenter la réponse de jlen100
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
0
Merci
copié collé malheureux

procedure TForm1.finClick(Sender: TObject);

var str:string;

terme,deltaT,:Tdatetime;

begin

terme:=now

DateTimeToString(str,'dddd d mmmm yyyy:hh-mm-ss',terme);

efin.text:=str;

deltaT:=terme-debut;

DateTimeToString(hh-mm-ss',terme);

edif.text:=str;

end;
Commenter la réponse de jlen100
Messages postés
49
Date d'inscription
mercredi 28 septembre 2005
Dernière intervention
31 mars 2006
0
Merci
J'aimerais afficher la difference de temps entre le clik sur départ et le clik sur fin

J'apercois qu'il m'affiche le meme temps que dans eFin?

Donc pour 30 seconde par exemple

Depart 15:01:30
Fin 15:01:45
Diff 00:00:15

J'espere avoir été comprehensible et que tu pourra me venir en aide
Commenter la réponse de cs_cricri_forever
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
0
Merci
entre 15:01:30 et 15:01:45 il n'ya que 15 secondes!!

@+

jlen
Commenter la réponse de jlen100
Messages postés
49
Date d'inscription
mercredi 28 septembre 2005
Dernière intervention
31 mars 2006
0
Merci
Oui j'ai remarqué erreur de ma part

J'aimerais afficher la difference de temps entre le clik sur départ et le clik sur fin

J'apercois qu'il m'affiche le meme temps que dans eFin?

Donc pour 15 seconde par exemple

Depart 15:01:30
Fin 15:01:45
Diff 00:00:15

J'espere avoir été comprehensible et que tu pourra me venir en aide
Commenter la réponse de cs_cricri_forever
Messages postés
49
Date d'inscription
mercredi 28 septembre 2005
Dernière intervention
31 mars 2006
0
Merci
et pourrait tu apporter un peu d'explication a ce code pour ne pas faire un bète copier coller

mille merci
Commenter la réponse de cs_cricri_forever
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
0
Merci
la fonction now recupére l'heure actuelle dans une variable de type Tdatetime.

DateTimeToString(str,'dddd d mmmm yyyy:hh-mm-ss',debut);

convertit l'heure rangée dans début en chaine et la range dans str ( on
ne peut pas convaertir directement dans le caption--> erreur de
compilation

dans le premier bouton je la mémorise.

dans le second bouton je fais la même opération

puis je fais la différence entre fin et début (note que delphi se
débrouille tout seul comme un grand avec les heures, minutes et
secondes!!)

ensuite je convertis et j'affiche le résultat.

note également pour début et fin je l'ai formaté pour tout afficher
mais tu peux supprimer la partie date comme je l'ai fait pour la
différence.



@+

jlen
Commenter la réponse de jlen100
Messages postés
49
Date d'inscription
mercredi 28 septembre 2005
Dernière intervention
31 mars 2006
0
Merci
Un petit prob quand au comptage

de 15:58:08 à 15:58:16 il me compte 7seconde

Comment sa se fait ??
Commenter la réponse de cs_cricri_forever
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
0
Merci
Salut,

La même en couleur

procedure TForm1.Button1Click(Sender: TObject);
var str:string;
begin
debut:= now ; // on récupère la date et l'heure à l'instant
DateTimeToString(str,'dddd d mmmm yyyy:hh-mm-ss',debut); // on la convertie en String
edit1.Text:=str // et on l'affiche
end ;
procedure TForm1.Button2Click(Sender: TObject);
var str:string;
terme,deltaT:Tdatetime;
begin
terme: =now; // on récupère la date et l'heure à l'instant
DateTimeToString(str,'dddd d mmmm yyyy:hh-mm-ss',terme); // on la convertie en String
edit2.text:=str; // et on l'affiche
deltaT:=terme-debut; // on fait la soustraction
DateTimeToString(str,'hh-mm-ss',deltat); // on la convertie en String
edit3.text:=str; // et on l'affiche
end;

@+
Cirec
Commenter la réponse de Cirec
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
0
Merci
dans le format que j'ai mis je n'ai pas pris en comptes les
millisecondes il n'affiche donc que les secondes entières pour afficher
en plus le millisecondes fais

DateTimeToString(str,'hh-mm-ss.mm',deltat); // on la convertie en String





@+

jlen
Commenter la réponse de jlen100
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
0
Merci
on peut encore ecrire en mettant une virgule comme séparateur:

DateTimeToString(str,'hh-mm-ss,mm',deltat);
Commenter la réponse de jlen100
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
0
Merci
où alors tu ré-encode les deux DateTime avant la soustraction

@+
Cirec
Commenter la réponse de Cirec
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
0
Merci
d'accord avec toi Cirec

mais il ne faut peut-être pas trop s'emm... la vie !! qu'est ce que c'est qu'une seconde depuis le big bang!!

mais une éternité pou un muon(parcticule élementaire durée ~2µs)

@+

jlen
Commenter la réponse de jlen100
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
0
Merci
tu peux aussi utiliser la fonction:

function MilliSecondOfTheSecond(const AValue: TDateTime): Word;



qui te renvoie le nombre de milliseconde dans la seconde

ensuite tu peux forcer l'arrondi

mais il faut le faire pour les 3 affichages

@+

jlen
Commenter la réponse de jlen100
Messages postés
49
Date d'inscription
mercredi 28 septembre 2005
Dernière intervention
31 mars 2006
0
Merci
et pour le mettre en composant comment dois je proceder ??
Commenter la réponse de cs_cricri_forever
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
0
Merci
Salut,
regarde déjà ce tuto de GrandVizir
http://www.delphifr.com/tutoriaux/DELPHI-DEVELOPPER-COMPOSANTS_195.aspx

et si tu as encore des questions ben on verra à ce moment

@+
Cirec
Commenter la réponse de Cirec
Messages postés
49
Date d'inscription
mercredi 28 septembre 2005
Dernière intervention
31 mars 2006
0
Merci
il me met PVinfo.dpk(31): Paquet requis ' vclactnband ' non trouvé
Commenter la réponse de cs_cricri_forever
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
0
Merci
Euh de quoi tu parles ?
C’est quoi PVInfo.dpk ?
C’est le paquet du composant que tu as créé ?
A parement il te manque un fichier.
Donne un peut plus d'informations.

@+
Cirec
Commenter la réponse de Cirec

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.