Newsgroup: it.comp.lang.visual-basic
Titolo: ocx e scaricamento

ciao a tutti
spesso quando uso degli ocx fatti da me nei miei progetti
se alla pressione di un tasto scateno End
a volte si chiude tutto bene a volte mi da errori del tipo
l'istruzione ha fatto riferimento alla memoria....
...la memoria non poteva essere read
cosa succede?
gli ocx no vengono scaricati bene?
c'è qualche operazione in UserControl_Terminate che causa quest'errore?
la cosa preoccupante è che no accade sempre
grazie a tutti
Valerio

 cosa succede?
Non si usa MAI End per uscire dal programma.
Perchč?
Basta leggere la guida in linea o i molti messaggi passati su questo NG.
Per uscire da un programma windows forms (VB6) occorre scaricare tutti i
form.
Ciao
-- 
NeoDataType : 
http://www.neodatatype.net
Sito Comune : 
http://www.it-lang-vb.net

Valerio
Dalla MSDN:
"When executed, the End statement resets allmodule-level variables and
all static local variables in allmodules. To preserve the value of
these variables, use the Stop statement instead. You can then resume
execution while preserving the value of those variables.
Note   The End statement stops code execution abruptly, without
invoking the Unload, QueryUnload, or Terminate event, or any other
Visual Basic code. Code you have placed in the Unload, QueryUnload,
and Terminate events offorms andclass modules is not executed. Objects
created from class modules are destroyed, files opened using the Open
statement are closed, and memory used by your program is freed. Object
references held by other programs are invalidated.
The End statement provides a way to force your program to halt. For
normal termination of a Visual Basic program, you should unload all
forms. Your program closes as soon as there are no other programs
holding references to objects created from your public class modules
and no code executing."
ciao

 and no code executing."
che vergogna non lo sapevo!
perche ero convinto che bisognasse usare end?
perche anche scaricando tutti i form il vb6 non rende disponibile il 
'play' per rieseguire il programma ma rimane con lo 'stop' abilitato
e bisogna premere stop per riprendere a lavorare col vb6
questo mi faceva pensare che in realta il programma è ancora in 
esecuzione anche se tutti i form sono stati scaricati.
grazie
Valerio

 'play' per rieseguire il programma ma rimane con lo 'stop' abilitato
Probabilmente qualcosa non è stato scaricato, ad esempio uno UserControl.
Settare a nothing non significa scaricare, ma solo togliere un puntatore.
Ciao
Alberto
--
E tutto mi sembrava andasse bene...

 Settare a nothing non significa scaricare, ma solo togliere un puntatore.
ma non  dovrebbe pensarci lui (il vb) a scaricare gli user control?

 ma non  dovrebbe pensarci lui (il vb) a scaricare gli user control?
Dipende se lo sta usando ancora qualcuno o no.
Magari il tuo problema è che il programma è in un loop e anche se i form
sono stati scaricati il programma non termina finchè non termina il flusso
di codice che sta eseguendo.
Prova, una volta scaricato, tutto a premere il tasto "pausa" per vedere se
si ferma da qualche parte.
Ultimo test: nel debugger controlla la collection Forms, così puoi vedere
qual è il form che credi completamente scaricato ma che in realtà è tenuto
in vita da qualcosa.


 Ciao
ciao e grazie a tutti