mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-30 12:22:56 +02:00
codetools: TStringToStringTree: enumerator
git-svn-id: trunk@32252 -
This commit is contained in:
parent
79085afc25
commit
4fe0ba4296
@ -104,6 +104,21 @@ type
|
||||
end;
|
||||
PStringToStringTreeItem = ^TStringToStringTreeItem;
|
||||
|
||||
TStringToStringTree = class;
|
||||
|
||||
{ TStringToStringTreeEnumerator }
|
||||
|
||||
TStringToStringTreeEnumerator = class
|
||||
private
|
||||
FTree: TStringToStringTree;
|
||||
FCurrent: TAVLTreeNode;
|
||||
function GetCurrent: PStringToStringTreeItem;
|
||||
public
|
||||
constructor Create(Tree: TStringToStringTree);
|
||||
function MoveNext: boolean;
|
||||
property Current: PStringToStringTreeItem read GetCurrent;
|
||||
end;
|
||||
|
||||
{ TStringToStringTree }
|
||||
|
||||
TStringToStringTree = class
|
||||
@ -138,6 +153,7 @@ type
|
||||
property CompareKeyItemFunc: TListSortCompare read FCompareKeyItemFunc;
|
||||
procedure SetCompareFuncs(
|
||||
const NewCompareItemsFunc, NewCompareKeyItemFunc: TListSortCompare);
|
||||
function GetEnumerator: TStringToStringTreeEnumerator;
|
||||
end;
|
||||
|
||||
{ TFilenameToStringTree }
|
||||
@ -328,6 +344,27 @@ begin
|
||||
Result:=CompareStr(AnsiString(Data1),AnsiString(Data2));
|
||||
end;
|
||||
|
||||
{ TStringToStringTreeEnumerator }
|
||||
|
||||
function TStringToStringTreeEnumerator.GetCurrent: PStringToStringTreeItem;
|
||||
begin
|
||||
Result:=PStringToStringTreeItem(FCurrent.Data);
|
||||
end;
|
||||
|
||||
constructor TStringToStringTreeEnumerator.Create(Tree: TStringToStringTree);
|
||||
begin
|
||||
FTree:=Tree;
|
||||
end;
|
||||
|
||||
function TStringToStringTreeEnumerator.MoveNext: boolean;
|
||||
begin
|
||||
if FCurrent=nil then
|
||||
FCurrent:=FTree.Tree.FindLowest
|
||||
else
|
||||
FCurrent:=FTree.Tree.FindSuccessor(FCurrent);
|
||||
Result:=FCurrent<>nil;
|
||||
end;
|
||||
|
||||
{ TStringTreeEnumerator }
|
||||
|
||||
function TStringTreeEnumerator.GetCurrent: string;
|
||||
@ -741,6 +778,11 @@ begin
|
||||
Tree.OnCompare:=NewCompareItemsFunc;
|
||||
end;
|
||||
|
||||
function TStringToStringTree.GetEnumerator: TStringToStringTreeEnumerator;
|
||||
begin
|
||||
Result:=TStringToStringTreeEnumerator.Create(Self);
|
||||
end;
|
||||
|
||||
{ TFilenameToStringTree }
|
||||
|
||||
constructor TFilenameToStringTree.Create(CaseInsensitive: boolean);
|
||||
|
Loading…
Reference in New Issue
Block a user