我写了一个组件,我想把我的代码加进已有的事件里,如何去做!

解决方案 »

  1.   

    procedure Onclick(....)
    begin
     inherited;
      ...//你的代码
    end;
      

  2.   

    比如:
    procedure TMyDeriveComponent.DoClick;
    begin
      if Assigned(FOnClick) then
      begin
        FOnClick(Self);
        ...  //你天的代码
      end;
    end;触发事件的地方调这个函数。
    firetoucher(风焱)说得好象是继承方法,不是事件
      

  3.   

    我也知道,Click是这样的,可是象OnChange和OnChanging内
      

  4.   

    多数的VCL事件都会在protected区有一个叫DoXXX的方法。
    找到后重载它就行了。
      

  5.   

    我也知道,可是我要重载的没找到啊,我是要重载TTreeView的OnChange和OnChanging事件啊
      

  6.   

    搜索源代码,找到调用OnChange和OnChanging方法的代码段。
    使用reintroduce重载该方法。
      

  7.   

    我没找到啊,能帮忙找一下吗,reintroduce是什么意思?
      

  8.   

    reintroduce可以强制重载没有声明为virtual或dynamic的方法。你要的代码在TCustomTreeView中。行号为1165和1168。
    你只要重载CanChange和Change方法就行了。这两个方法都是dynamic的,可以直接使用override关键字。
      

  9.   

    FOnChange实际上是一个方法指针。
    他的意思是如果这个指针已经指向了某一个事件处理方法的话,就执行该事件。
    另外,当TreeView改变的时候,TreeView本身就会自动调用这两个方法。如果你重载了这两个函数的话,TreeView就会调用新的方法来做你想做的事情了。