Seite 1 von 1

Konstanten (Enumeration) in Modul für externen Zugriff deklarieren

Verfasst: 07.02.2025 15:20
von Beefi
Hi zusammen,

gibt es eine Möglichkeit, in einem Modul (Deklarationsbereich) irgendwie Konstanten zu definieren, die quasi fest zum Modul
gehören und z.B. über den "Doppel-Doppelpunkt" verwendet werden können?

Beispiel:

Code: Alles auswählen

MeinModul::#KONSTANTE_AUS_MODUL
Ich arbeite gerne mit Modulen, aber leider müssen (nach meinen Skills) die Konstanten im Hauptcode extra separat definiert werden,
was ich jetzt nicht so modulmäßig finde :)

VG Andi

Re: Konstanten in Modul für externen Zugriff deklarieren

Verfasst: 07.02.2025 16:08
von SMaag
nein, muss man nicht extern nochmal deklarieren.

Code: Alles auswählen

DeclareModule CST
#Constant1 = 1
#Constant2 = 2
Declare Test()

EndDeclareModule

Module CST
  Procedure Test()
    
  EndProcedure
  
EndModule

x=CST::#Constant1
Das einzige Problem ist das Intellisense der IDE!
Wenn das Modul im gleichen .pb File deklariert ist, dann aktiviert sich beim Tippen von CST:: automatisch das Auswahlfenster.

Wenn das Modul über IncludeFile eingebunden ist, dann geht das Intellisense nicht. Um Intellisense mit Modulen in der IDE zu nutzen muss
man zwingend ein Projekt erstellen und dort die Module einbinden.

Re: Konstanten in Modul für externen Zugriff deklarieren

Verfasst: 07.02.2025 16:15
von Beefi
Hi SMaag,

vielen Dank, ich habs gerade ausprobiert und es funktioniert einwandfrei.
Sorry, ich habe keine Ahnung, was da bei mir bisher falsch lief...ich habs jetzt einfach nochmal so gemacht, wie du es gezeigt hast und es funktioniert auf Anhieb.

Ja das Intellisense-Problem kenne ich, daher mach ich bei mehreren Dateien grundsätzlich immer ein Projekt auf und füge die Include-Dateien dem Projekt zu. Mit Intellisense ist man schon sehr viel angenehmer und flotter unterwegs.

Re: Konstanten (Enumeration) in Modul für externen Zugriff deklarieren

Verfasst: 25.02.2025 16:30
von Beefi
Hi SMaag,

nun ist es mir bei einem aktuellen Fall wieder eingefallen, was bei mir mit den Konstanten nicht geklappt hat.
Und zwar habe ich das Problem immer bei Enumerationen.

Die Frage des Threads wäre also, wie man auf Enumerationen (also ebenso Konstanten) von Modulen zugreifen kann.
Geht das überhaupt?

Viele Grüße

Re: Konstanten (Enumeration) in Modul für externen Zugriff deklarieren

Verfasst: 25.02.2025 17:48
von Axolotl
ja, genau wie bei Konstanten,

Code: Alles auswählen

DeclareModule Test
  Enumeration ETest 1
    #TEST_1
    #TEST_2
    #TEST_3
  EndEnumeration 
EndDeclareModule

Module Test 
EndModule 

; available:. 
Debug "=> " + Test::#TEST_1 
Debug "=> " + Test::#TEST_2 
Debug "=> " + Test::#TEST_3 


Re: Konstanten (Enumeration) in Modul für externen Zugriff deklarieren

Verfasst: 25.02.2025 20:24
von HeX0R
Wenn ich raten müsste, würde ich sagen Du platzierst Deine Konstanten falsch.
Alles innerhalb DeclareModule/EndDeclareModul ist außerhalb des Moduls erreichbar.
Alles innerhalb Module/EndModule NICHT!