我创建了一个像这样的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 还很陌生
最佳答案
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;
Panel.OnClick := ClickOnMenu; // <-- add this!
end;
procedure TVistaVehiculo.ClickOnMenu(Sender: TObject); // <-- must be TObject!
begin
TPanel(Sender).Caption := 'Clicked';
end;
关于delphi - 在 Delphi 中将事件监听器分配给动态创建的 TPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55735017/