我界面中有30多个edit控件,每个edit旁边都有个button控件,点击button事件,都是调用一个共用的过程(从中选值,然后显示在edit中),但这得每个button都有个click事件,能不能有办法不用挨个写button1click~button30click事件,而就可以捕获这些事件呢?

解决方案 »

  1.   

    谁说不可以!事件(属性)就是指针,方法指针,所以只要让所有的事件指向一个方法的入口地址就可以了,至于这个方法可以自己定义,当然更可以使用DELPHI IDE给我们提供的,道理就是这样,具体操作如下:按住CTRL键,然后用鼠标选择全部的BUTTON,最后在其中的一个BUTTON上双击,进入对应事件,然后把那公用代码拷贝到这里就OK了.........
      

  2.   

    实现的方法很多一、用ActionList,把所有的按钮都连同一个Action
    二、写一个公用的过程,procedure ButtonCommonClick(Sender: TObject);
        用程序写Button1.OnClick = ButtonCommonClick();
    三、方法和方法2差不多,在Button的OnClick列表中都选择同一个事件方法就OK了。
      

  3.   

    在create里面用程序写吧
    button1.onclick:=buttonclick;
    button2.onclick:=buttonclick;
    .....
      

  4.   

    用Action的方法有点小题大做!
      

  5.   

    为什么IDE自动提供的事件你们都不用,非要自己写个procedure指针?
      

  6.   

    ActionList 不好用吗?关联指针不就行了
      

  7.   

    既然是公用过程,加个Sender参数不就可以了马?
      

  8.   

    写个BUTTON事件(加上SENDER AS '你的改变的控件'),所有BUTTON的事件都引用它