MonthCalendar -- einzelne Tage fett markieren
-
Jester2000 schrieb:
Da scheint ein Bug drin zu sein.
Aber nur ein ganz kleiner.
void __fastcall TForm1::MonthCalendar1GetMonthInfo(TObject *Sender, DWORD Month, DWORD &MonthBoldInfo) { unsigned bdays[5] = {2,4,6,8,10}; MonthCalendar1->BoldDays(bdays, sizeof(bdays)/sizeof(bdays[0]), (unsigned)MonthBoldInfo); }
-
trotzdem hat das einen bug
bei mir zeichnet er mehr fette zahlen als er eigentlich sollz.B.: im Septermber markiert er die 9 Fett
im Juli markiert er die 7 Fett
im November markiert er die 11 Fett
.
.
.hab das Beispiel von dir übernommen (sprich nur die Zahlen 2, 4, 6, 8, 10 angegeben)
-
wie gesagt, im september tritt der fehler auch auf und so weit ich weiß, haben wir gerade september
aber die dicke 9 fällt zwischen der 8 und der 10 auch nicht so schnell auf
-
Du hast recht.
Aber wie hätte ich auch auf die Idee kommen sollen, das mit einem anderen als dem aktuellen Monat zu testen?
Und die 9 habe ich voll übersehen, weil ich meine Tests fast ausschliesslich mit deinem Zahlenset durchgeführt hatte.
-
stimmt, ich hatte ja die 9 mit drin
was für ein glück, dass ich mit deinen zahlen getestet hab, sonst wär mir der bug auch nicht ins auge gefallen
-
Hallo!
Habe rausgefunden dass das bei mir auch immer so ist.
Also immer genau die Zahlen werden fett gemacht die angegeben sind UND immer die Zahl des Monats (zB. 9 für Sep.) wird auch fett gemacht.Hhhmmm.
Seltsamer Effekt.Verwende BCB5. Hat jemand noch Erfahrungen, Tipps?
Gruß
Riese
-
Bei mir ist das auch so.
Hat jemand in der Zwischenzeit Abhilfe für dieses Problem entdeckt?
Gruß
Franzi
-
N'Abend zusammen.
Ich brauche im Moment auch einen TMonthCalendar, hatte den thread gesehen, mich an einen Tip hier aus dem Forum gehalten (thx an akari) und ein wenig herumexperimentiert (und die BCB-Hilfe genommen).
Und siehe da, ich habe eine Lösung gefunden:( kopierter/falscher Text nur zu Veranschaulichung der Unterschiede:)
So kamen immer auch die "Monatsnummern" fett hervor:
void __fastcall TForm1::MonthCalendar1GetMonthInfo(TObject *Sender, DWORD Month, DWORD &MonthBoldInfo) { unsigned bdays[5] = {2,4,6,8,10}; MonthCalendar1->BoldDays(bdays, sizeof(bdays)/sizeof(bdays[4]),(unsigned) MonthBoldInfo); }
Mit folgendem Code bleiben die "Monatsnummern" normal dick:
void __fastcall TForm1::MonthCalendar1GetMonthInfo(TObject *Sender, DWORD Month, DWORD &MonthBoldInfo) { TCommonCalendar *Calendar = dynamic_cast <TCommonCalendar *> (Sender); unsigned bdays[5] = {2,4,6,8,10}; if (Calendar) Calendar->BoldDays(bdays, sizeof(bdays)/sizeof(bdays[4]),(unsigned) MonthBoldInfo); }
Und nun kommt das beste: mit diesem Code bleiben die "Monatsnummern" ebenfalls normal dick:
void __fastcall TForm1::MonthCalendar1GetMonthInfo(TObject *Sender, DWORD Month, DWORD &MonthBoldInfo) { TCommonCalendar *Calendar = dynamic_cast <TCommonCalendar *> (Sender); unsigned bdays[5] = {2,4,6,8,10}; MonthCalendar1->BoldDays(bdays, sizeof(bdays)/sizeof(bdays[4]),(unsigned) MonthBoldInfo); }
Es spielt also anscheinend keine Rolle, ob ich den gecasteten Calendar nehme oder trotz dynamic_cast direkt auf die
MonthCalandar1->BoldDays Methode zugreife .
Bei mir war das einzig entscheidende Kriterium, dass ich den dynamic_cast aufrufe.
Klingt nicht nur komisch, ist auch so!Hocherhobenem Hauptes werde ich mich nun zurücklehnen und die Lorbeeren ernten.......
Alles Gute, MouseP.S.: Die blöde Warnung, die im letzten Bsp kommt, wegen des "assigned but unused Calendar" die
muss man einfach ignorieren , oder die Variable einfach mal irgendwie benutzen...
-
D@ngermouse schrieb:
N'Abend zusammen.
mich an einen Tip hier aus dem Forum gehalten (thx an akari) und ein wenig herumexperimentiert (und die BCB-Hilfe genommen).ah, es doch schon, wenn man geachtet wird (du bekommst einen Schleimpunkt)
Wenn deine zweite Variant funktioniert, ist das gut, war sicher auch so von Borland gedacht, oder?
P.S.: Die blöde Warnung, die im letzten Bsp kommt, wegen des "assigned but unused Calendar" die
muss man einfach ignorieren , oder die Variable einfach mal irgendwie benutzen...Du könntest auch einfach die Variable komplett rausnehmen.
bis bald
akari
-
akari schrieb:
Du könntest auch einfach die Variable komplett rausnehmen.
...Test...
Das klappt leider nicht:
Nur den dynamic_cast ausgeführt ohne die Zuweisung an die Variable sind wieder auch die "Monatsnummern" fett.Mouse.
P.S. Im obigen Bsp kann man es am besten beim Wechsel zwischen Feb und März erkennen...
-
akari schrieb:
Wenn deine zweite Variant funktioniert, ist das gut, war sicher auch so von Borland gedacht, oder?
Das glaube ich weniger, denn die Help-files von borland machen das auch ohne den dynamic-cast, sondern "einfach so",
da die BoldDays-Methode von TCommonCalendar ist.
Auf den dynamic cast bin ich gekommen, um aus dem TMonthCalendar einen TCommonCalendar zu machen...Wie geschrieben: Ich habe halt ein wenig "herumexperimentiert"
Gruß, Mouse
-
Hat noch jemand etwas dazu zu sagen, oder gar eine Erklärung für das seltsame Verhalten?
Ansonsten kommt der Thread in die FAQ.
-