function pointer in TList [beantwortet]
Übersicht

![]() |
NoaBetreff: function pointer in TList [beantwortet] |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
ich weiß nicht, vielleicht steh ich auch auf dem Schlauch, aber ist es möglich function pointer in eine TList einzufügen und daraus dann die Funktion auch wieder aufzurufen? Wenn ja, wäre ein kleines Beispiel nett ^^ Danke |
||
- Zuletzt bearbeitet von Noa am Fr, Apr 27, 2007 15:40, insgesamt einmal bearbeitet
E. Urbachehemals "Basicprogger" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] Method AddLast:TLink( value:Object )
Soweit ich weiß sind Funktionen keine Objekte, daher ist dies nicht möglich. Nicht-effizienter, aber möglicher Workaround: Code: [AUSKLAPPEN] Function GlobaleFunktion(iFunc:Int)
Select iFunc Case FUNC_1 ... Case FUNC_2 ... End Select End Function In die Liste packst du dann einfach die gewrappten Numerics. |
||
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik |
![]() |
Noa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke für den Vorschlag aber der wird mir bei meinem Problem leider nicht weiterhelfen, da die TList in einem Type liegen wird und verschiedene, unbekannte Funktionen aufnehmen soll.
Also sieht es wohl so aus, als müsste ich mit Arrays arbeiten? |
||
![]() |
Suco-XBetreff: ... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm..Mit Listen siehts wohl schlecht aus. Mit arrays klappt das ganze aber soweit. Die Funktionen müssen immer die gleiche Anzahl von Parametern haben, in diesem Fall 1.
Code: [AUSKLAPPEN] Strict Local Array:Int(Str:String)[1] array[0] = Print Local NewPrint(Str:String) NewPrint = Array[0] NewPrint("Test Test") |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
![]() |
Noa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke, das kenn ich ja soweit, hatte nur gehofft, man könnte auch Listen verwenden ^^
Jedenfalls Danke für eure Mühe ^^ |
||
![]() |
Suco-XBetreff: .... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kannst es eigentlich auch in einer Liste verwenden.
Code: [AUSKLAPPEN] Strict Type TFunction Field FuncPtr(Str:String) Function Create:TFunction(Func(Str:String)) Local Instance:TFunction instance = New TFunction Instance.FuncPtr = Func Return Instance End Function Method Get:Int(Str:String)() Return FuncPtr End Method End Type Local List:TList = New TList List.AddLast(TFunction.Create(Print)) List.AddLast(TFunction.Create(DebugLog)) For Local obj:TFunction = EachIn List Obj.Get()("Test Test") Next Aber der Sinn deines Anliegen bleibt mir noch ein Rätsel. Wüßte nicht, wofür man sowas bräuchte. Mfg |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
![]() |
Moep |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab sowas auch neulich gebraucht/brauche es immer noch.
Das ist ganz nützlich für mich, da ich eine art Scriptsprache in meine "EntityEngine" einbauen will.Damit kann man dann ganz leicht neue funktionen einfügen in die scriptsprache. |
||
Hardstyle Schleichwerbung:
http://www.youtube.com/user/Hackepeter42 Achtung: Suchtgefahr! moep123.ohost.de |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group