Seite 1 von 1
Linked List inklusive Struktur an Modul übergeben ?
Verfasst: 11.02.2018 18:48
von Micha122
Hallo Leute,
verzweifle gerade etwas.
Wie es der Titel schon aussagt, ich möchte eine Linked List (NewList) + Struktur an eine Prozedur eines Moduls übergeben.
Okay, die Struktur muss dem Modul bekannt sein, soweit bin ich schon mal gekommen.
Aber wie weiter?
Ein kurzer Beispielcode währe klasse.
Grüße
Re: Linked List inklusive Struktur an Modul übergeben ?
Verfasst: 11.02.2018 19:15
von mk-soft
Der Trick besteht darin ein gemeinsame Modul (Common) zu erstellen und darin die Strukturen anzulegen
und im Main-Programm oder in den Modul mit 'UseModule Common' bekannt zu geben.
Dazu gehören auch Konstanten und Variablen die du Global in allen Modulen verwenden möchtest.
Code: Alles auswählen
;-TOP
; -------------------------------------------------------------------
DeclareModule Common
Structure udtMyData
index.i
text.s
EndStructure
EndDeclareModule
Module Common
; Nothing
EndModule
; -------------------------------------------------------------------
DeclareModule MyModul
UseModule Common
Declare MyShowData(List MyData.udtMyData())
EndDeclareModule
Module MyModul
UseModule Common
Procedure InitModule()
; Hier alles rein packen was bein starten von Programm im Module verledigt werden soll
EndProcedure : InitModule()
Procedure MyShowData(List MyData.udtMyData())
With MyData()
ForEach MyData()
Debug "" + \index + ": " + \text
Next
EndWith
EndProcedure
EndModule
; -------------------------------------------------------------------
;-Text
UseModule Common
Global NewList MyData.udtMyData()
AddElement(MyData())
MyData()\index = 1
MyData()\text = "Hallo"
AddElement(MyData())
MyData()\index = 2
MyData()\text = "Welt"
MyModul::MyShowData(MyData())
Re: Linked List inklusive Struktur an Modul übergeben ?
Verfasst: 11.02.2018 19:15
von Bisonte
oder so wie ohne modul :
Code: Alles auswählen
DeclareModule mymod
Structure s_struct
Text.s
Wert.i
EndStructure
Declare AddList(List MyList.s_struct(), Text.s, Wert)
EndDeclareModule
Module mymod
Procedure AddList(List MyList.s_struct(), Text.s, Wert)
AddElement(MyList())
MyList()\Text = Text
MyList()\Wert = Wert
EndProcedure
EndModule
UseModule mymod
NewList Cool.s_struct()
AddList(Cool(), "Hey", 1)
AddList(Cool(), "huhu", 21)
ForEach Cool()
Debug Cool()\Text
Next
edit: ein paar sekunden zu spät

Re: Linked List inklusive Struktur an Modul übergeben ?
Verfasst: 11.02.2018 19:55
von Micha122
Danke @mk-soft.
Genau das habe ich gesucht!
Ganz nebenbei hat dieses "Common-Modul" den Vorteil, das Strukturen nur einmal definiert werden müssen und von weiteren Modulen genutzt werden können.
Danke @Bisonte.
Dein Vorgehen ist etwas anders, aber auch dafür habe ich Verwendung.
Es fehlt allerdings ein Debug- Befehl in deinem Code:
Code: Alles auswählen
ForEach Cool()
Debug Cool()\Text
Debug Cool()\Wert
Next
Vielen Dank
