原始控件没有双击事件,我想为该控件增加一个双击事件,请问怎么编码啊,我是这样写的TMyGroupItem = class(TrzGroupItem)
 private
    FOnDblClick: TNotifyEvent;
  published
    property OnDblClick: TNotifyEvent read fOnDblClick write fOnDblClick;end;function CreateGroupItem(GroupNode:TRzGroup;GroupItemName:String):TMyGroupItem;
var
 Item:   TMyGroupItem ;
begin
Item:=GroupNode.Items.Add;  (这里通不过,因为GroupNode.Items.Add增加的子节点的类型是原始类型TrzGroupItem)
Item.Caption:=GroupItemName;
Item.Tag:=2;
Item.ImageIndex:=2;
Item.OnClick:=ItemClick;
Result:= Item;
end;

解决方案 »

  1.   

    学习,不过这样系统还是不知道OnDblClick是什么,因为你给他定义成onThreeClick 都可以啊
      

  2.   

    你这种写法不对,只可能向上转型。
    正如我们可以说鸟是一种动物,而不能说动物是一种鸟。
    TMyGroupItem是一种TrzGroupItem,而TrzGroupItem不是一种TMyGroupItem。
      

  3.   

    GroupNode.Items.Add创建的是TrzGroupItem的对象,不完全包括TMyGroupItem,所以不能直接给Item赋值
      

  4.   

    从TRzGroup再继承一个类,修改它的Add方法使其返回TMyGroupItem类型。
      

  5.   

    怎么修改Add的返回方法呢??????能不能具体一点
      

  6.   

    不需要,自己定义一个TMyGroupItem类,在类里写上ondblclick事件,创建的时候这样创建
    var
      myitem: TMyGroupItem;
    begin
      myitem := TMyGroupItem.Create(RzGroup1.Items);
    end;
    就可以了~