请问继承TreeView类后,如何使用onExpanding虚方法?(100分)

  • 主题发起人 主题发起人 steve0531
  • 开始时间 开始时间
S

steve0531

Unregistered / Unconfirmed
GUEST, unregistred user!
写一组件,继承TreeView.
protected
procedure Expanding( Node: TTreeNode; var AllowExpansion: Boolean);
//此处总提示Method 'Expanding' not found in base class
override ;
{ Protected declarations }
public

总提示错误:基类中没有Expanding方法,该怎样改一下?
我还要使用Node参数.
谢谢大家.
 
查了一下.的确没有Expanding( Node: TTreeNode; var AllowExpansion: Boolean)方法,那我怎么override呢?
 
onExpanding 不是一个虚方法,他只是一个属性.
 
谢谢楼上的朋友,我要调用TreeView的OnExpanding方法,怎么实现?
 
if Assigned(OnExpanding) then OnExpanding(Self, Node, Result);
 
是这样的TTreeView中OnExpanding是一个事件,事件是由方法调用时产生的,比如下面
procedure TCustomTreeView.Expand(Node: TTreeNode);
begin
if Assigned(FOnExpanded) then FOnExpanded(Self, Node);
end;

function TCustomTreeView.CanExpand(Node: TTreeNode): Boolean;
begin
Result := True;
if Assigned(FOnExpanding) then FOnExpanding(Self, Node, Result);
end;

而FOnExpanded,FOnExpanding属性的读写是用FOnExpanding和FOnExpanded,所以在调用的时候自然就读或写这两个事件了.一般在点JI TREEVIEW中的+号时自动就调用Expend函数,然后就调用事件了.
property OnExpanding: TTVExpandingEvent read FOnExpanding write FOnExpanding;
property OnExpanded: TTVExpandedEvent read FOnExpanded write FOnExpanded;


先自己看看TCustomTreeView类吧
 
晕了,我要自定义TreeView的OnExpanding方法,执行我的代码,并继承基类.
twos的回答我有点不明白.
 
非常感谢_Murray,我没有看TCustomTreeView.
一会试一下.
 
多人接受答案了。
 
后退
顶部