如何知道在界面的按钮是否被按下?系统上有很多按钮我不想一个个在按钮上写程序,能通过检测消息知道哪个按钮被按下吗?

解决方案 »

  1.   

    检查一下消息的 sender 把所有的按钮onclick处理程序全挂到一个处理过程上。
      

  2.   

    我是意思是不再到按钮OnClick去编写程序了,因为按钮也实在太多了,能否通过系统API来检测?
      

  3.   

    用下面的代码,可以把form中的所有TButton的OnClick事件设置为ClickProc把它加到form的OnCreate事件中for i:=0 to form.ControlCount-1 do
      if (form.Controls[i] is TButton) then
        (form.Controls[i] as TButton).OnClick := ClickProc;ClickProc可以通过设置一个TButton的OnClick事件生成
      

  4.   

    Application.OnMessage中
    if (Msg.hwnd=Button1.Handle) and (Msg.message=WM_LBUTTONUP) then
      ...但为什么要这么做,所有按钮共用一个事件处理过程本身就是种不错的思路,有点多此一举的感觉