Вверх ↑
Ответов: 2415
Рейтинг: 691
#1: 2025-04-12 21:57:17 ЛС | профиль | цитата
nesco писал(а):
твоя задумка миновать использование MST_DrawManager для отрисовки селектора с другим цветом шрифта работать не будет.
Не ,nesco, накопал то что нужно. Вот покопался и оказалась что рисовать самому и не нужно, достаточно систему обмануть. Добавил два свойства:
IgnoreEmptyField=Игнорировать нажатие на пустое поле таблицы|14|1|True,False
FocusFrame=Рисуется рамка фокуса на таблице|14|0|True,False

Первое уже писал выше, а второе позволяет избавится от рамки фокуса. Цель такой не было, но оно само попутно попалось и решил добавить. Вот эта рамка не будет рисоваться если задействовать свойство:

А вот так выглядит выделенная строка с цветом текста (никакой рамки фокуса, при желании можно и с ней):

Логика внесенного кода такова что система сама рисует нужное, мы только подменяем некоторые значения.

-Если подключен MST_DrawManager, то вообще ничего не вносится. MST_DrawManager сам справляется и с рамкой и с выделенной строкой, нечего ему мешать.
-При рисовании выделенной строки сообщаем системе что не надо её рисовать как выделенную (на индекс выделенной строки никак не влияет), заменяем цвет фона на цвет выделенной строки и цвет текста на тот что у строки. Система сами все нарисует.
-Открывается возможность задать цвета выделенной строки в фокусе и цвет выделенной строки не в фокусе. Пока не вносил это дело в свойство, но очень напрашивается.
-Совместимость не пострадала
-FPC работает

Тестировал на разных схемах, проблем не выявил. Хорошо видно на примере идущем в справке по элементу MST_RowAction. Там и цвет фона строки и цвет текста строки.
карма: 11

0
Редактировалось 3 раз(а), последний 2025-04-13 15:21:19