如何编写TDBCtrlGrid VCL样式自定义类?

War*_* P 19 delphi delphi-xe2 vcl-styles

这里有很多关于XE2 VCL样式和按钮,面板,编辑等自定义颜色和VCL样式的问题.尽管我希望现有问题涵盖它,但它们并没有...因此DB控制网格似乎是另一个特殊情况.

  1. 在DB Control Grid VCL源代码中,它会注册一个样式挂钩: TCustomStyleEngine.RegisterStyleHook( TDBCtrlGrid, TScrollingStyleHook);

  2. 但是,如果您想编写自己的DB Control Grid VCL样式挂钩,那么这不是您想要的.如果你这样做,你可以将整个控件绘制成一个非常大的滚动条.

在此输入图像描述

  1. 那么如何自定义数据库控制网格?完全禁用主题后,似乎仍然不允许自定义绘制活动行.因此,我认为必须编写自定义子类并覆盖Paint方法,并为此目的编写VCL样式钩子类.

  2. 似乎应该主要使用常规所有者绘制事件OnPaintPanel进行自定义,并且添加该事件(如果没有)修复了我看到的最大的VCL样式故障,TDBCtrlGrid即它不会使用SelectedColor只是用灰色或其他任何基色来绘制所有东西.如果有人可以确认,或者告诉我,我们将不胜感激.