Jeg kan godt forstå, at du stiller spørgsmålet ud fra det foreliggende materiale. Dog er jeg inde i en makro, hvor jeg ikke ved, om en variabel eksisterer. Derfor undersøges der på det!
er noget som kompilerens preprocessor reagerer på. D.v.s. at på kompileringstidspunktet, fanger kompileren at hvis direktivet og vil så inkludere koden hvis det der står i parantesen "ikke er tom".
Normalt er det noget man anvender, når man skriver makroer, til at få inkluderet kode, hvis en bestemt makro argument er blevet givet ved brugen af lokalmakroen.
Et eksempel:
#LOCALMACRO.WarningOrSelectionBox #IF.EMPTY(%2) SET BOX(2,%1,0) #ENDIF #IFNOT.EMPTY(&2) IF SET BOX(3,%1+'\n'+"Vil du fortsætte ?",0) == 0 THEN RETURN ENDIF #ENDIF #ENDMACRO
Hvis denne localmakro er inkluderet i koden, og du skriver: #WarningOrSelectionBox("Der er noget galt"); Får du en warningbox med meddelelsen "Der er noget galt".
Men hvis du i koden skriver: #WarningOrSelectionBox("Der er noget galt",TRUE); Får du en warningbox med meddelelsen "Der er noget galt. Vil du fortsætte", men med to knapper som giver brugeren mulighed for enten at fortsætte eller afbryde (RETURN)
D.v.s. altså sige, at hvis du anvender makroen med ET argument, får du inkluderet en stump kode i det (i XAL-miljøet) eksekverbare program (nemlig den kode der står efter #IF.EMPTY(%2). Og hvis du anvender makroen med TO argumenter, får du inkluderet en stump kode i det (i XAL-miljøet) eksekverbare program (nemlig den kode der står efter #IFNOT.EMPTY(%2).
HVIS du vil checke runtime om en given variabel har en bestemt værdi, vil jeg foreslå at du følger colaands råd og skriver:
IF &Tmp <> "" THEN SET Box(1,"1",0) ENDIF
M.h.t. andre compiler-direktiver, så findes de vist nok (så vidt jeg husker) i det dersens lille supplement der følger med programmerings manualerne til XAL/C5. Jeg kan bare ikke lige huske hvad den hedder på stående fod (er på arbejde - og har ikke lige manualerne her).
Løsningen var den rigtige, selvom det ikke var entydigt.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.