Problème entre string et datetime

dhp9951 Messages postés 10 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 6 novembre 2009 - 26 déc. 2008 à 20:55
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 - 26 déc. 2008 à 22:34
Bonsoir à tous, lorsque j'insere une ligne dans un checklistbox1, j'affiche, via un timer le temps écoulé dans une autre chelistbox (checklistbox2). bref un petit chronomètre qui se déclenche pour chaque ligne insérée

procedure TForm1.Timer4Timer(Sender: TObject);
var
 Calcul,tt,ta: String;
 aa: integer;
 begin
for aa := 0 to checklistbox1.Items.Count -1 do
begin
tt:=timetostr(time);
ta:=checklistbox2.Items.Strings[aa];
Calcul := TimeToStr(StrToTime(tt) - StrToTime(ta));
Checklistbox3.items.strings[aa] := ' '+calcul;
end;end; 

Mon problème est le suivant:
je souhaite, en récupérant le temps indiqué pour chaque ligne, lancer une petite procédure de calcul.
par ex, si le temps est < à 00:00:30, alors xxxxx.
Je sais récupérer la valeur de ce temps (au format string) mais je n'arrive pas à faire cette opération de calcul, meme en convertissant en strtotime. je tombe toujours sur des problèmes d'incompatibilité.
Une Solution?
A voir également:

5 réponses

Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
26 déc. 2008 à 21:42
Bonsoir,



1) Sélectionne "TDateTime"  puis touche F1
2) Sélectionne "Frac"           puis touche F1
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 9
26 déc. 2008 à 22:03
Et eventuellement DecodeDateTime (unité DateUtils) et effectuer des calculs à partir de cela :)

Cordialement, Bacterius !
0
dhp9951 Messages postés 10 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 6 novembre 2009
26 déc. 2008 à 22:18
Résolu, j'ai été cherché les complications alors qu'il y' en avait pas.


ma réponse  est


if strtotime(ta) < strtotime('00:00:30') then xxxx

En fait, il fallait aussi "formater" la valeur de la condition (00:00:30);


et ca marche enfin!!!
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 9
26 déc. 2008 à 22:31
Ah ben oui il faut que les deux conditions soient du même type :

Boolean < Boolean
Byte < Byte
Byte < Integer
Integer < Longword
Longword < Int64

Et qu'elles soient applicables aux opérandes < et > (tous types équivalents sont compatibles à l'opérande = )

Par exemple, deux variables A et B de type TMemoryStatus :

A < B impossible, car la structure TMemoryStatus n'est pas compatible < ou > !
Par contre A = B possible :)

Cordialement, Bacterius !

PS : Dans ce cas là on ne dit pas "formater" mais "transtyper" (tu changes le type d'une condition, d'où le transtypage).
0

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

Posez votre question
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 9
26 déc. 2008 à 22:34
Pourquoi je dis opérande moi ?
Opérateur, désolé

Cordialement, Bacterius !
0