我想基于设计模板对旧的VCL应用程序进行现代化。该设计模板包含不同的按钮样式。假设有三种类型的按钮:LightButton
,DarkButton
和GreenButton
。
由于超过50%的所有按钮都显示为DarkButton
,因此我使用Bitmap Style Designer将TButton
的外观修改为深色设计。
现在我想将其他按钮样式添加到.vsf
文件中,并在我的应用程序中使用它。最好的方法是什么?
我是否需要创建新的按钮类和TStyleHook
的新后代来绘制全新的按钮?如果是,是否有办法尽可能多地重用Vcl.StdCtrls.TButtonStyleHook
中的代码?
是否有其他方法,最佳做法或示例?
答案 0 :(得分:5)
问:现在我想将其他按钮样式添加到.vsf文件中并在我的应用程序中使用它。最好的方法是什么?
A :VCL样式内部不允许使用vsf文件中的多个按钮样式。 (VCL样式文件内的图像用于模仿和替换Windows Themes states and parts)。
问:我是否需要创建新的按钮类和TStyleHook的新后代,它们会绘制全新的按钮?
A :是的,你必须创建一个新的styleHook来绘制自己的按钮。
问:有没有办法从Vcl.StdCtrls.TButtonStyleHook重用尽可能多的代码?
A :是的,您只需要从TButtonStyleHook
类继承样式挂钩,然后覆盖Paint
方法。
TNewButtonStyleHook = class(TButtonStyleHook)
protected
procedure Paint(Canvas: TCanvas); override;
end;
问:还有其他方法,最佳做法或示例吗?
A :尝试使用自定义TButton样式挂钩的这些示例。