Module und globale Variablen aus dem Hauptprogramm
Module und globale Variablen aus dem Hauptprogramm
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.
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
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.
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
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.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Module und globale Variablen aus dem Hauptprogramm
@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.ä.?
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
Ja: den, den ich bereits genannt habe.Amor_2001 hat geschrieben:Gibt es nicht noch einen Trick o.ä.?
(Manche Leute fragen erst nach Hilfe und wollen dann keine annehmen.)
Zuletzt geändert von Nino am 28.01.2015 21:20, insgesamt 1-mal geändert.
Re: Module und globale Variablen aus dem Hauptprogramm
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.

Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
- 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
Re: Module und globale Variablen aus dem Hauptprogramm
Um es nochmal Beispielhaft als Code zu tun:
In allen Modulen nur UseModule Common einfügen, wo es genutzt werden soll,
und natürlich im MainScope.
Gruß
Thomas
Code: Alles auswählen
DeclareModule Common
Global meine_globale_variable_die_auch_in_modulen_importiert_werden_kann.i
EndDeclareModule
Module Common
EndModule
UseModule Common
und natürlich im MainScope.
Gruß
Thomas
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.

Re: Module und globale Variablen aus dem Hauptprogramm
Zuletzt geändert von walbus am 07.02.2015 22:51, insgesamt 1-mal geändert.
- NicTheQuick
- Ein Admin
- Beiträge: 8837
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Module und globale Variablen aus dem Hauptprogramm
Das macht in diesem Fall aber keinen Sinn.walbus hat geschrieben:Es gibt einen Trick, da du im speziellen nach Trick´s fragst !
Über SetGadgetData, und GetGadgetData geht es...
Re: Module und globale Variablen aus dem Hauptprogramm
Zuletzt geändert von walbus am 07.02.2015 23:05, insgesamt 1-mal geändert.