Nachdem ich nun das neue Feature Generics in meinen Quellcodes implementiert hatte, musste ich auch gleich eine schmerzhafte Bekanntschaft mit einigen Zugriffsverletzungen bei der Benutzung von folgenden Methoden machen:
- TObjectList<T>.Remove(<T>)
- TObjectList<T>.Extract(<T>)
- TObjectList<T>.IndexOf(<T>)
Das Problem hier ist, dass in der Unit Generics.Collection auf eine nicht erzeugte Instanz von TComparer zugegriffen wird.
Die Lösungen sind die folgenden:
- auf Delphi 2010 updaten
- Verwendung von folgendem Constructor:
ObjectList := TObjectList<T>.Create(TComparer<T>.Default);
dabei wird automatisch der standard TComparer verwendet
Ein Update seitens Embarcadero gibt es bis dato nicht.