Maske zum Markieren in Monatskalender erstellen

  • Hi,
    wenn man in einem Monatskalender (GUICtrlCreateMonthCal) Tage fett markieren möchte (erfordert Style: $MCS_DAYSTATE) ist es erforderlich, die Tage zu maskieren.
    Mit der folgenden Funktion wird das erledigt. Einfach einen String mit den zu markierenden Tagen übergeben (braucht nicht in Reihenfolge zu sein) und die Maske als Hexstring wird zurückgegeben.
    Trennzeichen ist standardmäßig das per Opt('GUIDataSeparatorChar') festgelegte Zeichen.
    Markiert wird mit _GUICtrlMonthCal_SetDayState($hMonthCal, $aMasks).


    Edit:
    Übergabe nun als trennzeichenbasierter String oder als Array möglich.


    Edit 12.08.2011
    Da sich diese Funktion nicht nur für _GUICtrlMonthCal_SetDayState verwenden läßt, sondern generell, wenn innerhalb eines Monats Markierungen für verschiedene Tage gesetzt werden sollen, habe ich jetzt mal noch die Gegenfunktion zum Auslesen der markierten Tage erstellt.
    Die Funktionen sind also:


    _GetHexMask($vDays [, $Delim=Default])
    Codiert die übergebenen Tageszahlen (1-31) als Hex-String, wie er als Maske zum Markieren mit _GUICtrlMonthCal_SetDayState im MonthCal Anwendung findet


    _DecodeHexMask($sHex [, $fArray=True[, $Delim=Default]])
    Gibt die mit _GetHexMask() codierten Tageszahlen (1-31) als Array (Standard) oder Trennzeichenstring zurück


  • Woher hast du den Style $MCS_DAYSTATE, kann ihn in der Hilfe nicht finden.



    Kannst du mal ein Beispiel machen? Wäre Interessant.



    Edit: hab den Syle bei _GUICtrlMonthCal_Create gefunden.

  • Hier ein Bsp.:


  • Hey, danke für das Beispiel. :thumbsup::thumbup: