Du hast die
Standardstrategie zur Fehlersuche noch nicht angewendet!
Wenn in einer komplexen Sourcecodezeile ein unerklärlicher Fehler auftritt,
dann sollte man mehrere Zeilen daraus machen:
Delphi-Quellcode:
var
idTag, idMonat, idJahr: Integer;
LetzterTag : TDateTime;
begin
LetzterTag := EncodeDate(2011, 12, 1); // 1. Zeile
LetzterTag := LetzterTag - 1.0; // 2. Zeile
DecodeDate(LetzterTag,idJahr,idMonat,idTag);
value := idTag;
end;
Tritt der Fehler nun in Zeile 1 oder Zeile 2 auf?
Wahrscheinlich Zeile 1, oder?
Nächster Schritt: Scriptfunktion soweit vereinfachen, bis nur noch die fehlerhafte Zeile übrig bleibt:
Delphi-Quellcode:
var
LetzterTag : TDateTime;
begin
LetzterTag := EncodeDate(2011, 12, 1);
end;
Vielleicht wurde die Funktion EncodeDate() abweichend zum Delphi-Standard implementiert; das lässt sich leicht überprüfen:
Delphi-Quellcode:
var
LetzterTag : TDateTime;
begin
LetzterTag := EncodeDate(1, 12, 2011);
end;