Migrer de uutlGenerics vers Generics.Collections
Bonjour,
Je cherche à moderniser et à supprimer du vieux code plus maintenu par du code standard concernant les Generics.
Voici le code de base :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| uses
Classes, SysUtils, uutlGenerics,Windows;
type
TDirectoryNode = class;
TDirectoryRootInfo = class;
TDirectoryNodeList = class(specialize TutlList<TDirectoryNode>)
public
procedure SortRecursive(aComparer: IComparer; const aReverse: boolean);
end;
TDirNodeSortBySize = class(TInterfacedObject, TDirectoryNodeList.IComparer)
public
function EqualityCompare(constref i1, i2: TDirectoryNode): boolean;
function Compare(constref i1, i2: TDirectoryNode): integer;
end; |
J'ai cherché à le remplacer par ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| uses
Classes, SysUtils, Generics.Defaults, Generics.collections, Windows;
type
TDirectoryNode = class;
TDirectoryRootInfo = class;
TDirectoryNodeList = class(specialize TList<TDirectoryNode>)
public
procedure SortRecursive(aComparer: IComparer; const aReverse: boolean);
end;
TDirNodeSortBySize = class(TInterfacedObject, TDirectoryNodeList.IComparer)
public
function EqualityCompare(constref i1, i2: TDirectoryNode): boolean;
function Compare(constref i1, i2: TDirectoryNode): integer;
end; |
uutlGenerics provient des paquets, pas facile à trouver : bitSpaceControls et bitSpaceUtils...
Sauf que mon Lazarus râle sur les ICOMPARER, et j'avoue je suis bien loin de maîtriser les generics couplés à une interface...
Une idée de ce qui me manque pour résoudre le problème ?
Merci d'avance de votre aide.