Si tu veut l'afficher par un ShowMessage met ceci :
ca devrai suffir, si non :Code:ShowMessage("durée = " + (DateFin - DateDebut)) ;
Code:
1
2
3
4 AnsiString texte ; texte = "durée = " ; texte += (DateFin - DateDebut) ; ShowMessage(texte) ;
Version imprimable
Si tu veut l'afficher par un ShowMessage met ceci :
ca devrai suffir, si non :Code:ShowMessage("durée = " + (DateFin - DateDebut)) ;
Code:
1
2
3
4 AnsiString texte ; texte = "durée = " ; texte += (DateFin - DateDebut) ; ShowMessage(texte) ;
C'est normal il faut que ton que tu mette le Name de ton TEdit qui ne s'appelle pas forcement Edit1 dans ton cas ;)Citation:
Envoyé par zakalova
Edit : J'avais pas lu la suite :oops: Si ta pas de Edit forcement ca peut pas marcher ;)
ça affiche mais mon compteur est un peu fou, quand je clique sur OK je me connecte et puis quand je fais Quitter il m'affiche toujourset il commence à compter normalement que si j'apquie une deuxième fois sur Quitter. y a t'il une explication?:cfou:Citation:
durée = 00:00:02
mmm... a quoi ressemble ton code maintenant?
tu prend le tps de debut sur le btn ok et le temps de fin sur le btn quitter et tu affiche la difference des deux?
oui exact. voila jette un coup d'oeil :Citation:
Envoyé par mike600river
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 void __fastcall TForm1::OKButtonClick(TObject *Sender) { Session1->Open(); Database1->Open(); Table1->Open(); if(Trim(LoginZone->Text) == "" || Trim(PasswordZone->Text) =="") { ShowMessage("Veuillez saisir un nom d'utilisateur et un mot de passe svp"); LoginZone->Text=""; PasswordZone->Text=""; } else { Query1->SQL->Clear(); AnsiString requete = "select count(Login) as nbReponse from T_User where Login= '"+LoginZone->Text+"' and Password= '"+PasswordZone->Text+"'"; Query1->SQL->Add(requete); Query1->Open(); int nbrep = Query1->FieldByName("nbReponse")->AsInteger; if (nbrep>0){ ShowMessage("Bienvenue"); //ShellExecute(NULL,"open","winmine.exe","","",SW_SHOWDEFAULT); std::system( "winmine.exe" ); DateDebut=FormatDateTime("DD/MM/YYYY HH:MM:SS",Now()); //dateDebut = Now() ; } else{ ShowMessage("Nom d'utilisateur ou mot de passe invalide");} Query1->Close(); } Session1->Close(); Database1->Close(); Table1->Close(); } //--------------------------------------------------------------------------- void __fastcall TForm1::QuitterButtonClick(TObject *Sender) { DateFin=FormatDateTime("DD/MM/YYYY HH:MM:SS",Now()); ShowMessage("durée = " + (DateFin - DateDebut)) ; }
m'a l'air pas mal du tout ce code.
si tu attend 2 min entre la connexion et le click sur quitter il te met qd meme?Citation:
durée = 00:00:02
tu as essayé de le passer au debugger a la lignepour voir la valeur que tu as pour DateFin.Citation:
ShowMessage("durée = " + (DateFin - DateDebut)) ;
Oui ca m'a l'air pas mal aussi c'est curieux 8O
Tes Variables DateDebut et DateFin ce sont bien des TDate ? ou des TDatetime ?
:?
Si DateDebut et DateFin sont des AnsiString comme j'en ai l'impression il ne faut pas que tu oubli de mettre (TDateTime) devant les deux lorsque tu fait la soustraction.
Je viens de changer l'ordre de deux lignes et maintenant ça marche.
maintenant j'initialise ma DateDebut avant d'ouvrir l'application "winmin.exe" comme ceciet ça a l'air de fonctionnerCode:
1
2
3
4 ShowMessage("Bienvenue"); DateDebut=FormatDateTime("DD/MM/YYYY HH:MM:SS",Now()); //ShellExecute(NULL,"open","winmine.exe","","",SW_SHOWDEFAULT); std::system( "winmine.exe" );
oui, ca se tient l'ordre avec le .exe.
si ca fonctionne je te fais la classique invitation a mettre un :mouarf3: euh non, je voulais dire un :resolu:;)
maintenant que je peux compter les temps de connexion, je voudrais les stocker dans une sorte de fichier ou quelque chose par rapport à chaque utilisateur pour pouvoir faire un bilan. c faisable ça?8-)
Bin si tu as une base de donnée pourquoi pas les stocker dedans ?
Si jamais cette deuxième question se développe, pourquoi pas envisager (ouvrir) un autre post ?
Citation:
Bin si tu as une base de donnée pourquoi pas les stocker dedans ?
oui à la base de données dont on parlerait dans un autre post :DCitation:
Si jamais cette deuxième question se développe, pourquoi pas envisager (ouvrir) un autre post ?
Même pas besoin, il existe dejà plein de poste pour enregistrer des données dans des fichiers.Citation:
Envoyé par Cantrelle
Cool merci tout le mondeCitation:
Envoyé par mike600river
je vais essayer de les mettre dans la base de données que j'ai dèja
:D