Sender的认识

来源:互联网 发布:淘宝商城专业托管 编辑:程序博客网 时间:2024/05/22 10:42

对于要执行相同事件的事件代码,如菜单的Click事件调用窗口出来,代码只需写一次,在TreeView或是GroupItem的Click事件可以用一个自定义过程去调用菜单的Click事件代码,可以用Sender来实现。

1、Sender就是调用一个事件过程的控件,当你点击一个按钮Button1时,会产生一个Buootn1Click事件,系统会把Button1传递给Button1Click事件作为参数;

2、Sender是激发一个事件的对像(如按钮...),如点击Menu,则Menu的Click事件中的Sender就是这个TMenuItem......;

  if Node.Data<>nil then
    sFunctNO:=PMYData(Node.data)^.sFunctno;
  //ShowMessage(sFunctNO);  //返回菜单对应的ID

  TreeViewItemClick(Node,sFunctNO); //自定义的过程,传参数:一个TTreeNode对象,就是Sender,还有一个是字符串变量

  if Sender is TTreeNode then
  begin
    if sFunctNo='m0102' then
      m0102Click(Sender as TTreeNode);  //表示m0102Click事件是由TTreeNode对象来激发的

  end;