最简单的方式来显示不同风格的按钮

时间:2016-10-06 11:45:40

标签: delphi vcl vcl-styles delphi-10.1-berlin

我想基于设计模板对旧的VCL应用程序进行现代化。该设计模板包含不同的按钮样式。假设有三种类型的按钮:LightButtonDarkButtonGreenButton

由于超过50%的所有按钮都显示为DarkButton,因此我使用Bitmap Style DesignerTButton的外观修改为深色设计。

现在我想将其他按钮样式添加到.vsf文件中,并在我的应用程序中使用它。最好的方法是什么?

我是否需要创建新的按钮类和TStyleHook的新后代来绘制全新的按钮?如果是,是否有办法尽可能多地重用Vcl.StdCtrls.TButtonStyleHook中的代码?

是否有其他方法,最佳做法或示例?

1 个答案:

答案 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样式挂钩的这些示例。