Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Trasferimento valori da un modulo .ctl (activeX) ad un form

Sto facendo un controllo activeX privo di interfaccia grafica, ho solo un
modulo .ctl e un form che viene visualizzato da un metodo per permettere
all'utente di impostare una serie di parametri.
Il problema e' il trasferimento di questi valori tra .ctl e il form.
Ho creato un modulo .bas dove ho dichiarato una variabile pubblica per lo
scambio dei valori, solo che ci sono problemi.. :-/
Non so se in questi errori (tra cui molti crash di VB se solo premo un
punto) incide anche l'uso di un tipo definito come pubblico nel modulo .ctl
e usato dalla variabile del modulo.bas che a sua volta e' un tipo utente.
Vediamo se riesco a spiegarmi meglio.
modulo.ctl
----------
public type TipoStrano
    ....
    varia roba
    ....
end type
modulo.bas
-----------
public type ScambioVar
    var1 as long
    var2 as string
    var3 as TipoStrano
end type
public Scambia as ScambioVar
--------
Quando nel modulo .ctl provo a scrivere una cosa come:
scambia.
VB6 mi va in crash al momento  di scrivere il punto (.)
Errore in VBA6.DLL e poi di seguito, errore in MSVBVM60.dll
(I programmi microsoft fanno sempre uscite teatrali)
Il fatto e' che il TipoStrano non posso dichiarlo nel modulo.bas perche' e'
un tipo che coincide con una proprieta' del controllo.
Ho fatto anche altri tentativi col solo risultato di ottenere gli errori
piu' strani, uno di questi, ottenuto mentre compilavo il controllo parlava
di dichiarazione ciclica (o circolare non ricordo bene).
Da notare che invece nell'ultimo modo che ho usato (quello descritto) il
controllo viene compilato senza errori.
Certo  pero' che e' seccantuccio che ogni volta che provo a usare la
variabile Scambia nel modulo.ctl mi va in crash l'ide. :-/
Oltre a qualche parere su questa faccenda vorrei anche capire un paio di
cosette.
1) L'ambito di validita' di una definizione di tipo pubblica nel modulo.ctl
copre anche moduli.bas e form del progetto?
(Sembrerebbe di si ma ormai non so piu' cosa pensare)
2) Perche' se provo a fare il debugging del controllo creando un gruppo con
un progetto.exe come piazzo il controllo sul form mi dice che c'e'
gia'un'applicazione aperta e di chiuderla?
(Io la finestra di progetto del controllo gia' l'avevo chiusa)
3) Come la chiudo se e' un controllo e non ha una finestra? (quindi non
compare il suo nome tra i processi attivi dopo aver premuto CRTL-ALT-CANC)
4) Perche' mai dice che e' gia' attivo il controllo se solo in quel momento
ho provato a inserirlo?
5) Perche' quando faccio il debugging del controllo su un progetto  a parte
all'avvio VB mi dice che il controllo non e' ancora registrato alla versione
N? (aumenta ogni volta, siamo a 8 adesso)
6) Non c'e' un modo per ottenere il valore di una proprieta' del controllo
dal modulo.bas?
Spero che qualcuno possa aiutarmi, sono davvero stressato :-(
grazie
Paolo B.

Spero che qualcuno possa aiutarmi, sono davvero stressato :-(
Dan Appleman: Sviluppo di ActiveX con visual basic 5.0
(magari ne ha fatto una versione aggiornata alla 6.0)
hth, hal


E come faccio a passare un riferimento al .ctl?

E come faccio a passare un riferimento al .ctl?
Cerca nel thread "Passaggio di da un form all' altro" la risposta
di Basic -A.
ciao, hal