alogrep 0 Posted yesterday at 09:47 PM 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 249 Posted yesterday at 10:38 PM 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 2453 Posted 15 hours ago (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 15 hours ago by David Heffernan 3 Share this post Link to post
PeterBelow 260 Posted 14 hours ago 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 589 Posted 5 hours ago (edited) Just try with GELATO to find out if its defined somewhere Edited 5 hours ago by Rollo62 Share this post Link to post