Module Problem

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Pure_Beginner
Beiträge: 247
Registriert: 29.09.2011 21:49
Computerausstattung: i7 9XX 4000 MHZ / 12 GB RAM / Win 8.1 64Bit / Win 7 64Bit
Wohnort: Brühl

Module Problem

Beitrag von Pure_Beginner »

Hallo Leute,

habe ein Problem mit der Kapselung von Modulen.
Die Konstanten in meinem Programm speichere ich in einer eigenen PB Datei, welche ich per XIncludeFile zu meinem Projekt hinzufüge.
Wie kann ich es anstellen das in meinen Modulen die Konstanten bekannt sind ?

Code: Alles auswählen

DeclareModule Buttons
  
Declare ClickExit()
Declare ClickLoad()
Declare ClickSave()
Declare ClickVariableDelete()
Declare ClickVariableEdit()
Declare ClickVariableAppend()

  EndDeclareModule




Module Buttons
   
Procedure ClickExit()
  End
EndProcedure

Procedure ClickLoad()
 EndProcedure

Procedure ClickVariableDelete()
EndProcedure

Procedure ClickVariableEdit()
EndProcedure

Procedure ClickVariableAppend()
  Protected.s Bezeichnung, Wert
  
  Bezeichnung =  GetGadgetText(#Gadget_Form1_str_VariableName)
  Wert        =  GetGadgetText#Gadget_Form1_str_VariableWert)
EndProcedur

EndModule
wie kann ich es erreichen das die beitden konstanten #Gadget_Form1_str_VariableName und #Gadget_Form1_str_VariableWert in meinem Modul bekannt sind ?

für eure Hilfe wäre ich sehr Dankbar.

Grüße
Christian
PureBasic 5.30 Beta 3 (X64/X86) | Win 8 (64) Pro / Win 7 (64) Pro | Es ist der Hobbyist[/col
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: Module Problem

Beitrag von Bisonte »

Wenn die Konstanten nur INNERHALB deines Modules gebraucht werden,
dann musst du sie im Module "Block" definieren.
Sollten sie auch AUSSERHALB des Moduls vom User benutzbar sein
(für aufrufe z.B.) dann muessen sie innerhalb des DeclareModule "Block"
definiert werden.

Oder sie einfach per XIncludeFile in dem jeweiligen Block einlesen....
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
Pure_Beginner
Beiträge: 247
Registriert: 29.09.2011 21:49
Computerausstattung: i7 9XX 4000 MHZ / 12 GB RAM / Win 8.1 64Bit / Win 7 64Bit
Wohnort: Brühl

Re: Module Problem

Beitrag von Pure_Beginner »

Hallo Bisonte,

danke für die schnelle Antwort, leider klappt das nicht, weder das XinkludeFile im Module Abschnitt noch im Declare Abschnitt.

Grüße
PureBasic 5.30 Beta 3 (X64/X86) | Win 8 (64) Pro / Win 7 (64) Pro | Es ist der Hobbyist[/col
Benutzeravatar
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 Problem

Beitrag von ts-soft »

Code: Alles auswählen

DeclareModule Common
  #Gadget_Form1_str_VariableName = 10
  #Gadget_Form1_str_VariableWert = 11
EndDeclareModule
Module Common : EndModule

UseModule Common

DeclareModule Buttons
  
  Declare ClickExit()
  ;...
  
EndDeclareModule

Module Buttons
  UseModule Common
  Procedure ClickExit()
    Debug #Gadget_Form1_str_VariableName
  EndProcedure
EndModule

Debug #Gadget_Form1_str_VariableName
Buttons::ClickExit()


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.
Bild
Benutzeravatar
Pure_Beginner
Beiträge: 247
Registriert: 29.09.2011 21:49
Computerausstattung: i7 9XX 4000 MHZ / 12 GB RAM / Win 8.1 64Bit / Win 7 64Bit
Wohnort: Brühl

Re: Module Problem

Beitrag von Pure_Beginner »

@ts-soft

so funktioniert das :allright:

muss also alle Konstanten in ein Module Packen und usen.

Besten Dank
Christian
PureBasic 5.30 Beta 3 (X64/X86) | Win 8 (64) Pro / Win 7 (64) Pro | Es ist der Hobbyist[/col
Benutzeravatar
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 Problem

Beitrag von ts-soft »

Sowas ist aber selten sinnvoll. Lediglich bei Teamarbeit sollte es so sinnvoll sein.
Unabhängige Module, die für Wiederverwendung/Weitergabe gedacht sind, sollten
so etwas nicht nutzen.

Dein Snippet sieht nicht nach Teamarbeit aus, die Verwendung von Modulen ist dort
dann auch nicht unbedingt Vorteilhaft, jedenfalls alles in Module stopfen ist nicht der
Sinn der Sache :wink:

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.
Bild
Benutzeravatar
Pure_Beginner
Beiträge: 247
Registriert: 29.09.2011 21:49
Computerausstattung: i7 9XX 4000 MHZ / 12 GB RAM / Win 8.1 64Bit / Win 7 64Bit
Wohnort: Brühl

Re: Module Problem

Beitrag von Pure_Beginner »

@ts-soft

war wohl nix, wollte unbedingt die Neuheit ausprobieren und kapseln.

Bin leider kein Programmierer und werd es warscheinlich nie richtig lernen, was mich nicht davon abhält es tapfer zu probieren :lol:
werde meinen code umbauen und ohne Module arbeiten.

Danke für den Tipp.
Grüße
Christian
PureBasic 5.30 Beta 3 (X64/X86) | Win 8 (64) Pro / Win 7 (64) Pro | Es ist der Hobbyist[/col
Nero
Beiträge: 285
Registriert: 08.11.2004 01:50

Re: Module Problem

Beitrag von Nero »

Bisonte hat geschrieben:Oder sie einfach per XIncludeFile in dem jeweiligen Block einlesen....
Das geht nicht, 2 x XIncludeFile = 1 Include :wink:
Must es im Modul mit IncludeFile machen sonst wirds nicht includierts hatte das selbse problem http://www.purebasic.fr/english/viewtop ... 13&t=56053 :coderselixir:

Mfg Nero
Benutzeravatar
Pure_Beginner
Beiträge: 247
Registriert: 29.09.2011 21:49
Computerausstattung: i7 9XX 4000 MHZ / 12 GB RAM / Win 8.1 64Bit / Win 7 64Bit
Wohnort: Brühl

Re: Module Problem

Beitrag von Pure_Beginner »

Danke für die Mitteilung.

Grüße
Christian
PureBasic 5.30 Beta 3 (X64/X86) | Win 8 (64) Pro / Win 7 (64) Pro | Es ist der Hobbyist[/col
Antworten