我如何知道用户何时单击了 TButtonedEdit.OnRightButton?

How do I know when the user clicked the TButtonedEdit.OnRightButton?

我正在构建(在 Delphi XE7 中)基于 TGroupBox 的自定义控件。 它在其他控件中包含一个 TButtonedEdit。

constructor TMyControl.Create(aOwner: TComponent);
VAR myIcon: TIcon;
begin
 inherited Create(aOwner);
 ...
 edtPath:= TButtonedEdit.Create(Self);
 WITH edtPath DO
  begin
   Parent                := Self;
   RightButton.Glyph.OnClick:= MyOwnHandler;      <- Here error: "Cannot access protected symbol TEditButton.Glyph"
   RightButton.OnRightButtonClick:= MyOwnHandler; <- Here error: "Undeclared identifier: 'OnRightButtonClick'"
  end;
end;

我如何知道用户何时按下了右键?

GetOnRightButtonClick 和 SetOnRightButtonClick 是私有的。 RightButton.Glyph.OnClick.

也一样

没有理由访问 RightButton 或任何超出自身控制范围的内容。只需将您的事件处理程序直接分配给 TButtonedEdit.OnRightButtonClick。您在控件属性中找到的任何事件仅供控件本身在内部使用。这些事件未发布,因此您不应尝试使用它们。

WITH edtPath DO
begin
  Parent                := Self;
  OnRightButtonClick:= MyOwnHandler;
end;