Developpez.com - Delphi
X

Choisissez d'abord la catégorieensuite la rubrique :

Nono40.developpez.com
Le petit coin du web de Nono40
SOURCES TESTS DELPHI WIN32 AUTOMATISMES DELPHI .NET QUICK-REPORT
Retour à l'accueil
1 - MISE A L'HEURE

PRÉSENTATION : Ce source présente une fonction simple de mise à l'heure du PC à partir d'une application Delphi. Elle utilise la fonction API SetSystemTime, l'heure passée en paramètre de cette fonction doit être celle de Greenwich. Elle est donc corrigée à l'aide de la fonction API GetTimeZoneInformation afin de déterminer le décalage horaire dû au fuseau, et le décalage dû à la période été/hiver.
ZIP : Téléchargez le zip APERÇUS :

NOTES :

CODE :
Function MiseHeure(DateHeure:TDateTime):Boolean;
Var Infos  :TSystemTime;
    Zone   :TTimeZoneInformation;
    Retour :Integer;
Begin
  // La mise à l'heure de windows est toujours effectuée en heure absolue.
  // Il faut donc lire le décalage horaire par rapport à Greenwich puis
  // tenir compte du décalage dû à l'heure d'été.

  // Recherche des informations sur les décalages locaux
  Result:=False;
  Retour:=GetTimeZoneInformation(Zone);
  // DateHeure étant en heure locale => ajout des décalages pour obtenir l'heure absolue
  Case Retour Of
    TIME_ZONE_ID_UNKNOWN  : DateHeure:=DateHeure+( Zone.Bias                   /(24*60));
    TIME_ZONE_ID_STANDARD : DateHeure:=DateHeure+((Zone.Bias+Zone.StandardBias)/(24*60));
    TIME_ZONE_ID_DAYLIGHT : DateHeure:=DateHeure+((Zone.Bias+Zone.DaylightBias)/(24*60));
  Else
    Exit;
  End;
  // Ensuite, mise à l'heure du Pc
  // Attention sous windows NT/2000/XP l'utilisateur doit avoir les droits
  // suffisants pour que ça fonctionne !
  Infos.wYear         :=YearOf        (DateHeure);
  Infos.wMonth        :=MonthOf       (DateHeure);
  Infos.wDayOfWeek    :=DayOfWeek     (DateHeure);
  Infos.wDay          :=DayOf         (DateHeure);
  Infos.wHour         :=HourOf        (DateHeure);
  Infos.wMinute       :=MinuteOf      (DateHeure);
  Infos.wSecond       :=SecondOf      (DateHeure);
  Infos.wMilliseconds :=MillisecondOf (DateHeure);
  Result:=SetSystemTime(Infos);
End;

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2003 Bruno Guérangé. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Responsables bénévoles de la rubrique Delphi : Gilles Vasseur - Alcatîz -