PDA

Visualizza la versione completa : [DELPHI] Runtime Error 216 all'avvio del programma


firefox88
12-02-2007, 21:11
Salve a tutti,

sto realizzando un programma in Delphi. E' da tempo che ci lavoro, e ormai in ogni unità la lista dopo "uses" (sotto "interface") è diventata un caos. In più, avevo continui problemi dovuti ai riferimenti circolari.

Allora ho pensato di spostare tutte le unità da includere direttamente nell'uses di "implementation", tranne quelle appartenenti alla VCL, ovviamente, che devono stare per forza nell'"interface" (altrimenti è impossibile derivare le classi).

Così:



interface
uses Windows, Registry, MIACLASSE3, Dialogs, MIACLASSE1, Forms, SysUtils, MIACLASSE2;


è diventato



interface
uses Windows, Registry, Dialogs, Forms, SysUtils;

implementation
uses MIACLASSE3, MIACLASSE1, MIACLASSE2;



Così mi sembrava tutto più ordinato e non c'era più il problema dei riferimenti circolari. Nessun problema al momento della compilazione , ma al momento dell'esecuzione ottengo un terribile errore Runtime Error 216 (Access Violation)... Immaginate la faccia che ho fatto.

Ora è chiaro che devo aver combinato qualcosa con gli uses, ma il punto è "perché"? Che c'è di male a mettere le mie classi nell'uses di "implementation", invece che in quello di "interface", fermo restando che le classi della VCL stanno comunque nell'uses di "interface".

Qualcuno più esperto di me potrebbe farmi capire?

Grazie in anticipo :)

firefox88
13-02-2007, 10:19
Problema risolto!

Nei miei lavori di riordino del codice, avevo rinominato un form. Per qualche ragione che ignoro, quel form è finito nella lista "Auto-create forms", e veniva quindi creato all'inizio, cosa dannosissima dal momento che l'handler di OnCreate per quel form si avvale di oggetti che vengono inizializzati solo ad un certo punto durante l'esecuzione del programma, e non certo all'inizio.

Mamma mia quanto mi ha fatto penare...

Loading