Seite 2 von 3
Re: Module und globale Variablen aus dem Hauptprogramm
Verfasst: 28.01.2015 21:58
von NicTheQuick
Bloß wäre dazu erst mal ein Gadget und damit ein Window notwendig und das Modul müsste auch noch wissen von welches Gadget es die Daten auslesen soll. Quasi ein Henne-Ei-Problem.
Re: Module und globale Variablen aus dem Hauptprogramm
Verfasst: 28.01.2015 22:05
von walbus
Re: Module und globale Variablen aus dem Hauptprogramm
Verfasst: 28.01.2015 22:07
von STARGÅTE
Man könnte zB mit Set/GetEnvironmentVariable() arbeiten, wobei hier die Gefahr besteht, dass man ein Namenskonfikt hat.
Re: Module und globale Variablen aus dem Hauptprogramm
Verfasst: 28.01.2015 22:08
von walbus
Re: Module und globale Variablen aus dem Hauptprogramm
Verfasst: 28.01.2015 22:29
von Nino
Was Ihr hier mit Gadgets und Umgebungsvariablen vorschlagt, ist unnötig umständlich. Außerdem untergräbt es den Sinn von Modulen.
Re: Module und globale Variablen aus dem Hauptprogramm
Verfasst: 28.01.2015 22:48
von walbus
Re: Module und globale Variablen aus dem Hauptprogramm
Verfasst: 28.01.2015 22:51
von Nino
Ach so, dann hatte ich das falsch verstanden. Sorry, dass ich "Vorschlag" geeschrieben habe.
Re: Module und globale Variablen aus dem Hauptprogramm
Verfasst: 29.01.2015 00:29
von walbus
Re: Module und globale Variablen aus dem Hauptprogramm
Verfasst: 29.01.2015 01:06
von helpy
Amor_2001 hat geschrieben:@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.ä.?
Ich würde grundsätzlich Module so schreiben, dass Sie nicht auf Daten im Hauptprogramm zugreifen müssen.
Vor der Verwendung der Hauptfunktionen des Moduls kannst Du den Konfigurationswert einfach an das Modul übergeben.
Eine Möglichkeit, das umzusetzen:
Code: Alles auswählen
;- Modul MyModule
DeclareModule MyModule
EnableExplicit
Global configSmartCopy.i
Declare AnyFunction()
;...
EndDeclareModule
Module MyModule
EnableExplicit
Procedure AnyFunction()
Select configSmartCopy
Case 1
Case 2
Default
EndSelect
EndProcedure
;...
EndModule
;- Hauptprogramm
Global smartcopy.i
; Konfigurationswert einlesen
smartcopy = ReadConfigValueSmartCopy()
MyModule::configSmartCopy = smartcopy
MyModule::AnyFunction()
;...
End
Damit bleibt das Modul in sich gekapselt. Was das Modul für eine ordnungsgemäße Funktion brauchte, sollte man diesem auch auf die eine oder andere Art übergeben.
Das ist für mich der logischere Weg und in meinen Augen die sauberste Lösung.
Den Weg über ein Commom-Modul finde ich persönlich nicht so gut (wenn es sich vermeiden lässt).
cu,
guido
Re: Module und globale Variablen aus dem Hauptprogramm
Verfasst: 29.01.2015 01:23
von walbus