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

Für allgemeine Fragen zur Programmierung mit PureBasic.
Beefi
Beiträge: 96
Registriert: 16.01.2017 17:38

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

Beitrag 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
Zuletzt geändert von Beefi am 25.02.2025 16:31, insgesamt 1-mal geändert.
SMaag
Beiträge: 184
Registriert: 08.05.2022 12:58

Re: Konstanten in Modul für externen Zugriff deklarieren

Beitrag 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.
Beefi
Beiträge: 96
Registriert: 16.01.2017 17:38

Re: Konstanten in Modul für externen Zugriff deklarieren

Beitrag 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.
Beefi
Beiträge: 96
Registriert: 16.01.2017 17:38

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

Beitrag 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
Axolotl
Beiträge: 265
Registriert: 31.12.2008 16:34

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

Beitrag 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 

Using PureBasic latest stable version and current alpha/beta (x64) on Windows 11 Home
Benutzeravatar
HeX0R
Beiträge: 3040
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

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

Beitrag 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!
Antworten