Странно, очень странно. Может кто поможет разобраться, у меня не получается понять откуда ноги растут.
Получается следующее:
- Система запрашивает данные о выделенных днях в календаре:
WM_NOTIFY: -
MCN_GETDAYSTATE:.
- Нужно заполнить массив
DayT (array [0..13] of LongWord) и показать его
prgDayState.
- Массив
DayT заполняется из заранее подготовленного массива
DayМ (см. procedure THICalendar.SetDayState;).
- Массив
DayT состоит из 14 чисел, для каждого
отображенного месяца на календаре. К примеру если отображается с января по декабрь 2018 года, то 0 индекс это числа декабря 2017 кода, 1 - 12 индекс месяцы 2018 года, а 13 индекс январь 2019 года.
- По скриншоту от
tig-rrr видно что, данные в массиве
DayT в индексах 0 и 1 не те что выставляются.
- Очищаем 1 индекс (январь 2018 в нашем случае)
DayT[1] := $00000000 перед
prgDayState := Cardinal(@DayT) и получаем туже картину.
- Напрашивается вывод что вносятся изменения в массив (где? кем? когда?) после отработки кода.
sla8a писал(а):
Есть у кого ещё win7 64b? Проверьте ошибку. На пустой проект бросьте компонент календарь, увеличьте его размер чтоб отображал 12 месяцев и запустите проект, будут ли в первом месяце выделенные дни?
--- Добавлено в 2018-05-25 17:25:58Проверил на win7 32b, так там неправильно отображаются месяца в индексами с 1 по 4.

А у
tig-rrr на win7 64b с 0 по 1.
--- Добавлено в 2018-05-25 17:50:59tig-rrr, а попробуйте другим компилятором.
У меня на win7 32b в зависимости от компилятора: на fpc одни месяцы не правильно отображает, на "другом" другие. А на ХРюшке все нормально, на обоих компиляторах.
Редактировалось 7 раз(а), последний 2018-05-25 17:51:42