【问题标题】:Easiest way to show differently styled buttons显示不同样式按钮的最简单方法
【发布时间】:2016-10-06 11:45:39
【问题描述】:

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

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

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

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

还有其他方法、最佳做法或示例吗?

【问题讨论】:

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


    【解决方案1】:

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

    A :VCL 样式内部不允许使用来自 vsf 文件的多个按钮样式。 (VCL Styles 文件中的图片用于模仿和替换Windows Themes states and parts)。


    :我是否需要创建新的按钮类和绘制全新按钮的 TStyleHook 的新后代?

    A:是的,就是这样,你必须创建一个新的 styleHook 来绘制你自己的按钮。


    Q:有没有办法尽可能多地重用 Vcl.StdCtrls.TButtonStyleHook 中的代码?

    A:是的,您只需要从TButtonStyleHook 类继承您的样式挂钩,然后覆盖Paint 方法。

      TNewButtonStyleHook = class(TButtonStyleHook)
      protected
        procedure Paint(Canvas: TCanvas); override;
      end;
    

    :还有其他方法、最佳做法或示例吗?

    A:试试这些自定义 TButton 样式挂钩示例。


    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-04
      • 2012-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-20
      • 1970-01-01
      • 2014-10-04
      相关资源
      最近更新 更多