【问题标题】:Why does THotKey not have an Align property and how can I add it?为什么 THotKey 没有 Align 属性,我该如何添加它?
【发布时间】:2021-09-26 12:16:57
【问题描述】:

在 Windows 10 的 Delphi 10.4.2 32 位 VCL 应用程序中,我尝试使用 THotKey 控件输入热键。由于我经常使用Align 属性来创建整洁的用户界面,我想知道为什么THotKey 没有Align 属性。即使TRzHotKeyEditTJvHotKeyTJvDotNetHotKey 也没有Align 属性。

是否可以模拟THotkey.Align 属性?或者是否有另一个带有 Align 属性的 HotKey 控件?

【问题讨论】:

  • 它是一个 TControl 后代,使用“受保护的黑客”来访问该属性。这当然不能回答为什么不发布该属性。
  • 答案如此简单,几乎不值得回答:“因为没有人想过要发布它。”
  • 这有什么意义,这不是非视觉控制吗?还是我错过了什么?
  • @DavidHeffernan:THotKey 控件确实是一个可视化控件。它包装了HOTKEY Win32 控件。 (另外,我知道您知道这一点,但您的意思当然是“非可视组件”。控件根据定义是可视的。)
  • @user1580348 一句话,没有。为了在设计时出现在 OI 中,必须将属性声明为 published 以生成 RTTI,并且必须将组件放入安装到 IDE 中的包中。在这种情况下,如果您需要设计时支持,这意味着派生一个新组件。 File a report with Embarcadero 如果您希望在未来的版本中本地发布该属性。

标签: delphi hotkeys delphi-10.4-sydney


【解决方案1】:

创建一个单元以将其用作派生自THotKey 的新组件:

unit ExtHotKey;

// Published the Align property

interface

uses
  System.Classes,
  Vcl.ComCtrls;

type
  TExtHotKey = class(THotKey)
  published
    property Align;
  end;

procedure Register;

implementation

procedure Register;
begin
  System.Classes.RegisterComponents('PAComponents', [TExtHotKey]);
end;

end.

然后将其插入到新的或现有的包中并安装该包。

之后,Align 属性在 Object Inspector 中可用,并且运行良好:

【讨论】:

    猜你喜欢
    • 2014-06-21
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 2021-03-31
    • 2020-03-03
    • 2011-03-31
    • 2012-09-29
    • 1970-01-01
    相关资源
    最近更新 更多