我正在构建(在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;
我如何知道用户何时按下RightButton?
GetOnRightButtonClick和SetOnRightButtonClick是私有的。 对于RightButton.Glyph.OnClick。
也一样答案 0 :(得分:2)
没有理由访问RightButton
或超出控件本身的任何内容。只需将您的事件处理程序直接分配给TButtonedEdit.OnRightButtonClick
即可。您在控件属性中找到的任何事件仅供控件本身在内部使用。这些事件未发布,因此您不应尝试使用它们。
WITH edtPath DO
begin
Parent := Self;
OnRightButtonClick:= MyOwnHandler;
end;