我已经创建了一个自定义按钮。我用网格将其连接起来。并且我为点击事件制作了自定义代码。
简化了以下代码以便于理解。
一切正常,如果我单击按钮,则显示消息。但是由于我在这里运行更多代码。我想尽可能隐藏此按钮的所有事件。即使我实际上将TcxButton用作父类,这也是可能的吗?
unit cxGridButton;
interface
uses
System.SysUtils, System.Classes, Vcl.Controls, Vcl.StdCtrls, cxButtons,
cxGridDBTableView, Dialogs;
type
TcxGridButton = class(TcxButton)
private
FGridView : TcxGridDBTableView;
protected
{ Protected declarations }
public
{ Public declarations }
procedure Click; override;
published
property DBGridView : TcxGridDBTableView read FGridView write FGridView;
end;
procedure Register;
implementation
procedure TcxGridButton.Click;
begin
inherited; // call the inherited Click method.
ShowMessage('AHA');
end;
procedure Register;
begin
RegisterComponents('James', [TcxGridButton]);
end;
end.
答案 0 :(得分:4)
在设计时,您可以在注册组件时调用UnlistPublishedProperty()
,从而从对象检查器中隐藏published
属性。
在运行时,您不能阻止代码访问public
/ published
属性。