Runtime Error 201 > reRangeError > ERangeError > Indexfehler z.B. in einem Array
Nja, da hier jemand zwanghaft auf die böse SysUtils verzichten wollte, gibt es zwar eine kleiner Datei, aber dafür eben auch keine "ordentlichen" Exceptions und auch keine Exceptionbehandung.
Ergebnis: Es raucht gleich ab und man weiß nicht wo ... nichtmal das Debuggen ist schön, da der Debugger auf Exceptions und nicht auf diesen Systemfehler reagiert.
Der Fehler:
Delphi-Quellcode:
const
dow: array [1..7] of String = (
'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag', 'Sonntag');
function MakeDate: String;
begin
// GetDateTime;
Result := format('%s, %d. %s %d',
[dow[lpSysTime.wDayOfWeek], lpSysTime.wDay, moj[lpSysTime.wMonth], lpSysTime.wYear]);
end;
lpSysTime.wDayOfWeek zählt aber von 0 bis 6 (Sonntag = Wochenanfang) und das ist schon immer so, es knallt also überall und in jeder Windowsversion,
wenn gerade Sonntag ist.
Lösung:
Delphi-Quellcode:
dow: array [0..6] of String = (
'Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag');
Nachgesehn ... der 7. Okt. 2008 war ein Dienstag und da sich wohl niemand mehr bis zum / an einem Sonntag mit diesem Programm beschäftigt hat ........