Hallo zusammen,
ich suche schon eine ganze Weile, finde aber das eigentlich Problem nicht und weiß wohl deswegen auch nicht so recht wonach ich suchen muss.
In einer Schleife ändere ich die Uhrzeit. Dabei wird die Beginn-Uhrzeit als Offset gesetzt und dann die Anzahl der Sekunden, um welche sich die UHrzeit bei jeder neuen Datei erhöhen soll.
Im Debugger werden mir die richtigen Werte der Funktionen angezeigt! Im Betriebssystem wird die
letzte Datei aus der Schleife mit der
richtigen Uhrzeit angezeigt,
alle anderen Dateien sind um genau 1 Stunde zu hoch....
Hier mein relevanter Code:
Delphi-Quellcode:
function GetFileDate(TheFileName: string): TDateTime;
var
FHandle: integer;
begin
FHandle := FileOpen(TheFileName, 0);
try
Result := (FileDateToDateTime(FileGetDate(FHandle)));
finally
FileClose(FHandle);
end;
end;
procedure TMain_Form.Set_myNewFileTime(FileName: string);
var
OldFDate, FileDate: TDateTime;
OldFTime, NewFTime, Start_Time: Double;
begin
if (Chckb_Uhrzeit_hochzaehlen.Checked) and ((Time_pick_Datei_Offsettime.Text <> '00:00:00') or (SpEdt_Sekundenzaehler.Value <> 0)) then begin
OldFDate := GetFileDate(FileName);
Start_Time := (Time_pick_Datei_Offsettime.Value);
NewFTime := Start_Time + (SpinEdit_Sekundenzaehler.Value / 86400);
FileDate := Trunc(OldFDate) + NewFTime;
ChangeFileTimeStamp(FileName, FileDate);
end;
end;
procedure....
var
li_Sekundenzaehler : Integer;
beginn
li_Sekundenzaehler := SpEdt_Sekundenzaehler.Value;
//Beginn Schleife...
Set_myNewFileTime(FileName); //
SpEdt_Sekundenzaehler.Value := SpEdt_Sekundenzaehler.Value + li_Sekundenzaehler;
...
//Ende Schleife
SpEdt_Sekundenzaehler.Value := li_Sekundenzaehler;
end;
Mit den ganzen Datumsfunktionen stehe ich eh etwas auf Kriegsfuß, allzumal wenn man wenig damit arbeitet.
Kann mir hier jemand den richtigen Schubser geben?
Vielen Dank!