Ersatz für #define

Übergeordnete Themen zum gesamten Paket passend
Antworten
satmax
Senior Member
Beiträge: 312
Registriert: 24. September 2015, 10:05
Wohnort: Biberbach, Austria
Kontaktdaten:

Ersatz für #define

Beitrag von satmax »

Für #define habe ich noch keinen Ersatz gefunden? Wie macht man das?

Herbert
Site Admin
Beiträge: 529
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Ersatz für #define

Beitrag von Herbert »

Konstanten können in .WL-Files abgelegt werden.
Einbinden mit EXTERN

z.B. im Code des Projekts, d.h. überall sichtbar

Code: Alles auswählen

EXTERN "KeyConst.WL"
so kannst du überall auf diese Variablen zugreifen, z.B.

Code: Alles auswählen

IF KeyPressed(VK_RETURN) THEN
ab dort, wo du die Konstanten definierst, sind diese sichtbar.
In einem Dialogelement in den global declarations.
Geht für einzelne Konstanten (Variablen) genauso:

Code: Alles auswählen

VK_RETURN is int=0x0d

Herbert
Site Admin
Beiträge: 529
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Ersatz für #define

Beitrag von Herbert »

Du möchtest eventuell auch dir aus Xbase bekannte Schlüsselworte in Windev anwenden:
Da kreiere ich Funktionen, weil Windev mehr kann (z.B. mehr Variablentypen).

Beispiel EMPTY. In Windev ist dies Nospace.
Da ich diese Funktion erweitert anwende, auch für logische und numerische Werte, ergibt das folgende Funktion.

Code: Alles auswählen

PROCEDURE Empty(LOCAL sbuf)
bLok is boolean = False
SWITCH TypeVar(sbuf)
CASE 1		// boolean
	IF sbuf=False THEN
		bLok=True
	END
CASE 2,3,4,5,6,7,8,9,10,11,12		// integer, real
	IF sbuf=0 THEN
		bLok=True
	END
CASE 16,17,18,19,24		// string
	IF NoSpace(sbuf) = "" THEN
		bLok=True 
	END
END
RESULT bLok
So gehts mit bei einigen Dingen. Einen Funktionssatz kannst du überigens als externe Komponente definieren und so in all deine Projekte einbinden.

satmax
Senior Member
Beiträge: 312
Registriert: 24. September 2015, 10:05
Wohnort: Biberbach, Austria
Kontaktdaten:

Re: Ersatz für #define

Beitrag von satmax »

Danke Herbert, das hilft mal weiter.

Antworten