我正在编写一个包含少量组件的组件。
TMyComponent = class(TPanel)
private
fGrid : TExCustomDBGrid;
fOnCellClick : TDBGridClickEvent;
public
constructor Create(AOwner: TComponent); override;
published
property OnCellClick: TDBGridClickEvent read FOnCellClick write FOnCellClick;
End;
...
constructor TMyComponent .Create(AOwner: TComponent);
begin
inherited;
fGrid := TExCustomDBGrid.Create(self);
fGrid.parent := self;
fGrid.Align := alClient;
end;
我希望能够将事件从组件(TPanel)传播到包含的fGrid。 我怎样才能实现这一目标?
我想我应该在TPanel上声明一个具有相同类型的Event(作为容器组件)。那么如何传播到fGrid?
答案 0 :(得分:6)
有点不清楚你在问什么,但根据我看到的代码,编写一个事件处理程序并将其分配给网格......
procedure TMyComponent.DBGridCellClicked(Column: TColumn);
begin
if Assigned(fOnCellClick) then
fOnCellClick(Column);
end;
constructor TMyComponent.Create(AOwner: TComponent);
begin
inherited;
fGrid := TExCustomDBGrid.Create(self);
fGrid.Parent := self;
fGrid.Align := alClient;
fGrid.OnCellClick := DBGridCellClicked;
end;