Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.084 Beiträge
 
Delphi 12 Athens
 
#13

AW: [Open-Source / Fun] - Desktop Clock

  Alt 4. Dez 2011, 02:23
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 ........
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 4. Dez 2011 um 12:39 Uhr)
  Mit Zitat antworten Zitat