2013-01-24 14 views
8

Sto utilizzando la funzione Documentation Insight per documentare una libreria Delphi, attualmente funziona perfettamente con Delphi 2005 a XE3. Ora voglio aggiungere anche il supporto per le vecchie versioni di Delphi (5, 6, 7).Come posso compilare il codice Delphi documentato nelle versioni Delphi precedenti (<2005)

Ma quando tenta di compilare un codice come questo nelle versioni di Delphi minore rispetto al 2005 (Delphi 5, 6, 7)

{$REGION 'Documentation'} 
/// <summary> 
///  This is a sample text  
/// </summary> 
{$ENDREGION} 
TFoo=class 
    procedure Tick; 
end; 

ricevo un errore di compilazione

direttiva del compilatore non valido REGIONE

Cosa va bene perché la parola riservata REGION è stata introdotta quando l'IDE Delphi è stato modificato in Galileo (Delphi 2005).

Quindi, per ora come soluzione temporanea sto usando questa sintassi per compilare il codice in Delphi 5 - per XE3.

{$IFDEF NODEF}{$REGION 'Documentation'}{$ENDIF} 
/// <summary> 
///  This is a sample text  
/// </summary> 
{$IFDEF NODEF}{$ENDREGION}{$ENDIF} 
TFoo=class 
    procedure Tick; 
end; 

Ma ora utilizzando tale codice Documentation Insight non funziona più su Delphi XE2 e XE3.

Quindi la domanda è: come posso compilare il codice Delphi documentato nelle versioni precedenti di Delphi senza influenzare Documentation Insight nelle nuove versioni di Delphi?

risposta

7

Se si eliminano i tag {$REGION}, Document Insight funziona ancora e le versioni precedenti dovrebbero trattare la documentazione come normali commenti. Non sarai più in grado di comprimere la documentazione più nelle versioni IDE che supportano la piegatura del codice, tutto qui.

5

Se si dispone di una base di codice che compila senza modifiche in Delphi vecchio e nuovo, questa soluzione non funzionerà.

È brutto e dovrebbe essere fatto e annullato mentre ci si sposta avanti e indietro da una versione precedente di Delphi a una più recente.

Ma, potreste fare il vostro intero progetto avanti e indietro.

Quando si passa da XE2 a D7, per esempio, ci si converte questo

{$REGION 'Documentation'} 

inserendo uno spazio e rimuovere il trailing} in modo che appaia in questo modo:

{ $REGION 'Documumentation' 

E andando da D7 a XE2 fai il contrario aggiungendo un} alla fine di ogni riga che inizia con

{$ REGION 

e rimuovendo lo spazio dopo $.

Come ho detto, è brutto.

+1

+1 per un trucco intelligente. –

+3

In alternativa, è possibile inserire un punto prima di '$' e lasciare intatte le parentesi di chiusura, trasformando i tag in commenti autonomi: '{. $ REGION 'Documentation'}' '{. $ ENDREGION}'. Document Insight funzionerà ancora. –

0

Documentation Insight supporta alcuni stili di regione incorporati (vedere la finestra di dialogo Opzioni). Puoi scegliere lo stile Compatibile e genererà automaticamente le direttive come {$ IFDEF NoDEF} {$ REGION 'xxx'} {$ ENDIF}.

+0

Come ho detto sulla mia domanda, quando uso '{$ IFDEF NODEF} {$ REGION 'Documentation'} {$ ENDIF}' Documentation Insight non funziona più su Delphi XE2 e XE3. – RRUZ

Problemi correlati