Richtig, Vergleichsoperatoren sind nicht auf allen Typen definiert, deshalb geht es nicht. Der Ausweg steckt in der
Unit System.Generics.Defaults
. Dort kannst du dann z.B. mittels
TEqualityComparer<T>.Default()
dir einen IEqualityComparator<T> holen der beliebige Typen auf Gleichheit prüft.
Habe grade kein Delphi in der Nähe, aber vielleicht hilft dir das schon weiter?
PS: Warum hast du eigentlich zwei generische Typen? Entweder ist es für mich noch zu früh am Morgen, oder so wird das nicht funktionieren.