【发布时间】:2019-09-08 03:23:15
【问题描述】:
我像这样创建了一个TPanel 组件:
procedure TVistaVehiculo.CrearMenu(Name: string);
var
Panel : TPanel;
begin
Panel := TPanel.Create(VistaVehiculo);
Panel.Parent := VistaVehiculo.Sidebar;
Panel.Width := VistaVehiculo.Sidebar.Width;
Panel.Height := 40;
Panel.Caption := Name;
Panel.BevelInner := TBevelCut.bvNone;
Panel.BevelOuter := TBevelCut.bvNone;
Panel.BevelKind := TBevelKind.bkNone;
end;
现在,我想在这个面板上附加一个事件监听器并将对象作为参数传递。
然后我创建一个这样的过程:
procedure TVistaVehiculo.ClickOnMenu(Sender: TPanel);
begin
Sender.Caption := 'Clicked'; //for example
end;
我该怎么做?
对不起,如果这个问题很愚蠢 - 我对 Delphi 很陌生
【问题讨论】:
-
Panel.OnClick := Self.ClickOnMenu;注意Self是TVistaVehiculo的实际实例。使用VistaVehiculo不是引用表单实例的方式。避免这种情况。 -
需要注意的是,他需要将他的 ClickOnMenu 声明更改为
ClickOnMenu(Sender : TObject),因为 OnClick 是一个 TNotificationEvent。 -
@KenBourassa,很好,错过了。
标签: delphi