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

时间:2012-08-22 18:58:38

标签: delphi delphi-xe2 vcl-styles

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

enter image description here

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

1 个答案:

答案 0 :(得分:5)

您可以为TPageControl组件使用插入器类

检查此示例

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

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

  TStyleManager.Engine.RegisterStyleHook(TPageControl, TTabControlStyleHookBtnClose);

或使用完全限定类型名称

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