我设置了一个动态按钮数组,使用软件时可根据需要自由增减按钮的数量。但是我在动态设置按钮的事件时,却始终找不出很好的办法。
  请各位勿必帮忙!多谢!

解决方案 »

  1.   

    写一个函数,用于响应动态按钮
    在创建好动态按钮后用Button.OnClick:=响应函数
      

  2.   

    既然是动态创建按钮,那么你一定会有下面的语句:
    Buttons[i] := TButton.Create(MyForm);
    Buttons[i].Parent := MyForm;
    现在你要做的只是再添加一句:
    Buttons[i].OnClick := MyButtonOnClick;
      

  3.   

    补充楼上的,首先要定义第个Button要实现的方法,
    如要为Buttons[1]设置事件,要先定义
    procedure MyButtonOneOnClick(Sender: TObject);
    begin
    end;
    然后将事件的指针指向这个事件即可,即:
    Buttons[1].OnClick:=MyButtonOneOnClick;
      

  4.   

    你的问题还不明确
    所以没有人能回答出来
    onclick的参数只有sender,你要什么样的参数表?
      

  5.   

    对呀,这样传递参数就成问题了!我需要可以传递参数的自定义事件!比如OnClick、MouseMove、MouseDown事件!
      

  6.   

    如果你想要参数的话,可以这样做:
    简单的一个参数,比可以使用button的tag来存储这个值,在用的时候,用
    (sender as TButton).tag就可以取出相应的参数了,另外,保存更复杂的参数可以继承这个button
      

  7.   

    方法1、创建动态按钮时用
    button的tag来存储值,该值表示数组的位置,在Onclick事件中用用
    (sender as TButton).tag取出相应的值,查找对应数组位置,你需要什么参数尽管用好了。
    方法2、从BUTTON类继承一个新类,增加一个新的事件,该事件可以定义你需要的参数,激活该事件时
    必须带参数,处理该事件时就有你需要的参数了。