Non ci vedo nulla di eccezionale. Inserire la clausola nella sezione interface o implementation dipende solamente dall'uso che si fa di quella unit.Originariamente inviato da gokan
Non avevo mai visto una "uses" dichiarata nella sezione implementation![]()
Se devi dichiarare una classe che discende da una classe base definita in una unit esterna, devi inserire il nome di tale unit nella sezione interface se vuoi dichiarare la tua nuova classe in quella sezione e renderla in questo modo visibile anche alle unit esterne che ne faranno uso in modo analogo.
Le unit che sono elencate nella clausola uses della sezione interface servono a costruire così le interdipendenze tra le unit ed evitare i riferimenti circolari, che possono essere "elusi" inserendo le unit nella sezione implementation. La parola "elusi" non è a caso perchè, a mio avviso, giungere ad un riferimento circolare è sintomo di un errore di progettazione e pertanto si dovrebbe cercare di mettere ordine tra le unit piuttosto che svicolare dal semplice errore che impedisce la compilazione del progetto.
Comunque, per la norma, puoi inserire nella sezione implementation anche dichiarazioni di tipi, costanti, variabili, dichiarazioni di classi...tutto ciò che normalmente inserisci nella sezione interface, con l'unica differenza che tali elementi saranno visibili solamente all'interno della unit e non all'esterno (ad esempio, da altre unit che la includono nella propria clausola uses).
Spero di averti detto qualcosa di nuovo...![]()