Hi zusammen
Der Titel nimmt schon mal die Fehlermeldung vorweg. Besonders erstaunt bin ich allerdings nicht. Sinnbildlich kann man sich einen Spiegel vorstellen, indem man den Spiegel hinter sich erblickt, indem man... und so fort.Debuggen bringt folgendes:
Zitat:
Im Projekt TerminkalenderProject.exe ist eine
Exception der Klasse EConvertError mit der Meldung 'Ungültiges Argument zum Codieren des Datums' aufgetreten.
Klicke ich auf Anhalten, ergibt sich folgendes Bild:
Von interesse ist hier der Einsprung in die Scheife:
Delphi-Quellcode:
LmD := DaysInMonth(ADate); // while i <=6 do IntToStr(Dies schreibt 7 Wochenblöcke ins Stringgrid)
while DayOfTheMonth(Datum) < LmD +1 do
ursprünglich hiess das:
while i <=6 do
Das erstellte mir im Stringggrid 7 'Wochenblöcke':
Wenn ich das <= durch < ersetzte, erhalte ich statt 7 "Wochenblöcke" noch deren vier, und der 31. januar wird mit den folgenden Wochen verscluckt.
Den Ausdruck '<=6' durch '<=5' zu ersetzen, ist auch keine Lösung - das würde wohl manche überzählige Woche nicht darstellen - ausser im Februar. Wie verlässlich-korrekt die Darstelllung sonstwo ist, hängt wohl von den entsprechenden Wochen ab.
Wie erreiche ich am zuverlässigsten, dass die Woche, in welche der Monatsletzte fällt, ausgegeben wird, aber dann wirklich Schluss ist?
Gruss
Delbor