有某控件的源代码,如想知道其onclick事件的实际代码,如何关联查看?
EMPNotify = procedure (Sender: TObject; Button: TMPBtnType;
    var DoDefault: Boolean) of object;FOnClick: EMPNotify;property OnClick: EMPNotify read FOnClick write FOnClick;

解决方案 »

  1.   

    onclick 是讓使用控件的人來定義處理代碼的, 理論上你是看不到的, 當然, 如果該控件在Click中自己先做些處理, 尋又另當別論!
      

  2.   

    一般在触发自定义事件的时候都有如下形式:
      if Assigned(FOnClick) then
        FOnClick(Self);
    所以,查找一下FOnClick就基本上可以找到。
      

  3.   

    :) 问题就在于我查找FOnClick,找不到任何实现代码,谢谢大家了
      

  4.   

    FOnClick是一个函数指针,它默认是nil,你可以在程序中将某个函数赋给它,这样在该控件内部的
      if Assigned(FOnClick) then
        FOnClick(Self);
    就会被执行到,它会调用你定义的方法,比如你在界面上放了一个button1,双击它ide会自动生成procedure TForm1.button1Click(sender:TObject)的事件,你在其中写入你的代码,在程序运行时,Reader(关于Reader读dfm的部分不说了,可以参考《Delphi参考手册》等书)会执行类似这样的代码:Button1.OnClick:=Form1.button1Click;
    OnClick是个property,对它的赋值相当于:Button1.FOnClick:=Form1.Button1Click;
    这样当你点击按钮时,它执行FOnClick(Self);就会执行你的Form1.Button1Click;函数了。。希望我说清楚了。