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

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

最佳答案

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

检查这个样本

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

然后在interposer类所在的同一个单元注册vcl风格的hook
  TStyleManager.Engine.RegisterStyleHook(TPageControl, TTabControlStyleHookBtnClose);

或者使用完全限定的类型名称
  TStyleManager.Engine.RegisterStyleHook(Unit1.TPageControl, TTabControlStyleHookBtnClose);

关于delphi - 如何将 vcl 样式 Hook 应用于表单的特定组件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12079665/

10-10 19:24