Einzelnen Beitrag anzeigen

HJay

Registriert seit: 7. Dez 2009
172 Beiträge
 
Delphi XE7 Enterprise
 
#1

Callback-Funktion für TObjectList.Sort

  Alt 15. Jan 2011, 17:12
Mir gelingt es nicht, die Callbackfunktion als Teil der Klasse zu definieren, zu der sie jeweils gehört. Wenn ich einfach im implementation-Teil die Callbackfunktion definiere, klappt alles auf Anhieb. Es wäre bei vielen verschiedenen Sortierroutinen für viele verschiedene von TObjectList abgeleitete Klassen ja aber eigentlich wünschenswert, die Compare-Funktionen in die Klasse zu integrieren. Man kann aber keine Methode statt des Prozedur-Pointers angeben.

Wie löst Ihr so etwas? Gibt es eine geradlinige Lösung, auf die ich nicht komme?

Code:
function CompareKey1(Item1, Item2: TMyObject):Integer; // OK

function MyObjectList.CompareKey1(Item1, Item2: TMyObject):Integer; // geht nicht

procedure MyObjectList.MySort;
begin
  Sort(@CompareKey1);
end;

Geändert von HJay (15. Jan 2011 um 17:20 Uhr)
  Mit Zitat antworten Zitat