Method-Pointer [gelöst]
Übersicht

![]() |
NoaBetreff: Method-Pointer [gelöst] |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo allerseits,
ich hab' ein Problem. In meinem Projekt arbeite ich mit Function-Pointern wie in diesem Tutorial (https://www.blitzforum.de/forum/viewtopic.php?t=11449&highlight=pointer+method) beschrieben. Allerdings wird hier gesagt "Einzige Einschränkung ist in BMax das man nicht eine Methode einer Instanz referenzieren kann. Statische Funktionen jedoch schon." Genau hier liegt das Problem. Um mein Projekt fortsetzen zu können, benötige ich Pointer auf Instanz-Methoden. Meine Frage also: Gibt es eine Möglichkeit die interne Sperre dafür zu umgehen bzw. einen Alternativweg um einen Pointer auf eine Instanz-Funktion zu erhalten? Im Voraus, danke für die Mühe |
||
- Zuletzt bearbeitet von Noa am Fr, Aug 03, 2007 11:35, insgesamt einmal bearbeitet
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es gibt keine Method Pointer.
Das würde man dann auch nicht so nennen, sondern Delegate oder ähnlich. Es wird allerdings in Zukunft möglich werden, wenn Mark "Reflection" in BM integriert hat. Heisst aber auch, dass es wie Delegates etc einen Overhead hat und nicht ganz so schnell ist. Für den Moment musst du Wrapperfunktionen schreiben. Sprich Code: [AUSKLAPPEN] SuperStrict Type TTest function wrapPointer(instance:TTest) instance.doSomething() end function method doSomething() print "siehste, so gehts ;-)" end method End Type local someFun(instance:TTest) local elem:TTest = new TTest someFun = TTest.wrapPointer someFun(elem) delay(1000) end Ich nutz diesen Ansatz in meinem Code auch allerdings genau umgekehrt. Ich brauche function pointer auf objekten um dynamisch eventHandler zuzuweisen. Diese werden dann in einer Methode aufgerufen. Sprich geht in beide Richtungen. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Noa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielen Dank, hat mir sehr geholfen ^^ - Der Weg ist zwar umständlicher aber besser, als wenn es gar nicht funktionieren würde ^^" | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group