这里有很多关于XE2 VCL样式和按钮,面板,编辑等自定义颜色和VCL样式的问题。尽管我希望现有的问题涵盖在内,但它们并没有......所以DB控制网格似乎是另一个特殊情况。
在DB Control Grid VCL源代码中,它会注册一个样式挂钩:TCustomStyleEngine.RegisterStyleHook( TDBCtrlGrid, TScrollingStyleHook);
但是,如果您想编写自己的DB Control Grid VCL样式挂钩,那么这不是您想要的。如果这样做,您可以将整个控件绘制成一个非常大的滚动条。
那么如何自定义数据库控制网格?完全禁用主题后,似乎仍然不允许自定义绘制活动行。所以我认为必须编写一个自定义子类并覆盖Paint方法,并为此目的编写一个VCL样式钩子类。
似乎应该大多只使用常规所有者绘制事件OnPaintPanel进行自定义,并且添加该事件(如果没有)修复了我在TDBCtrlGrid
看到的最大的VCL样式故障,它不会使用SelectedColor,只是用灰色或其他任何基本颜色绘制所有东西。如果有人可以确认,或者告诉我,我们将不胜感激。