PDA

Visualizza la versione completa : [Delphi] Riferimento circolare tra le unit


pegaso22
29-07-2005, 13:26
Ciao a tutti,
sto riscontrando un errore particolare su un software realizzato 2 anni fa da un amico che ora non posso più rintracciare.
Vi spiego:
cerco di realizzare l'eseguibile da delphi e mi da questo messaggio:
Form 'Principale' references form 'Rubrica' declared in unit 'U_rubrica' which is not in your uses list. Do you wish to add it?

E fin qui nulla di particolare, clicco yes e mi aggiunge la unit nell'elenco.

Fatto questo riprovo a creare l'eseguibile e mi da quest altro errore:

Program or unit 'U_Rubrica' recursively uses itself.

Non capisco, sembra che ci sia una ripetizione nella dichiarazione della Unit, strano perchè come ho scritto sopra prima mi chiede di aggiungerla poi mi dice che è ricorsiva.

Fatemi sapere cosa ne pensate, io è da un pò che ci sbatto la testa ma non trovo soluzione.

Grazie mille.

alka
29-07-2005, 13:33
Ciao, cerca di usare titoli più rispettosi del Regolamento (http://forum.html.it/forum/showthread.php?s=&threadid=862015) per le tue discussioni.

Per quanto riguarda invece il tuo problema, dovresti verificare che le unit incriminate che si includono a vicenda nella clausola uses riportino il nome della unit utilizzata nella sezione implementation invece che nella sezione interface, evitando così il riferimento circolare, anche se la soluzione più corretta in questi casi sarebbe quella di porre il codice condiviso in una terza unit e referenziarla dalle altre due.

Ciao! :ciauz:

pegaso22
29-07-2005, 13:37
Come al solito, subito dopo che posto quà riesco a risolvere...
praticamente avevo il nome del form rubrica uguale al nome del form principale.

Chiedo scusa per il titolo anche se mi sono impegnato per scriverlo sensato.

Ora ho trovato un altro errore, provo a lavorarci un pò sopra poi se ho altre difficoltà ti faccio sapere.

Come sempre grazie.

alka
29-07-2005, 13:39
Originariamente inviato da pegaso22
Come al solito, subito dopo che posto quà riesco a risolvere...
Sei troppo impaziente. :)

Ciao! :ciauz:

Loading