Hallo omata und Apollonius.
@omata: Vielen Dank für die Korrektur! Funktioniert prima. Ich musste lediglich das "of object" noch wegnehmen.
Zitat von
Apollonius:
Erstens muss du dich entscheiden, ob dein Callback-Parameter freie Routinen oder Methoden annehmen soll. Mit der Klausel "of object" sagst du, dass es eine Methode sein muss, aber du willst dann eine freie Routine übergeben.
Leider habe ich von der Materie sehr wenig Ahnung. Was ist denn der Unterschied zwischen einer (freien) Routine und einer Methode? Ich dachte immer Routinen und Methoden seien das Selbe.
Zitat von
Apollonius:
Zweitens: Wozu ein Zeiger auf einen Zeiger? Das ist hier absolut unnötig. @Callback gibt den Funktionszeiger zurück, aber nicht die zusätzliche Indirektion, die du eingebaut hast. Daher kommt auch die Zugriffsverletzung.
Leider verstehe ich da nur Bahnhof.
Ich habe so lange mit Referenzierung (@) und De-Referenzierung (^) herumgespielt, bis ich kompilieren konnte. Im Internet gab es auch unzählige Varianten von CallBacks, teilweise mit stdcall, teilweise mit und ohne Pointern.
Ich finde die Ausführung von omata mit den properties elegant gelöst, da ich ja sowieso in einer Klasse arbeite. Deswegen werde ich diesen Code auch so behalten.
Aber wie würde mein Code in funktionierender Fassung aussehen, wenn ich eine
Methode/Routine Prozedur/Funktion direkt an eine Funktion weitergeben möchte, ohne diese vorher als Property oder Variable zu setzen? Ist Interessehalber, ich möchte ja irgendwie auch was dabei gelernt haben...
Gruß
blackdrake