Как написать собственный класс TDBCtrlGrid VCL Style?

Здесь много вопросов о стилях XE2 VCL и пользовательских цветах для кнопок, панелей, правки и т.д. и стилей VCL. Насколько мне хотелось бы, чтобы существующие вопросы охватывали его, они не... Итак, панели управления БД выглядят еще одним специальным случаем.

  • В источниках VCL Control Grid VCL он регистрирует крюк стиля таким образом: TCustomStyleEngine.RegisterStyleHook( TDBCtrlGrid, TScrollingStyleHook);

  • Однако это не то, с чем вы могли бы спуститься, если вы хотите написать свой собственный крючок стиля DB Control Grid VCL. Если вы это сделаете, вы получите весь элемент управления, написанный как очень большая полоса прокрутки.

enter image description here

  1. Итак, как вы настраиваете тему в сетке управления БД? Когда вы полностью отключите темы, кажется, что до сих пор не разрешено настраивать активную строку. Поэтому я считаю, что для этого нужно написать собственный подкласс и переопределить метод Paint, а также написать класс крюка стиля VCL для этой цели.

  2. Похоже, что в большинстве случаев нужно просто настраивать, используя регулярные владельцы, рисовать события OnPaintPanel и добавлять это событие, если вы этого не сделали, исправляет самый большой сбой VCL Styles, который я вижу для TDBCtrlGrid, который заключается в том, что он никогда не использует SelectedColor и просто рисует все в плоском сером или что-то еще, что является базовым цветом. Если кто-нибудь может подтвердить это или сказать мне иначе, то это будет оценено.

Ответы