2 pièce(s) jointe(s)
Imposer un affichage des heures dans TDateTimePicker
Bonjour,
Je m'arrache les cheveux sur ce composant pourtant bien pratique. Il est utilisé et fonctionne correctement pour l'affichage des dates courantes. Mais ses propriétés permettent normalement d'afficher les heures, minutes, secondes et même les millisecondes dont j'ai besoin dans mes calculs... j'utilise une autre méthode en attendant, mais ça m'agace de voir que les propriétés affichées ne semblent pas fonctionner. :mrgreen:
voici l'affichage que j'ai à la conception sur ma fiche :
Pièce jointe 657257
Et le code que je mets dans le creat ou dans un évènement bouton, ça ne change rien!
Code:
1 2 3 4 5 6 7
|
DateTimePicker1.Kind := dtkDateTime;
DateTimePicker1.TimeDisplay := tdHMSMs;
DateTimePicker1.TimeFormat := tf24;
DateTimePicker1.DateTime := Now;
Millisec := MilliSecondOf(Now);
showmessage(Inttostr(millisec)); |
Normalement Now donne les millisecondes au moment de l'exécution, mais le composant ne semble pas l'interpréter correctement. Est-ce un Bug ou j'ai loupé quelque chose?
Par ailleurs, la date du 18 déc 1899 sort d'on ne sait où? La doc indique que la date minimale est de 1/10/1752!?!
Pièce jointe 657258
En allant voir la définition de TDateTimePicker dans son unité DateTimePicker, je trouve les codes suivants:
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
|
procedure TCustomDateTimePicker.SetDateTime(const AValue: TDateTime);
begin
if not EqualDateTime(AValue, FDateTime) then begin
if IsNullDate(AValue) then
FDateTime := NullDate
else
FDateTime := AValue;
UpdateDate(dtpoDoChangeOnSetDateTime in FOptions);
end else
UpdateDate;
end;
... et plus loin:
procedure TCustomDateTimePicker.SetTime(const AValue: TTime);
begin
if IsNullDate(AValue) then
DateTime := NullDate
else if DateIsNull then
DateTime := ComposeDateTime(Max(Min(SysUtils.Date, MaxDate), MinDate), AValue)
else
DateTime := ComposeDateTime(FDateTime, AValue);
end; |
On voit que ça dépend aussi des options, mais je les ai toutes essayées, le problème ne vient pas de là!
Du coup, je pense que c'est peut être un problème de directive d'exécution (ou peut-être de de compilation), car à la conception, il affiche les bonnes valeurs...
:question:Quelqu'un sait-il faire?
Merci