2016-09-16 38 views
0

我正在構建(在Delphi XE7中)基於TGroupBox的自定義控件。 它包含其他控件TButtonedEdit。如何知道用戶何時單擊TButtonedEdit.OnRightButton?

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也一樣。

回答

2

沒有理由訪問RightButton或超出控制本身的任何東西。只需將您的事件處理程序直接分配給TButtonedEdit.OnRightButtonClick即可。您在控件屬性中找到的任何事件僅用於控件本身在內部使用。這些事件不會發布,因此您不應該嘗試使用它們。

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

嗨傑瑞。它也不會工作。我得到:「未聲明的標識符:'OnRightButtonClick'' – Ampere

+0

@SolarWind在您的Object Inspector中查找其中一個'TButtonedEdit'控件。具體的事件。你看到這樣的事件「OnRightButtonClick」? –

+0

是的。我真的看到它!我也看到OnLeftButtonClick。 – Ampere

相關問題