我的类: TOrgNode = class; //前置声明 TOrgNodeList = class(TObjectList) //从TObjectList继承的一个对象列表类
private
function GetItems(Index: Integer): TOrgNode;
procedure SetItems(Index: Integer; const Value: TOrgNode);
public
property Items[Index: Integer]: TOrgNode read GetItems write SetItems;
end; TOrgNode = class(TObject)
private
FNodeIndex: Integer;
FName: string;
FSubOrgNodeList: TorgNodeList;
public
constructor Create(Idx: Integer);
destructor Destroy; override;
property NodeIndex: Integer read FNodeIndex write FNodeIndex;
property Name: string read FName write FName;
property SubOrgNodeList: TorgNodeList read FSubOrgNodeList; //一个子列表
end;Var
orgNodeList: TOrgNodeList;如何用一个递归查找函数,快速从orgNodeList中,查找到指定NodeIndex的TOrgNode对象呢?
private
function GetItems(Index: Integer): TOrgNode;
procedure SetItems(Index: Integer; const Value: TOrgNode);
public
property Items[Index: Integer]: TOrgNode read GetItems write SetItems;
end; TOrgNode = class(TObject)
private
FNodeIndex: Integer;
FName: string;
FSubOrgNodeList: TorgNodeList;
public
constructor Create(Idx: Integer);
destructor Destroy; override;
property NodeIndex: Integer read FNodeIndex write FNodeIndex;
property Name: string read FName write FName;
property SubOrgNodeList: TorgNodeList read FSubOrgNodeList; //一个子列表
end;Var
orgNodeList: TOrgNodeList;如何用一个递归查找函数,快速从orgNodeList中,查找到指定NodeIndex的TOrgNode对象呢?
DestNodeList : TOrgNodeList;
....
DestNodeList := TOrgNodeList.Create(....
procedure loopsearch(SouceNodeList : TOrgNodeList ;NodeIndex : Integer)
var
tmpNodeList : TOrgNodeList;
begin
if
if (SouceNodeList.Count > NodeIndex) and (SouceNodeList[NodeIndex] <> nil) then
begin
DestNodeList.Add(SouceNodeList[NodeIndex]);
end
else
begin
tmpNodeList := SouceNodeList.SubOrgNodeList;
loopsearch(tmpNodeList,NodeIndex);
end;
end;