LazUtils: Add backwards compatibility to TAvgLvlTree. Needed by BGRABitmap and others.

git-svn-id: trunk@54545 -
This commit is contained in:
juha 2017-04-06 17:44:28 +00:00
parent 8eda400e32
commit 3c525fb548

View File

@ -25,18 +25,27 @@ uses
type type
TAvgLvlTree = class;
TAvgLvlObjectSortCompare = function(Tree: TAvgLvlTree; Data1, Data2: Pointer): integer of object;
{ TAvgLvlTree and TAvgLvlTreeNode for backwards compatibility. { TAvgLvlTree and TAvgLvlTreeNode for backwards compatibility.
They used to be fully implemented here but now inherit from TAVLTreeNode and TAvlTree. They used to be fully implemented here but now inherit from TAVLTreeNode and TAvlTree.
} }
TAvgLvlTreeNode = TAVLTreeNode; TAvgLvlTreeNode = TAVLTreeNode;
TAvgLvlTreeNodeEnumerator = TAVLTreeNodeEnumerator;
TAvgLvlTree = class(TAvlTree) TAvgLvlTree = class(TAvlTree)
private private
FOwnsObjects: boolean; FOwnsObjects: boolean;
function GetObjectCompare: TAvgLvlObjectSortCompare;
procedure SetObjectCompare(AValue: TAvgLvlObjectSortCompare);
public public
constructor CreateObjectCompare(const OnCompareMethod: TAvgLvlObjectSortCompare);
procedure DisposeNode(aNode: TAVLTreeNode); override; procedure DisposeNode(aNode: TAVLTreeNode); override;
procedure FreeAndDelete(ANode: TAVLTreeNode); override; procedure FreeAndDelete(ANode: TAVLTreeNode); override;
property OwnsObjects: boolean read FOwnsObjects write FOwnsObjects; property OwnsObjects: boolean read FOwnsObjects write FOwnsObjects;
property OnObjectCompare: TAvgLvlObjectSortCompare read GetObjectCompare write SetObjectCompare;
end; end;
TAvgLvlTreeClass = class of TAvgLvlTree; TAvgLvlTreeClass = class of TAvgLvlTree;
@ -375,6 +384,21 @@ end;
{ TAvgLvlTree } { TAvgLvlTree }
constructor TAvgLvlTree.CreateObjectCompare(const OnCompareMethod: TAvgLvlObjectSortCompare);
begin
inherited CreateObjectCompare(TObjectSortCompare(OnCompareMethod));
end;
procedure TAvgLvlTree.SetObjectCompare(AValue: TAvgLvlObjectSortCompare);
begin
inherited SetOnObjectCompare(TObjectSortCompare(AValue));
end;
function TAvgLvlTree.GetObjectCompare: TAvgLvlObjectSortCompare;
begin
Result := TAvgLvlObjectSortCompare(FOnObjectCompare);
end;
procedure TAvgLvlTree.DisposeNode(aNode: TAVLTreeNode); procedure TAvgLvlTree.DisposeNode(aNode: TAVLTreeNode);
begin begin
if FOwnsObjects then if FOwnsObjects then