mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-03 19:38:16 +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;
|
end;
|
||||||
PStringToStringTreeItem = ^TStringToStringTreeItem;
|
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 }
|
||||||
|
|
||||||
TStringToStringTree = class
|
TStringToStringTree = class
|
||||||
@ -138,6 +153,7 @@ type
|
|||||||
property CompareKeyItemFunc: TListSortCompare read FCompareKeyItemFunc;
|
property CompareKeyItemFunc: TListSortCompare read FCompareKeyItemFunc;
|
||||||
procedure SetCompareFuncs(
|
procedure SetCompareFuncs(
|
||||||
const NewCompareItemsFunc, NewCompareKeyItemFunc: TListSortCompare);
|
const NewCompareItemsFunc, NewCompareKeyItemFunc: TListSortCompare);
|
||||||
|
function GetEnumerator: TStringToStringTreeEnumerator;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TFilenameToStringTree }
|
{ TFilenameToStringTree }
|
||||||
@ -328,6 +344,27 @@ begin
|
|||||||
Result:=CompareStr(AnsiString(Data1),AnsiString(Data2));
|
Result:=CompareStr(AnsiString(Data1),AnsiString(Data2));
|
||||||
end;
|
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 }
|
{ TStringTreeEnumerator }
|
||||||
|
|
||||||
function TStringTreeEnumerator.GetCurrent: string;
|
function TStringTreeEnumerator.GetCurrent: string;
|
||||||
@ -741,6 +778,11 @@ begin
|
|||||||
Tree.OnCompare:=NewCompareItemsFunc;
|
Tree.OnCompare:=NewCompareItemsFunc;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TStringToStringTree.GetEnumerator: TStringToStringTreeEnumerator;
|
||||||
|
begin
|
||||||
|
Result:=TStringToStringTreeEnumerator.Create(Self);
|
||||||
|
end;
|
||||||
|
|
||||||
{ TFilenameToStringTree }
|
{ TFilenameToStringTree }
|
||||||
|
|
||||||
constructor TFilenameToStringTree.Create(CaseInsensitive: boolean);
|
constructor TFilenameToStringTree.Create(CaseInsensitive: boolean);
|
||||||
|
Loading…
Reference in New Issue
Block a user