如何在一个处理程序中获取所有项目单击事件?

时间:2013-12-26 21:23:29

标签: delphi firemonkey delphi-xe5

我的列表框项目应该是TPanel的链接。每个列表框项目的TPanel信息都不同。

如何让所有项目在一个处理程序中点击事件?

有没有办法在进入内置的OnListBoxItem1ClickEvent之前获取所有事件?

1 个答案:

答案 0 :(得分:4)

要为某个列表框的所有项目分配OnClick事件的公共方法,您可以尝试使用以下(未经测试的)代码。它迭代列表框的ListItems集合的所有项目,并为每个TListBoxItem项目分配一个OnClick事件方法(假设这是常见的):

type
  TForm1 = class(TForm)
    Button1: TButton;
    ListBox1: TListBox;
    ...
    procedure Button1Click(Sender: TObject);
  private
    procedure CommonItemClick(Sender: TObject);
  end;

implementation

procedure TForm1.CommonItemClick(Sender: TObject);
begin
  // this is the common OnClick event method
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  I: Integer;
begin
  for I := 0 to ListBox1.Count - 1 do
    ListBox1.ListItems[I].OnClick := CommonItemClick;
end;