Newsgroup: it.comp.lang.visual-basic
Titolo: [?] CreateObject e variabili globali nell'oggetto istanziato

Scusate per il topic lunghetto ma non sapevo come spiegarlo in 2 parole...
In pratica ho inglobato in una bella DLL ActiveX tutte le classi di un'applicazione per portarla sul
Web, però nella nuova applicazione (ASP) avrei bisogno di utilizzare alcune costanti globali ed
enumeratori della DLL... solo che quando istanzio un oggetto usando Set miooggetto =
Server.CreateObject("miadll.nomeclasse") ovviamente mi espone tutte le proprietà e metodi di quella
classe, ma non le costanti e gli enumeratori globali... che però mi servono...
Senza creare una classe "di apoggio" che mi restituice il valore numerico della costante passata
come parametro, come posso fare? Se si potesse creare "un'istanza dell'intera DLL" sarebbe l'ideale,
ma...
Grazie in anticipo per le risposte...
Ciao,
Moreno
#sirri#@#morenosoft#.com
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.msvbsite.net
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.it-lang-vb.net
---------------------------------------------------------------------------


Ciao Moreno.
Effettivamente l'enumerazione delle costanti contenute nella dll non sembra
funzionare correttamente, a meno che mi sia dimenticato qualcosa nel test
veloce che ho fatto in Vb.
Tuttavia la dll referenziata, di cui creo un oggetto con createobject,
espone ugualmente le enum pubbliche, come puoi verificare dal visualizzatore
oggetti, almeno in Vb.
Per quanto riguarda Asp, la mia pratica č un po indietro, ma non vedo
ragione per cui la createobject non debba in questo caso esporre eventuali
costanti pubbliche della classe.
ciao
ugo

 costanti pubbliche della classe.
non mi pare si possano esporre costanti pubbliche in una classe,
ma forse ricordo male.
prendi come esempio la libreria di ADO
è necessario infatti includere il file ADOVBS.INC per accedere alle
enumerazioni.
senza non puoi utilizzare costanti ed enumerazioni sebbene utilizzi
createobject
per allocare connessione e recordset.
è assolutamente normale, perché il nostro Moreno quando ha creato la
libreria
ha inserito le costanti avrà utilizzato un modulo e non una classe.
createobject crea un'istanza di una CLASSE non alloca un modulo
il discorso delle enumerazioni è leggermente diverso perché è possibile
dichiarare
enumerazioni in una classe...
beh.. se la stessa MS fornisce ed utilizza l'ADOVBS non vedo perché non
debba
farlo anche tu. crea un file inc che espone tutte le costanti pubbliche e
poi lo
includi con <!--#include file="bla.inc"-->
--
Fibia "Sakamoto" FBI
E-mail: 
fibi...@hotmail.com
ICQ UIN 63586057
Sito Personale: 
http://www.geocities.com/fibiafbi
VB Simple: 
http://vbsimple.virtualave.net
Membro #25 delle Mitiche Brigate Takahashi sezione Sud

includi con <!--#include file="bla.inc"-->
Grazie del consiglio. Comunque mi sono comportato in maniera diversa: anche se meno elegante, ho
implementato una proprietà della classe che mi ritorna il primo e l'ultimo valore dell'enumeratore
(nel mio caso mi serviva solo sapere quale intervallo considerare in un ciclo). Così non mi ritrovo
una doppia dichiarazione delle costanti (componente e client) con il rischio che, se le modifico in
uno dei due, l'altro rimane fregato. Ovviamente, se invece dovessi aver bisogno di conoscere ogni
singolo valore delle costanti, allora mi sa che l'unica soluzione è fare come hai suggerito...
Grazie ancora.


 ha scritto nel messaggio
news:9in5h3$jnkqn$1...@ID-66902.news.dfncis.de...
[snip]
Confermo tutto.
Confesso la risposta frettolosa... :-(
ciao
ugo