keine Liste als Parameter im Interface möglich ?
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Den Pointer zur ner Liste kannste schon immer übergeben, im Imterface ist
dies ja ein Long.
dies ja ein Long.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- remi_meier
- Beiträge: 1078
- Registriert: 29.08.2004 20:11
- Wohnort: Schweiz
So könntest du die Übergabe einer Liste machen:
D. h. vergiss es.
Mach deine Methode so, dass sie einen Pointer auf ein Element erwartet.
So kannst du deine Liste Element für Element durchgehen (und jedes
Element der Interface-Methode übergeben).
Viel Spass
Code: Alles auswählen
Macro GetListPtr(ptrname, listname)
MOV Eax, t_#listname
MOV [p_#ptrname], Eax
EndMacro
Interface test
getlist(a.l, *p)
EndInterface
Structure ctest
*vt
*getlist
EndStructure
Procedure test_getlist(*this.ctest, a.l, list.l())
Debug "a ist " + Str(a)
ForEach list()
Debug "element enthält: " + Str(list())
Next
EndProcedure
Define.test a
Define.ctest b
b\vt = @b+4
b\getlist = @test_getlist()
a = @b
;- end init
NewList k.l()
AddElement(k())
k() = 1
AddElement(k())
k() = 2
AddElement(k())
k() = 3
AddElement(k())
k() = 4
AddElement(k())
k() = 5
*p
GetListPtr(p, k)
a\getlist(666, *p)
Mach deine Methode so, dass sie einen Pointer auf ein Element erwartet.
So kannst du deine Liste Element für Element durchgehen (und jedes
Element der Interface-Methode übergeben).
Viel Spass
