Seite 1 von 1

Module Problem

Verfasst: 14.08.2013 21:31
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

Re: Module Problem

Verfasst: 14.08.2013 21:36
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....

Re: Module Problem

Verfasst: 14.08.2013 21:42
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

Re: Module Problem

Verfasst: 14.08.2013 21:46
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()



Re: Module Problem

Verfasst: 14.08.2013 21:52
von Pure_Beginner
@ts-soft

so funktioniert das :allright:

muss also alle Konstanten in ein Module Packen und usen.

Besten Dank
Christian

Re: Module Problem

Verfasst: 14.08.2013 22:03
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

Re: Module Problem

Verfasst: 14.08.2013 22:14
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

Re: Module Problem

Verfasst: 26.08.2013 19:17
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

Re: Module Problem

Verfasst: 26.08.2013 19:36
von Pure_Beginner
Danke für die Mitteilung.

Grüße
Christian