Newsgroup: it.comp.lang.visual-basic
Titolo: URGENTE AIUTOOOOO !!!

Mi serve un consiglio...
In un programma che devo consegnare all' università ho definito in un modulo
un vettore di 16 numeri interi in questo modo:
type vettore
a(16) as integer
end type
e VB me lo accetta e riconosce...
poi ho definito una funzione che deve dare un vettore in uscita:
public function nomefunc ( str as string) as vettore
...e VB me lo accetta e riconosce tanto che nella lista di identificatori
che appare dopo
che si scrive "as" c' era pure il mio "vettore" .
...Ora in tutte le parti in cui chiamo la funzione non ho mai problemi, me
la riconosce sempre, ma     QUANDO VADO A COMPILARE VB MI DICE :
ERRORE DI COMPILAZIONE:
SOLO I TIPI PUBBLICI DEFINITI DALL'UTENTE DEFINITI IN MODULI DI OGGETTO
PUBBLICI POSSONO ESSERE UTILIZZATI COME PARAMETRI O TIPI RESTITUITI PER
ROUTINE PUBBLICHE DI MODULI DI CLASSE O COME CAMPI DI TIPI PUBBLICI DEFINITI
DALL' UTENTE !!!!!!!!!!!!
AIUTOOOOOOOOOOO!!!!!!!!!!!!!!!!!!

 ha scritto:
Ciao a tutti!
Vista che questa domanda e' facile, mi permetto di rispondere io come
prima volta che mi faccio vedere e dopo tanto tempo che usufruisco del
vostro immenso sapere.... ^________^
Dunque...
Il problema e' proprio il fatto che la type deve essere dichiarata
public in un modulo e quindi dovrebbe bastare che tu scriva
PUBLIC type vettore
      a(16) as integer
end type
Vedrai che funziona, e se non lo fa allora non ho nemmeno capito il
problema ed ho fatto la mia prima "bella" figura... ;oDDD
Paperina*
|:>In un programma che devo consegnare all' università ho definito in un modulo
|:>un vettore di 16 numeri interi in questo modo:
|:>type vettore
|:>a(16) as integer
|:>end type
|:>poi ho definito una funzione che deve dare un vettore in uscita:
|:>
|:>public function nomefunc ( str as string) as vettore
|:>
|:>...e VB me lo accetta e riconosce tanto che nella lista di identificatori
|:>che appare dopo
|:>che si scrive "as" c' era pure il mio "vettore" .
|:>la riconosce sempre, ma     QUANDO VADO A COMPILARE VB MI DICE :


Paperina*
No, una type in un modulo è pubbica di default.
Secondo me Eddy Bee non ce la conta giusta: l'errore è tipico di una classe
non di un modulo.
Le funzioni (PUBBLICHE) definite in una classe non possono ritornare tipi
definiti dall'utente e i tipi devono essere privati alla classe altrimenti
l'errore è quello citato.
Insomma in una classe non possono ne' entrare ne' uscire tipi definiti.
Il fatto è che questo non funziona MAI, ne in debug ne mentre compila.
Se fosse veramente in un modulo la cosa funzionerebbe benissimo.
Inoltre a(16) NON è di 16 elementi (come sarebbe in C) ma di 17 (da 0 a 16)
a meno che non si sia usata un'<Option Base> differente, infatti è consiglia
di dichiarare SEMPRE gli array come a(da_numero To a_numero)
Ciao

l' ho già provato.... non funziona, grazie comunque!

 ha scritto:
|:>>Vedrai che funziona, e se non lo fa allora non ho nemmeno capito il
|:>>problema ed ho fatto la mia prima "bella" figura... ;oDDD
Appunto..... ^________^
Paperina*

Paperina* ha scritto nel messaggio ...

Non importa, così anche oggi hai imparato qualcosa...
Ciao

 ha scritto:
|:>Insomma in una classe non possono ne' entrare ne' uscire tipi definiti.
Rileggendo meglio.... Io ho definito public type enum all'interno in un
modulo di classe e li ho utilizzati in altri moduli.... e funziona
benissimo... ho capito male anche questa volta?
Paperina*

 AIUTOOOOOOOOOOO!!!!!!!!!!!!!!!!!!
Forse il problema e' quando chiami la funzione: suppongo che tu scriva
qualcosa come:
miovettore = nomefunc(miastringa)
come hai definito miovettore ? suggerimento: prova a fare
public miovettore as vettore
in un modulo .bas
Ciao

Paperina* wrote in message ...

No, questa volta è giusto perchè gli enum non sono tipi definiti, servono
solo a scavalcare il problema dell'esportabilità delle costanti dalle classi
(neanche loro possono essere pubbiche in una classe) e soprattutto per far
uscire la lista delle possibilità con l'intellisense.
Ciao

Non del tutto esatto.
Se una classe definisce un tipo pubblico, può gestirlo in in e out dalle
proprie funzioni pubbliche (solo con VB6).
Inoltre, se la classe vuol comunicare con altre sezioni del codice del
progetto senza esporre metodi, può transitare qualsiasi cosa in funzioni
Friend anziché Public.
----------------------------------------------------------------------
Stefano Minardi
zet...@mclink.it
----------------------------------------------------------------------

proprie funzioni pubbliche (solo con VB6).
Non mi risulta proprio.
Se io con VB6 definisco una funzione tipo
Public MyFunc(T as MyType) As MyType
VB va tranquillamente in errore dicendo che non si può dichiarare tipi
utente come parametri o risultati di un membro di classe.
Ciao