АЛьФ писал(а) 29. Сентября 2017 :: 11:39:vadim2009 писал(а) 28. Сентября 2017 :: 19:29:Добрый вечер, Алексей! Огромное спасибо за FormEx! Давно пользуюсь Вашей компонентой.
Сегодня обновил ее (2.0.5.109) до последней версии 2.0.5.128, перестала работать раскраска списков значений. Судя по всему, не срабатывает метод Сервис.ПерехватОтрисовкиСписков(1), потому что он все время возвращает ноль. Проверьте, пожалуйста...
Я сам этот функционал сейчас не использую. Вроде как не должен был задеть последними правками. Если не сложно, то мне помог бы тестовый пример, где можно было бы посмотреть.
Вот код тестовой обработки, на форме только элемент управления "Список значений" СЗРасшифровка. Проверил, на старой версии 2.0.5.109 работает, на последней - нет.
Перем Сервис, Таймаут, ТаймерВыхода, ТаймерСчетчика, Заголовок;
// Возвращает значение цвета в десятичном виде
Функция глЦветЧ(R, G, B) Экспорт
Если (R < 0) ИЛИ (R > 255) ИЛИ (G < 0) ИЛИ (G > 255) ИЛИ (B < 0) ИЛИ (B > 255) Тогда
Возврат 0;
Иначе
Возврат R + G * 256 + B * 256 * 256;
КонецЕсли;
КонецФункции //глЦветЧ()
//
Функция СписокЦветов()
СЗ = СоздатьОбъект("СписокЗначений");
СЗ.ДобавитьЗначение(глЦветЧ(255, 200, 200), "Цвет светло-красный");
СЗ.ДобавитьЗначение(глЦветЧ(255, 0, 0), "Цвет красный");
СЗ.ДобавитьЗначение(глЦветЧ(255, 255, 200), "Цвет светло-желтый");
СЗ.ДобавитьЗначение(глЦветЧ(255, 255, 125), "Цвет желтый");
СЗ.ДобавитьЗначение(глЦветЧ(255, 150, 255), "Цвет фиолетовый");
СЗ.ДобавитьЗначение(глЦветЧ(180, 180, 180), "Цвет серый");
Возврат СЗ;
КонецФункции //СписокЦветов()
//
Функция ПолучитьРасшифровкуЦветов()
СЗЦвета = СписокЦветов();
СЗ = СоздатьОбъект("СписокЗначений");
Для Сч = 1 По СЗЦвета.РазмерСписка() Цикл
Описание = "";
Цвет = СЗЦвета.ПолучитьЗначение(Сч, Описание);
СЗ.ДобавитьЗначение(Цвет, Описание +
РазделительСтрок + "BRUSH[" + Цвет + "]BRUSH_S[" + Цвет + "]FONT_S[0]");
КонецЦикла;
Возврат СЗ;
КонецФункции //ПолучитьРасшифровкуЦветов()
//
Процедура ВыходПоТаймеру()
Форма.Закрыть();
КонецПроцедуры //ВыходПоТаймеру()
//
Процедура Счетчик()
Таймаут = Таймаут - 1;
Форма.Заголовок(Заголовок + " (" + Таймаут + ")");
КонецПроцедуры //ВыходПоТаймеру()
// Предопределенная процедура ПриОткрытии().
Процедура ПриОткрытии()
Попытка
Сервис = СоздатьОбъект("Сервис");
Исключение
ЗагрузитьВнешнююКомпоненту("FormEx.dll");
Сервис = СоздатьОбъект("Сервис");
КонецПопытки;
Сервис.ПерехватОтрисовкиСписков(1);
СЗ = ПолучитьРасшифровкуЦветов();
СЗ.Выгрузить(СЗРасшифровка);
СтрВерсия = "";
Сервис.Версия(СтрВерсия);
Заголовок = "Список цветов. FormEx " + СтрВерсия;
Форма.Заголовок(Заголовок);
Таймаут = 60;
Если ПустоеЗначение(Таймаут) = 0 Тогда
ТаймерВыхода = СоздатьОбъект("Таймер");
ТаймерВыхода.ЗадатьОбработчикВМодулеФормы(Контекст, "ВыходПоТаймеру");
ТаймерВыхода.Запустить(Таймаут * 1000);
ТаймерСчетчика = СоздатьОбъект("Таймер");
ТаймерСчетчика.ЗадатьОбработчикВМодулеФормы(Контекст, "Счетчик");
ТаймерСчетчика.Запустить(1000);
Таймаут = Таймаут - 1;
КонецЕсли;
КонецПроцедуры //ПриОткрытии()