Module und globale Variablen aus dem Hauptprogramm

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
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

Beitrag 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.
walbus
Beiträge: 137
Registriert: 03.03.2013 20:50

Re: Module und globale Variablen aus dem Hauptprogramm

Beitrag von walbus »

:)
Zuletzt geändert von walbus am 07.02.2015 23:03, insgesamt 2-mal geändert.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7039
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Module und globale Variablen aus dem Hauptprogramm

Beitrag von STARGÅTE »

Man könnte zB mit Set/GetEnvironmentVariable() arbeiten, wobei hier die Gefahr besteht, dass man ein Namenskonfikt hat.
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
walbus
Beiträge: 137
Registriert: 03.03.2013 20:50

Re: Module und globale Variablen aus dem Hauptprogramm

Beitrag von walbus »

:)
Zuletzt geändert von walbus am 07.02.2015 23:04, insgesamt 1-mal geändert.
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Module und globale Variablen aus dem Hauptprogramm

Beitrag von Nino »

Was Ihr hier mit Gadgets und Umgebungsvariablen vorschlagt, ist unnötig umständlich. Außerdem untergräbt es den Sinn von Modulen.
walbus
Beiträge: 137
Registriert: 03.03.2013 20:50

Re: Module und globale Variablen aus dem Hauptprogramm

Beitrag von walbus »

:)
Zuletzt geändert von walbus am 07.02.2015 23:04, insgesamt 1-mal geändert.
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Module und globale Variablen aus dem Hauptprogramm

Beitrag von Nino »

Ach so, dann hatte ich das falsch verstanden. Sorry, dass ich "Vorschlag" geeschrieben habe.
walbus
Beiträge: 137
Registriert: 03.03.2013 20:50

Re: Module und globale Variablen aus dem Hauptprogramm

Beitrag von walbus »

:)
Zuletzt geändert von walbus am 07.02.2015 23:04, insgesamt 1-mal geändert.
Benutzeravatar
helpy
Beiträge: 636
Registriert: 29.08.2004 13:29

Re: Module und globale Variablen aus dem Hauptprogramm

Beitrag 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
Zuletzt geändert von helpy am 29.01.2015 02:59, insgesamt 1-mal geändert.
Windows 10
PB Last Final / (Sometimes testing Beta versions)
walbus
Beiträge: 137
Registriert: 03.03.2013 20:50

Re: Module und globale Variablen aus dem Hauptprogramm

Beitrag von walbus »

:)
Zuletzt geändert von walbus am 07.02.2015 23:04, insgesamt 1-mal geändert.
Antworten