2009-06-28 19 views
9

Voglio applicare una correzione da QC a un'unità Delphi 2009 (DBClient come accade). So che ho bisogno di copiare l'unità in un'altra directory e apportare la modifica alla copia. Come posso quindi ottenere Delphi per compilare quell'unità e usarla a favore della DCU che esiste già?Come ricompilare un'unità specifica dalla VCL?

risposta

16

Se non si desidera modificare il file .Pas originale, lo faccio copiando il file .Pas nella cartella dell'applicazione, quindi scegliere il progetto creato, creerà un nuovo file dcu nella cartella dell'applicazione, che verrà essere usato al posto di quello originale

+15

Attenzione che questo non funzionerà se altre unità VCL dipendono da quella modificata, in tal caso devono essere ricompilate. Altrimenti, il collegamento dell'applicazione non funzionerà. – mghie

+2

E non funzionerà se usi pacchetti di runtime e stai attento con "Usa Debug DCU" –

2

È una specie di ultima risorsa (e non supportato da CodeGear), ma io faccio qualcosa di simile a Mohammed quando necessario. Tranne che inserire le unità modificate nella cartella dell'applicazione, le inserisco nella loro cartella con il resto del codice della mia biblioteca e includo questa cartella nel mio percorso della libreria in cui verrà utilizzata da tutti i miei progetti. Mi impedisce anche di avere più copie (forse leggermente diverse) in giro.

Mi sforzo anche di verificare eventuali aggiornamenti per vedere cosa è cambiato in modo da poter rimuovere le unità modificate o riapplicare le modifiche alle unità più recenti (e presumibilmente migliori) di CodeGear.

0

Non l'ho mai fatto da solo ma ci sono progetti in {RAD}\source\rtl insieme allo script di compilazione batch. Credo che questo renda le funzioni di ricompilazione RTL facili. Altre unità dovrebbero essere ricompilate più facilmente.

Se le modifiche che si desidera eseguire sono locali e le unità non sono ampiamente utilizzate da altre unità RTL/VCL, il modo più semplice è posizionare le copie delle unità modificate separatamente dalla loro posizione standard.

Un'altra opzione è la patch di runtime, ovvero la deviazione.