有一些BUTTOM的事件,我想用一个数组,循环运行所有的BUTTOM事件。
比如Button1...10
每个BUTTON都有一个事件,
for i := 1 to 10 do
  运行相应的事件,比如“Button1MouseMove”,“Button2MouseMove”.
有什么方法可以做到?

解决方案 »

  1.   

    循环好办,关键是10个button的事件都需要驱动。
      

  2.   

    不知这样行不行?
    先把10个BUTTON的TAG属性设置成从0--9以使FOR循环遍历,然后在执行FOR循环中用一个方法指针依次调用每个BUTTON的事件处理过程。
      

  3.   

    不知道这样行不行
       Button1.OnMouseMove(sender);
       Button2.OnMouseMove(sender);
       Button3.OnMouseMove(sender);
       Button4.OnMouseMove(sender);
       Button5.OnMouseMove(sender);
       Button6.OnMouseMove(sender);
      

  4.   

    把10个Button的Tag值设置为0-9,然后写这样的代码,我假设你在一个Panel上面点击的时候运行你的需求
    //Panel的单击事件
    var
      i :integer;
    begin
      for i := 0 to Form1.ControlCount - 1 do
      begin
        if Form1.Controls[i] is TButton then
          if TButton(Form1.Controls[i]).Tag in [0..9] then
            TButton(Form1.Controls[i]).OnMouseMove(Sender);
      end;
    end;
      

  5.   

    //try
    var
      I: Integer;
      vComponent: TComponent;
    begin
      for I := 1 to 10 do begin
        vComponent := FindComponent(Format('Button%d', [I]));
        if (vComponent is TButton) and
          Assigned(TButton(vComponent).OnMouseMove) then
          TButton(vComponent).OnMouseMove(vComponent, [], 0, 0);
      end;
    end;