alogrep 0 Posted July 16 Hello. I am stuck with this very strange behavious. "Gelati" is not defineD anywhare in the App. Now If i have this code, IFNDEF it is entirely "broken". procedure clearalltables; var i: integer; {$IFNDEF GELATI} S: STRING; // not work here {$ENDIF} begin {$IFNDEF GELATI} with dm2, floorplantable do begin //not work here cancelrange; filter:='sta.......... Then if I change the code like this procedure clearalltables; var i: integer; {$IFDEF GELATI} S: STRING; // DIMMED. ifdef WORKS {$ENDIF} begin {$ifdef gelati} s:='???'; // DIMMED. ifdef WORKS {$endif} {$IFNDEF GELATI //Ifndef is IGNORED??? with dm2, floorplantable do begin cancelrange; filter:='status =''T'' or status=''S'''; filtered:=true; And hee even more incomprehensible procedure clearalltables1; var i: integer; {$IFDEF GELATI} S: STRING; // DIMMED {$ENDIF} begin {$ifdef gelati} s:='???'; //DIMMED {$eLSE} {$IFNDEF GELATI} //NEITHER {$ELSE} NOR {iFNDEF WORK ?????? with dm2, floorplantable do begin cancelrange; filter:='status ...' end; {$endif} {$endif} end; Share this post Link to post
corneliusdavid 254 Posted July 16 38 minutes ago, alogrep said: procedure clearalltables; var i: integer; {$IFDEF GELATI} S: STRING; // DIMMED. ifdef WORKS {$ENDIF} begin {$ifdef gelati} s:='???'; // DIMMED. ifdef WORKS {$endif} {$IFNDEF GELATI //Ifndef is IGNORED??? with dm2, floorplantable do begin Perhaps this was a re-type error but that line with "{$IFNDEF GELATI" is missing the closing curly brace: {$IFNDEF GELATI} // <-- need to close with } Otherwise, it's dimming/not-dimming as I would expect. If GELATI is not defined, then code in a "{$IFNDEF GELATI}" would execute and therefore not be dimmed--because {$IFNDEF} = if the symbol is NOT DEFINED. Share this post Link to post
David Heffernan 2457 Posted July 17 (edited) If you think there's a bug, submit a bug report. What do you think we can do? And when you do, include a complete program in which you verify the defective behaviour. Obviously not your actual program. A minimal reproduction. Then you'll probably find out the real issue, which will likely be your expectations being incorrect. Edited July 17 by David Heffernan 3 Share this post Link to post
PeterBelow 260 Posted July 17 10 hours ago, alogrep said: Hello. I am stuck with this very strange behavious. "Gelati" is not defineD anywhare in the App. Now If i have this code, IFNDEF it is entirely "broken". procedure clearalltables; var i: integer; {$IFNDEF GELATI} S: STRING; // not work here {$ENDIF} begin {$IFNDEF GELATI} with dm2, floorplantable do begin //not work here cancelrange; filter:='sta.......... Remember that you can define such symbols not only with a $DEFINE statement but also in the project options, under Building -> Delphi compiler, "Conditional defines" on the right side. These are per-target options. Perhaps you defined GELATI there; it is the place to define symbols for all units compiled into the project, while a $DEFINE only works inside a unit, from the $DEFINE till the end of the unit or a matching $UNDEF. Share this post Link to post
Rollo62 595 Posted July 17 (edited) Just try with GELATO to find out if its defined somewhere Edited July 17 by Rollo62 Share this post Link to post