Liebe Gäste des Forums
Danke, dass ihr euch hier auf dem inoffiziellen Windev-Forum umschaut. Hier werden Tipps und Hinweise zu der von PC-Soft angebotenen Software Windev besprochen.
Windev ist eine leistungsstarke, sehr umfangreiche Entwicklersoftware für Webseiten, Handys und Rechner verschiedener Betriebssysteme. Mehr unter http://www.windev.com

Ersatz für #define

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

Ersatz für #define

Beitrag von satmax » 4. Mai 2016, 09:30

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

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

Re: Ersatz für #define

Beitrag von Herbert » 4. Mai 2016, 10:46

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: 374
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Ersatz für #define

Beitrag von Herbert » 4. Mai 2016, 10:49

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
Member
Beiträge: 185
Registriert: 24. September 2015, 10:05
Wohnort: Biberbach, Austria
Kontaktdaten:

Re: Ersatz für #define

Beitrag von satmax » 5. Mai 2016, 10:24

Danke Herbert, das hilft mal weiter.

Antworten