如何将vcl样式挂钩应用于窗体的特定组件?

Sal*_*dor 3 delphi delphi-xe2 vcl-styles

我正在使用这个问题的答案的vcl样式钩子close button of a tabsheet not supporting vcl styles并且工作正常,但关闭按钮是在我的应用程序的所有TPageControl组件中绘制的.

在此输入图像描述

我想将此选项(绘制关闭按钮)添加到特定表单.问题是:我如何将这个钩子或任何vcl样式钩子只应用于特定形式的TPageControl?

RRU*_*RUZ 5

您可以将插入器类用于TPageControl组件

检查这个样本

type
  TPageControl = class(Vcl.ComCtrls.TPageControl);
  TForm1 = class(TForm)
    PageControl1: TPageControl;
    ...
    ...
Run Code Online (Sandbox Code Playgroud)

然后在插入器类所在的同一单元中注册vcl样式挂钩

  TStyleManager.Engine.RegisterStyleHook(TPageControl, TTabControlStyleHookBtnClose);
Run Code Online (Sandbox Code Playgroud)

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

  TStyleManager.Engine.RegisterStyleHook(Unit1.TPageControl, TTabControlStyleHookBtnClose);
Run Code Online (Sandbox Code Playgroud)