Einzelnen Beitrag anzeigen

Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#1

'Ungültiges Argument zum Codieren des Datums'

  Alt 5. Nov 2020, 16:44
Delphi-Version: 10.4 Sydney
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:
debug-16_48_55-window.jpg
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':

wochenkalender-2.jpg

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
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat