andreybear
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Это двумерный массив, содержащий значения от 0 до 5. 1..5 - соответствуют цветам, которые описаны в коде. 0 - не соответствует никакому цвету. Есть некоторые показатели для конкретных объектов (например, объекты: Всас, Д 400 мм, Д 500 мм; показатели: уровень, давление, расход), для каждого показателия объекта определена норма. При загрузке значений конкретного показателя объекта в таблицу производится сверка с нормами для этого показателя. Если норма задана, то в зависимости от результатов сравнения в массив проставляются цифры 2..4 (2 - ниже нормы, 3 - норма, 4 - выше нормы). 1 - норма для показателя объекта есть, но либо кончился срок действия, либо показание не попадает во временной интервал. 5 - вообще нет записи в таблице норм. 0 используется в данном случае для указания на то, что не требуется закрашивание (колонка "Дата" в таблице). Индексы первого измерения соответствуют индексам записей таблицы(Records), индексы второго измерения соответствуют индексам колонок таблицы(Items). Данные хранятся в СУБД Oracle. Я могу скинуть куда-нибудь немалый исходный код, однако дело тут не в массиве, о чем свидетельствуют скриншоты 3-5. Заметил такую особенность - если изначально загрузить не много данных(столько, чтоб данные умещались таблице при развернутой на весь экран форме), уменьшить размер формы(у таблицы Align = Client), чтоб появились скролбары в таблице, затем поскролить вверх/вниз(соответственно закраска ячеек станет неправильной) (скрин 6), затем растянуть форму так, чтоб все данные уместились в таблице и исчезли скролбары, то в этом случае закраска становится корректной прям на глазах!(скрин 7) Уже давненько пытаюсь найти решение этой проблемы или причину, которая к привела к ее возникновению, но что-то пока не получается. Хотел было отказаться от этой затеи, однако эта функция одно из обязательных требований заказчика. Скрин 6 http://imageshack.us/photo/my-images/696/scrin6.jpg/ Скрин 7 http://imageshack.us/photo/my-images/580/scrin7.jpg/ Добавлено: marser Действительно, простой пример работает! vladman Цитата: Попробуйте заменить recI := AViewInfo.RecordViewInfo.Index; на recI := AViewInfo.GridRecord.RecordIndex; | Точно в цель! Вы случайно не экстрасенс? Сразу же увидели причину! vladman, marser, BlackVetal Огромное человеческое спасибо! Несколько дней убил на поиск ошибки, уже и не знал, что делать, а вы прям махом помогли разобраться! |