Bonjour à tous

La lecture de la date d'un fichier me fait afficher l'heure avec une heure de retard.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
 
Var // Globales
 
  Creation : TDateTime;
  Der_Acces : TDateTime;
  Der_MOdif : TDateTime;
Appel de la fonction GetFileTimes et affichage de tout cela :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
procedure TForm1.Btn_1Click(Sender: TObject);
Var
  Nom_F : string;
 
begin
  Nom_F := 'DELPHI.ICO';
 
  Form1.Lab_Nom_F.Caption := Nom_F;
  GetFileTimes(Nom_F, Creation, Der_Acces, Der_MOdif);
  Form1.Lab_Date_DerAcces.Caption := FormatDateTime('dd/mm/yyyy hh:nn', Der_Modif);
 
end;
Fonction appelée (je crois me souvenir qu'elle vient des FAQ) :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
Function GetFileTimes(const FileName: string; var Created: TDateTime; var Accessed: TDateTime; var Modified: TDateTime): Boolean;
var
  Handle_F: THandle;
  Info1, Info2, Info3: TFileTime;
  SysTimeStruct: SYSTEMTIME;
  TimeZoneInfo: TTimeZoneInformation;
  Bias: Double;  
 
begin  
 
  Result := False;  
  Bias   := 0;  
  Handle_F := FileOpen(FileName, fmOpenRead or fmShareDenyNone);
 
  if Handle_F > 0 then
  begin
    try
      if GetTimeZoneInformation(TimeZoneInfo) <> $FFFFFFFF then Bias := TimeZoneInfo.Bias / 1440; // 60x24
      GetFileTime(Handle_F, @Info1, @Info2, @Info3);
 
      if FileTimeToSystemTime(Info1, SysTimeStruct) then
        Created := SystemTimeToDateTime(SysTimeStruct) - Bias;
 
      if FileTimeToSystemTime(Info2, SysTimeStruct) then
        Accessed := SystemTimeToDateTime(SysTimeStruct) - Bias;
 
      if FileTimeToSystemTime(Info3, SysTimeStruct) then
        Modified := SystemTimeToDateTime(SysTimeStruct) - Bias;
 
      Result := True;
    finally
      FileClose(Handle_F);
    end;
  end;
 
end;
Le prog m'affiche 19/09/2015 07:00 . C'est faux : c'est 8 H 00 et non 7. Je dois sans doute reconfigurer des paramètres de dates avec une API ?

Merci

P.S.: Là, on est ds un brouillon. Mais, ds le prog, la même fonction avec les mêmes paramètres fonctionne parfaitement. Je m'en aperçois maintenant. C'est dû, sans doute, à une ambiguïté des variables globales.

La fonction appelée se situe dans une unité 'Routines_Fichiers.pas', liée en USES. Or, les variable globales ci-dessus : Creation, Der_Acces et Der_Modif étaient déclarée, dans le projet brouillon, en tant que variables globales de l'unité principale.