Newsgroup: it.comp.lang.delphi
Titolo: Ordinare il Projcet Manager in Delphi 7

Sono passato da poco da delphi 5 a delphi 7 il che è stato abbastanza
doloroso.
Ma era necessario :)
Adesso mi trovo in questa situazione in delphi 5 i nome delle unit nel
project manager erano automaticamete in ordine alfabetico
in delphi 7 questo non accade come posso fare per risolvere ???


Open Delphi Manual (
http://groups.yahoo.com/group/delphi_open_manual/
)

Ciao
questo è un problema riportato nel Quality Central
http://qc.borland.com/wc/wc.exe/details?ReportID=2559
Ecco il Workaround suggerito là
=================
This workaround was posted to b.p.d.non-technical by Erwien Saputra:
Open your dpr (Project->View Source), select all units in the code editor,
copy to clipboard.
Open Excel, paste, sort, copy and paste back to the dpr.
---------
use ctrl-F12 and shift-F12 to open files in the project
---------
This workaround was posted to b.p.d.non-technical by Erwien Saputra:
Open your dpr (Project->View Source), select all units in the code editor,
copy to clipboard.
Open Excel, paste, sort, copy and paste back to the dpr.
================
saluti
"Ciro" <NoS...@NoSpam.it> ha scritto nel messaggio
news:ExjCb.83756$AX1.3...@news1.tin.it...


Ciro scriveva fra l'altro:

No way. Secondo i componenti del TeamB sarebbe una feature.
Modificare l'ordine con cui le unit compaiono nel dpr ha ovviamente
degli effetti sull'esecuzione del codice.
Saluti
Paolo Arosio
-- 
"La dimostrazione dell'esistenza di specie intelligenti nell'universo
 e' che non ci vengono a trovare"

 degli effetti sull'esecuzione del codice.
Se è vero, questo problema non l'avevo mai considerato.
Quali effetti collaterali si possono avere nel modificare l'ordine delle
unit nel DPR?


 delle unit nel DPR?
Derivano dalla (eventuale) presenza di sezioni di inizializzazione.
Se ad esempio hai una uMyConfig.pas che contiene un singleton creato in
initialization che carica i parametri di configurazione
dell'applicazione e' in genere utile averla elencata prima di
uMainForm.pas, anche se viene dopo in ordine alfabetico. (L'esempio non
e' particolarmente pregnante, anzi, ma se ne possono trovare di
migliori).


 migliori).
Probabilmente non ho compreso bene io, ma leggendo il tuo messaggio ho
capito che l'ordine con cui vengono elencate le unit del progetto nel
sorgente del programma influisce sulla compilazione, quindi in qualche
modo anche sull'eseguibile che viene prodotto.
Io ho sempre letto che il caricamento delle unit all'interno del file
eseguibile avviene sempre e comunque in base alle loro interdipendenze,
quindi modificare il loro ordine nel file DPR non dovrebbe influire su
questo meccanismo.
Poi, in merito alla logica con cui vengono ordinate dallo sviluppatore
(inserire una unit prima della form che la utilizza, ecc.) ognuno puň
organizzarsi come vuole; ad esempio, io raggruppo i file in base alla
loro tipologia: prima tutte le unit che definiscono classi base, poi
quelle relative ai frame, poi i form e infine le unit...a meno che,
secondo quanto ho capito dal tuo messaggio precedente, questo mio modo
di raggruppare non porti a condizioni ed effetti particolari
sull'eseguibile che non avrei se ordinassi le unit in modo differente...


 modo anche sull'eseguibile che viene prodotto.
[]
Esatto, vengono compilate nell'ordine in cui sono nel dpr, quindi se la
unit B precede la unit A viene prima eseguita l'inizializzazione di B.
Se per avere nel PM le unit in ordine alfabetico devi anteporre la uses
A a uses B ti sara' eseguita prima l'inizializzazione di A: i due
eseguibili sono differenti.
Se questo e' accettabile o meno dipende da molte cose.


 due eseguibili sono differenti.
Ho fatto una rapida prova tecnica.
Effettivamente, i file eseguibili prodotti sono differenti a livello
binario, ma ho notato che compilando uno stesso progetto due volte, i
file eseguibili prodotti appaiono *sempre* differenti (magari contengono
un "timestamp" o qualcosa del genere...), quindi mi è difficile capire
se queste differenze coinvolgono in qualche modo l'ordine delle unit.
Per quanto riguarda il discorso dell'inizializzazione, ho constatato che
l'ordine seguito tiene comunque conto delle interdipendenze tra le unit;
mi spiego: se la unit A crea nella sezione "initialization" un oggetto
che, a sua volta, fa uso di una oggetto creato analogamente nella unit
B, la unit B è sempre la prima ad essere inizializzata, qualunque sia
l'ordine delle unit all'interno del file DPR.
Ci tenevo a quest'ultimo punto perchè in alcuni progetti ho seguito
questo approccio... :-)


un "timestamp" o qualcosa del genere...)
E' probabile che siano le informazioni di versione.
-- 
Morde. 
(
mo...@despammed.com
)

 E' probabile che siano le informazioni di versione.
Ci ho pensato anche io, anche se non ho il "build incrementale"
attivato.
