如何将VCL风格钩适用于形式的特定组件?(How to apply a vcl style hook

2019-09-21 11:52发布

我使用的是回答这个问题的VCL风格钩close button of a tabsheet not supporting vcl styles和工作正常,但关闭按钮是画在我的应用程序的所有TPageControl组件。

而且我要添加此选项(绘制的关闭按钮),只一种特殊形式。 现在的问题是:我怎么可以把这个钩子或任何VCL风格挂钩只是一种特定形式的TPageControl?

Answer 1:

您可以使用一个中介类的TPageControl组件

检查此样本

type
  TPageControl = class(Vcl.ComCtrls.TPageControl);
  TForm1 = class(TForm)
    PageControl1: TPageControl;
    ...
    ...

然后注册VCL风格钩在该中介类所在的同一单位

  TStyleManager.Engine.RegisterStyleHook(TPageControl, TTabControlStyleHookBtnClose);

或者使用全限定的类型名称

  TStyleManager.Engine.RegisterStyleHook(Unit1.TPageControl, TTabControlStyleHookBtnClose);


文章来源: How to apply a vcl style hook to a particular component of a form?