Newsgroup: it.comp.lang.delphi
Titolo: {$IFDEF DEBUG}

Non ho capito bene come funziona la direttiva DEBUG o forse il mio
Delphi 6 comincia ad accusare la vecchiaia...
{$DEFINE DEBUG}
procedure TForm1.Button1Click(Sender: TObject);
begin
  {$IFDEF DEBUG}
    ShowMessage('Sono in debug !');
  {$ELSE}
    ShowMessage('NON sono in debug !');
  {$ENDIF}
end;
Il punto è che viene sempre eseguito lo ShowMessage('Sono in
debug !'), mentre mi aspeto che venga eseguito solo in dubug e non
quando lancio l'applicativo.
Mi sfugge cosa?
Andrea

Puoi postare cio che trovi nell'help per questa opzione?
A.

 Delphi 6 comincia ad accusare la vecchiaia... [...]
Non ricordo onestamente come funzionava la costante di compilazione 
condizionale "DEBUG", anche se non penso si comporti come forse ti 
aspetti tu, cio� che venga definita quando vai in "debugging" e rimossa 
negli altri casi.
Nelle versioni pi� recenti di Delphi, esistono dei profili di 
configurazione (Debug, Release, ...) nei quali � possibile specificare 
la costante, oppure rimuoverla a seconda delle esigenze; credo che tu 
debba fare questa operazione "manualmente" in Delphi 6 (mentre nelle 
versioni pi� recenti, � sufficiente scegliere il profilo di compilazione 
appropriato, che svolge automaticamente questa operazione).
Ciao,
   Marco.
-- 
MARCO BREVEGLIERI
  (
http://www.marco.breveglieri.name
)

 appropriato, che svolge automaticamente questa operazione).
In effetti � cos�, speravo che fosse automatico ed invece non lo �.
Dovr� implementarlo manualmente.
Credo proprio sia ora di passare a D 2009.
Grazie 

In effetti il comportamento della direttiva specificato nell'help non � 
quella che mi aspettavo, ma speravavo di trovare un workaround di qualcuno 
che ci era gi� passato.
Andrea 

 Andrea
Se ho capito bene devi andare su "Project Options", poi su 
"Directories/Conditionals" e scrivi "DEBUG" sul campo Conditional defines".
Su Delphi 5 funziona.
Ciao.


No non va. 

 
Dimenticavo di dire che devi fare un rebuild del progetto.

Blowin' free ha scritto:

Devi fare un rebild del progetto. Ho provato il tuo codice e funziona.

> Devi fare un rebild del progetto. Ho provato il tuo codice e funziona.
In D6 non va 

Blowin' free ha scritto:

Devi togliere la riga:
 > {$DEFINE DEBUG}
Altrimenti non funziona.

 quella che mi aspettavo,
Il concetto implicito del "mi aspetto che..." porta fuori strada e fa
perdere tempo.
Sempre nei limiti del buon senso, meglio non dare per scontato che le
cose siano come noi le immaginiamo o le vorremmo.
Alle volte facciamo questo errore: siamo umani.
Essendoci passato io stesso su cose diverse ti ho spinto a
documentarti prima di continuare a perdere tempo.
Pax vobiscum.
A.

 Altrimenti non funziona.
In effetti, questa ï¿œ senz'altro una delle cause principali del problema. :-)


 ha scritto nel messaggio 
news:3aee4543-fdcd-4938...@z5g2000vba.googlegroups.com...
Non ho capito bene come funziona la direttiva DEBUG o forse il mio
Delphi 6 comincia ad accusare la vecchiaia...
{$DEFINE DEBUG}
procedure TForm1.Button1Click(Sender: TObject);
begin
  {$IFDEF DEBUG}
    ShowMessage('Sono in debug !');
  {$ELSE}
    ShowMessage('NON sono in debug !');
  {$ENDIF}
end;
Il punto � che viene sempre eseguito lo ShowMessage('Sono in
debug !'), mentre mi aspeto che venga eseguito solo in dubug e non
quando lancio l'applicativo.
Mi sfugge cosa?
Andrea
Uhm... se hai scritto in cima {$DEFINE DEBUG}
dopo per forza che {$IFDEF DEBUG}risulta sempre vero!
Si pu� forse automatizzare la presenza del simbolo DEBUG, ma se lo scrivi tu 
a mano poi te lo tieni!
Ciao
Andrea