Seite 1 von 3
Module und globale Variablen aus dem Hauptprogramm
Verfasst: 28.01.2015 19:48
von Amor_2001
Hallo,
ich komme gerade nicht ganz klar mit einem Modul.
Ich habe im Hauptprgramm eine globale Variable definiert (global smartcopy.i)
Auf diese habe ich auch aus allen enthaltenen Prozeduren Zugriff.
Nur leider habe ich noch ein Modul und wenn ich die Variable abfrage, ist sie stets 0, obwohl sie einen anderen Wert hat.
Nun meine Frage: Was muss ich tun (wo evtl. noch deklarieren), damit ich auch von meinem Modul aus auf diese globale Variable Zugriff habe.
Danke für dir Tipps schon mal.
Re: Module und globale Variablen aus dem Hauptprogramm
Verfasst: 28.01.2015 20:27
von Nino
Module können prinzipiell leider nicht auf Variablen (oder Prozeduren etc.) des Hauptprogramms zugreifen.
Wenn Du aber die Variable, auf die Du zugreifen möchtest, statt im Hauptprogramm in einem zweiten Modul deklarierst, dann kannst Du vom ersten Modul aus auf sie zugreifen. Leider geht's nicht anders.
Du kannst z.B. ein Modul Common anlegen, wo all die Dinge drin sind, auf die andere Module Zugriff haben sollen.
Re: Module und globale Variablen aus dem Hauptprogramm
Verfasst: 28.01.2015 20:48
von STARGÅTE
Im Grunde soll es ja auch garnicht möglich sein. Module sollen ja eigenständige unabhängere Programme sein, und eben nicht von andere Incldues/Variablen abhängig sein.
Re: Module und globale Variablen aus dem Hauptprogramm
Verfasst: 28.01.2015 21:04
von Amor_2001
@STARGÅTE: Du hast vollkommen Recht.
Bei mir ist es so, dass ich im Hauptprogramm einen Wert aus einer Konfigurationsdatei einlese und dieser dann innerhalb des Moduls zu unterschiedlichen Schritten verzweigt.
Gibt es nicht noch einen Trick o.ä.?
Re: Module und globale Variablen aus dem Hauptprogramm
Verfasst: 28.01.2015 21:13
von Nino
Amor_2001 hat geschrieben:Gibt es nicht noch einen Trick o.ä.?
Ja: den, den ich bereits genannt habe.
(Manche Leute fragen erst nach Hilfe und wollen dann keine annehmen.)
Re: Module und globale Variablen aus dem Hauptprogramm
Verfasst: 28.01.2015 21:20
von Sicro
Wenn nur eine Procedure in deinem Modul den Wert aus der Konfigurationsdatei brauch, würde ich der Procedure einen weiteren Parameter für diesen Wert definieren. Brauchst du den Wert bei mehreren Procedures in deinem Modul, definierst du dort die globale Variable nochmal und erstellst eine "SetGlobalVariable(Value)"-Procedure, die du dann vor den anderen Procedures ausführst, oder du gehst auch hier wie im ersten Fall vor.
Re: Module und globale Variablen aus dem Hauptprogramm
Verfasst: 28.01.2015 21:22
von ts-soft
Um es nochmal Beispielhaft als Code zu tun:
Code: Alles auswählen
DeclareModule Common
Global meine_globale_variable_die_auch_in_modulen_importiert_werden_kann.i
EndDeclareModule
Module Common
EndModule
UseModule Common
In allen Modulen nur UseModule Common einfügen, wo es genutzt werden soll,
und natürlich im MainScope.
Gruß
Thomas
Re: Module und globale Variablen aus dem Hauptprogramm
Verfasst: 28.01.2015 21:28
von walbus
Re: Module und globale Variablen aus dem Hauptprogramm
Verfasst: 28.01.2015 21:37
von NicTheQuick
walbus hat geschrieben:Es gibt einen Trick, da du im speziellen nach Trick´s fragst !
Über SetGadgetData, und GetGadgetData geht es...
Das macht in diesem Fall aber keinen Sinn.
Re: Module und globale Variablen aus dem Hauptprogramm
Verfasst: 28.01.2015 21:42
von walbus