Eclipticon hat geschrieben:Code: Alles auswählen
MyTreeView.Items.FindTopLvlNode('Lazarus').CustomSort(SomeObject.MyTreeNodeCompare); // Compilerfehler hier
Änder das mal ab in:
Code: Alles auswählen
MyTreeView.Items.FindTopLvlNode('Lazarus').CustomSort(@SomeObject.MyTreeNodeCompare);
Dann wird auch der Methode
CustomSort ein Parameter übergeben, der ein Zeiger auf die von dir erstellte Methode ist.
Dein Aufruf bedeutet, dass deine Methode aufgerufen und ihr Ergebnis(!) an
CustomSort werden soll. Das funktioniert aber schon deshalb nicht, weil deine Methode ja Parameter braucht. Abgesehen davon, dass das nicht das ist was du möchtest.
Eclipticon hat geschrieben:m.fuchs hat geschrieben:Eclipticon hat geschrieben:Bedeutet "function of object" eigentlich dass die Funktion eine Methode sein muss?
Ja.
Und das hat welchen Grund/Vorteil, dass das so deklariert ist?
Dass die Leute objektorientiert programmieren können. Da ging wohl der Entwickler davon aus, wer ObjectPascal benutzt wird keine einfachen Funktionen mehr schreiben, sondern eigene Klassen die die Sortiermethode enthalten.
mfg
Micha