Newsgroup: it.comp.lang.visual-basic
Titolo: passaggio dati ad una classe

Ciao a tutti, avrei la necessità di passare ad routine di una classe
una struttura di dati, però mi viene visualizzato un errore.
Tratucendo l'errore dall'inglese ad una lingua da me conosciuta
e molto simile all'italiano, mi sembra di capire che non si possono
utilizzare solo strutture dichiarate pubbliche in un modulo, ma
anche facendo così mi viene visualizzato lo stesso errore.
Sbaglio io qualcosa oppure non è possibile passare strutture
dati come parametri?
Grazie a tutti,
Pusky

prima regola:
se non sai tradurre, almeno posta il msg di errore nella lingua
originale.....cosě almeno lo leggiamo anche noi!!
:-)))
seconda regola:
č possibile passare delle strutture dati, l'importante č che vengano passate
ByRef (riferimento) e non ByVal (per valore)......guarda bene la
dichiarazine delle Sub...
good coding!!!
--
Damiani Liborio Igor
ig...@igordamiani.it
 - 
soft...@igordamiani.it
 - 
idam...@hotmail.com
http://www.igordamiani.it
ICQ : 11847262

 good coding!!!
Ma ke lingua è? ;-)
Grazie,
Ciao

mmhh.....parla di user defined types, vuol dire che hai usato l'istruzione
Type per crearti una struttura come la vuoi tu, giusto?
metti il blocco Type...End Type in un modulo bas, così divento pubblico per
tutto il progetto.....
il problema dovrebbe essere quello.....
tradotto, più o meno, dovrebbe essere:
solo tipi di dati definiti dall'utente che sono definiti pubblici possono
essere utilizzati come valori di ritorno per procedure pubbliche di moduli
di classe etc. etc.....


 di classe etc. etc.....
Anche io capivo una cosa simile, però non capisco perkè vb si arrabbi.
Ancora grazie per l'interessamento.
Pusky

sě, hai ragione, esce anche a me.......ho riprodotto il tuo errore, in
italiano č:
"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"
ehm....ehm....boh!!!!
:-)))
let's experience!!!!
good coding!!!


allora, ho fatto cosě e funziona:
ho lasciato dentro il .BAS la dichiarazione del Type senza Public
dalla Sub dimmiDato invece ho tolto la Public......
e cosě funziona.....


 good coding!!!
Comunque grazie per l'interessamento.
Saluti,
Pusky

 --
Aspetta un attimo.
Hai tolto il Public sia dal modulo BAS che dalla sub?!?!?
A me non funziona comunque!
per intenderci:
Public Type tDato -> Type tDato
Public Sub dimmiDato(ByRef dato As tDato) -> Sub dimmiDato(ByRef dato As
tDato)
saluti,
Pusky

rettifico, scusa.....ho detto una stupidaggine. Funziona così:
Modulo di classe:
Private Sub dimmiDato(ByRef dato As tDato)
    MsgBox 1
End Sub
Modulo pubblico BAS:
Type tDato
    dato1 As String
    dato2 As String
End Type
oltre ai vari Option Explicit......
giusto? good coding!!!



wrote:

la risposta la trovi tra i messaggi di ieri (Controllo contenente un
altro controllo"...
Non è proprio la stessa domanda ma lì trovi comunque la risposta.
I moduli standard sono privati all'interno del progetto, quindi se devi
dichiarare un tipo di dati pubblico devi per forza di cose dichiararlo
in un modulo di classe pubblico (ossia visibile da chi referenzia il
progetto).
Se però tale classe è privata, la property che ritorna l'udt non avrebbe
senso dichiararla pubblica, tutt'al più friend ed in questo caso,
essendo la sua visibilità limitata al progetto, potresti anche definirlo
in un modulo standard. Fai qualche prova...
Ciao,
Moreno
-- 
sirri at morenosoft dot com
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
---------------------------------------------------------------------------

 giusto? good coding!!!
Non metto in dubbio che così funziona, solo che così non mi
serve :-(((
La procedura deve essere public, altrimenti come faccio a passargli
come parametro la mia struttura.
Comunque grazie, ora tenterò con le classi.
Saluti,
Pusky


Grazie della risposta.
Cosě funziona. Adesso applicherň il tutto al progetto definitivo (fino
ad ora usavo un progetto di test) e spero di non aver problemi.
Ancora grazie,
Pusky

<CUT TOTALE>
Ciao,
volevo solo dirti che ho risolto sostituendo alla struttura una
classe.
Saluti,
Pusky

ho letto il 3ed che hai segnalato.....molto chiaro, giusto.....
praticamente, anche il chiamante deve avere la possibilità di sapere come è
strutturato il tipo di dato tDato. Invece come è stato fatto finora, il Type
tDato era privato alla classe, e quindi il progetto chiamante non può sapere
che cosa/come gli viene ritornato......
ok, chiaro....
grazie a tutti, non mi ero mai imbattuto in problemi così.....
