Newsgroup: it.comp.lang.visual-basic
Titolo: Come riferirsi ad una certa istanza?

Salve a tutto il newsgroup.
Sono nuovo del VB e avre bisonog di un aiuto.
Creando un programma con VB6 sono incappato nel seguente problema.
Se creo più istanze di un form con:
Public frmNewForm As New frmForm
Come posso identificare le istanze?
Esiste magari anche un comando che mi permetta di riferirmi al form
chiamante visto che per riferirsi a se stessi si può usare Me (che tra
l'altro non so cosa significhi)?
TIA
--
Un saluto virtuale digitale dal cyberspace!
Cyber Z
<Per mettervi in contatto con me la X è la chiave>

 l'altro non so cosa significhi)?
'Me' sta proprio per 'me stesso' in Inglese... in C++ si usa 'this'
Venendo al tuo problema, puoi regolarti in vari modi, tra cui:
- Definire una property 'Parent' di tipo Form da assegnare prima del
Load/Show
- Aggiungere le varie istanze ad una tua collection pubblica in Form_Load e
rimuoverle in Form_Unload
- Attribuire una chiave univoca ad ogni istanza, salvandola per esempio
nella property .Tag, e quindi scorrere le istanze nella collection
predefinita Forms
Ciao
-- 
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 predefinita Forms
Grazie Luca, pensavo di usare la terza soluzione, ma ho un altro piccolo ma
grande problema, che una volta risolto mi permetterà una maggior
comprensione delle gerarchie in VB.
Ti parlo del problema.
Diciamo che assegno ad ogni istanza una Tag univoca, ma poi utilizzando la
collezione Forms riesco a richiamare i form sono con il numero di Item, ad
esempio forms.item(1).comandoacaso.
Come faccio a utilizzare la tag (o un altra proprietà) per riferirmi, ad
esempio, alla proprietà visible di quel form?
Diciamo che questa è la situazione:
frmForm.Tag="Z"
Qual'è la stringa partendo da Forms? Forms.boh.boh.visible!?!?!?!?
Aiutami a pensare quadrimensionalmente!


 Aiutami a pensare quadrimensionalmente!
mi limito solo ad un inelegante suggerimento bidimensionale e mezzo (un po'
frattale, eh eh he)
scherzo  !
il modo sicuro è quello di scorrere ogni volta, con for next o il più
efficiente for each, l'intera collection di forms sin quando non trovi la
TAG cercata (e a quel punto conosci l'item, che andrebbe salvato in una
seconda variabile form o oggetto generico o, peggio ancora, variant, per usi
successivi). Se usi il più lento ciclo for invece hai a disposizione
direttamente l'indice.
Tuttavia non sono sicuro che l'indice, a differenza della "key" di una
collection, sia un riferimento stabile nel tempo (magari aggiungendo e
rimuovendo form, il form Jesimo non rimane sempre lo stesso, non so molto
dell'implementazione interna dell'insieme, anche se ipotizzo sia una
triviale lista linkata proprio in base alla veloce iterazione del "for each"
che nativamente scorre la catena di puntatori così come si presentano), e
questo sconsiglia di memorizzare questi INDICI numerici .... o almeno va
accertato che si mantengano immutati, anche caricando e scaricando istanze.
cmq, SE e SOLO SE gli indici restassero costanti (tu sai se devi scaricare o
meno istanze e dove) già che usi una collection pubblica e quindi,
ineleganza più ineleganza meno poco cambia, potresti usare una seconda
collection di appoggio in cui mettere le TAGS come chiavi di ricerca rapida,
e gli indici come VALUES della collection, in modo da usarla come "filtro
traduttore"
es.  collezione pubblica
public dim frmFromTagsToIDXes as new collection
public dim frmColl as new collection
load newInstance ''' di form1
newInstance.Tag = "Pippo"
frmColl.add newInstance
''' poi cerca l'indice cui  corrisponde "pippo"
''' in frmColl, poniamo sia J, e fa
frmFromTagsToIDXes.add J, "Pippo"
in seguito potrai referenziare l'istanza indicizzando con la sua proprietà
TAG :
set WantedForm = frmColl.Item(frmFromTagsToIDXes.Item("Pippo"))
ovviamente sempre alla solita condizione di 1) non caricare scaricare a meno
di non essersi accertati dell'invarianza della corrispondenza
indici-posizione oppure 2) ad ogni operazione delicata ricreare la
collection di appoggio, manco troppo onerosa come operazione, dopotutto
ciao
Soviet-Mario


 ha scritto nel messaggio
news:7d0ac.100285$FJ6.3...@twister1.libero.it...

Grazie Soviet-Mario, ho fatto qualcosa simile al tuo suggerimento.
--
Un saluto virtuale digitale dal cyberspace!
Cyber Z
