Вверх ↑
Ответов: 2433
Рейтинг: 693
#1: 2018-05-25 16:54:13 ЛС | профиль | цитата
Странно, очень странно. Может кто поможет разобраться, у меня не получается понять откуда ноги растут.
Получается следующее:
- Система запрашивает данные о выделенных днях в календаре: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:59

tig-rrr, а попробуйте другим компилятором.
У меня на win7 32b в зависимости от компилятора: на fpc одни месяцы не правильно отображает, на "другом" другие. А на ХРюшке все нормально, на обоих компиляторах.
карма: 11

0
Редактировалось 7 раз(а), последний 2018-05-25 17:51:42