Newsgroup: it.comp.lang.visual-basic
Titolo: Problema con modulo di classe

Io ho creato un modulo di classe che ha la funzione di inserire una serie di
valori in una tabella.
Il metodo setIntestazioni, che di fatto riempe tutti i valori, prende vari
argomenti: il form, la FlexGrid ove inserirà i valori un paio di array e una
stringa.
Il problema è questo:
Io debbo in un form riempire due tabelle, quindi debbo usare la classe due
volte.
L'ho dichiarata con:
dim creaTabella1 as New creaTabella (nome della classe)
dim creaTabella2 as New creaTabella
poi in una sub chiamo:
 creaTabella1.setIntestazioni Me, Flex, ecc. (passo i parametri tra cui
Flex1)
in un'altra sub chiamo:
 creaTabella2.setIntestazioni Me, Flex2, ecc. (passo i parametri tra cui
Flex2)
a questo punto vedo che comunque viene riempita solo una tabella mentre
l'altra rimane vuota.
Ossia non posso usare la classe per riempire due tabelle, di per se stessa
funziona bene, perchè se la chiamo una volta sola riempie bene sia la prima
che la seconda tabella (sono diverse)
ma se la chiamo due volte risulta riempita solo la prima tabella con i
valori giusti per la seconda!
Come si risolve questo problema?
Grazie per chi vorrà rispondermi, in quanto non ho idea di come risolvere,
in Java l'operarore New mi crea due oggetti distinti, anche dello stesso
tipo, in VB cosa cambia? Sembra che crei comunque un solo oggetto...
ciao a tutti!

 dim creaTabella2 as New creaTabella
<quoting>
uhm, senza vedere il codice, non ti sappiamo dire il problema esatto. Però
cambierei le dichiarazioni degli oggetti in questo modo:
Dim creaTabella1 as creaTabella
Dim creaTabella2 as creaTabella
Set creaTabella1 = New creaTabella
Set creaTabella2 = New creaTabella
prova e facci sapere.
good coding!!!
-- 
Alletun
"Io lo so che accadrà. La voce sussurra nei miei pensieri
di Jair, Rone, Allanon e soprattutto nelle Mortombre.
Sussurra segreti che mi sono tenuti nascosti, nella grigia
oppressione di questo giorno e nell'oscurità caliginosa
di quello che mi aspetta.
Saremo distrutti. Tutti."
Brin Ohmsford - La Canzone di Shannara - T. Brooks

 ha scritto nel messaggio
news:c170vd$1f27op$1...@ID-134521.news.uni-berlin.de...


   Form.Flex.Rows = 1
[SNIP]
Hai definito due parametri distinti per la Form e la griglia su cui
lavorare, ma nel codice fai sempre riferimento a Form.Flex, ovvero sempre
alla stessa griglia che si chiama 'Flex' e non come volevi al *parametro*
'Flex'... devi quindi riferirti direttamente a 'Flex.XXX'
La confusione nasce dal fatto che hai un controllo definito con lo stesso
nome usato come parametro (che non e' sbagliato di per se', ma puo' creare
questi equivoci); incidentalmente, se il codice che hai postato e' completo,
non hai nemmeno bisogno del parametro 'Form As Form' perche' fai sempre e
solo riferimento alla griglia, ed' e' quindi sufficiente il parametro Flex
Ciao
-- 
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 ha scritto nel messaggio
news:c17iep$1erh01$1...@ID-138791.news.uni-berlin.de...


 Quello che infatti sostenevi.
Lo prende come nome perche', come dicevo, tu ti riferisci a 'Form.Flex';
facendo cosi' il compilatore nell'ordine:
- valuta il nome di variabile 'Form' e verifica che e' un parametro della
funzione.
- essendo una variabile oggetto risolve il riferimento e recupera quindi
l'oggetto puntato, ovvero la tua FormPincoPallo, ovvero quella che hai
passato alla funzione tramite l'alias 'Me'
- risolve la proprieta' 'Flex' *associata alla form*, ovvero la griglia che
si chiamava proprio 'Flex' (ecco perche' avendo rinominato il controllo non
funziona piu': la funzione conosce un parametro Flex ma il tuo codice sta
indicando di prendere la property Flex della form)
La correzione era gia' riportata nel messaggio di prima, e consiste nel fare
riferimento direttamente al parametro (quindi non 'Form.Flex.<qualcosa>' ma
Flex.<qualcosa>), il quale a sua volta e' un alias che puntera', a seconda
delle chiamate, all'una o all'altra griglia.
Al di la' del problema specifico e' importante che tu rivenda per bene il
concetto di parametri e di variabili oggetto, che ti deve essere chiaro come
il sole; altrimenti incorrerai in continuazione in questo genere di errori
di logica che possono essere difficilmente individuabili.


 ha scritto nel messaggio
news:c17mm7$1euhg7$1...@ID-138791.news.uni-berlin.de...
