Newsgroup: it.comp.lang.visual-basic
Titolo: Fw: Chiudere un programma: differenze

Ciao, Assatarram
Prova questo codice.
L'istruzione End chiude di brutto l'applicazione. Per cui se avevi una
qualche attività
ancora in piedi, potrebbe restare pendente e procurare un leak di memoria
e/o un calo
di prestazioni, oltre a tutta una serie di problemi dovuti alla chiusura
repentina delle
attività.
Unload Me, o Unload Form1 permette di gestire la chiusura tramite la sub
Form_Unload.
Infatti se viene impostato al suo interno un  valore per Cancel diverso da 0
(zero), la
applicazione non viene chiusa. Utile, e pressocchè unico sistema, per
gestire la chiusura
del Form tramite la X del ControlBox.
Set Form1 = Nothing, ha effetto solo se viene lanciato da un punto esterno a
Form1, ed è
utilizzato per rilasciare le risorse del sistema utilizzate da Form1. Viene
utilizzato soprattutto
per distruggere l'oggetto a cui puntava Form1 se non ci sono altri oggetti
che lo puntano.
Se Form1  è il form di partenza dell'applicazione, quest'ultima punta sempre
a Form1, per
cui Set Form1 = Nothing, all'interno di Form1 non ha effetto.
Option Explicit
Private Sub Command1_Click()
    End
End Sub
Private Sub Command2_Click()
    Unload Me
End Sub
Private Sub Command3_Click()
    ' qui non fa niente
    Set Form1 = Nothing
End Sub
Private Sub Form_Unload(Cancel As Integer)
If MsgBox("Vuoi uscire?", vbYesNo, "Uscita") = vbYes Then
    Cancel = 0
Else
    Cancel = -1
End If
End Sub
Ciao, Vito
--
TiscaliNet, libero accesso ad Internet.
http://www.tiscalinet.it
-- 
Posted from 
laguna.tiscalinet.it
 [195.130.224.86] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 attività.
End per quel poco che so libera tute le risorse mi spieghi meglio cosa
intendi dire ?

Ciao,
Intendo dire che se la tua applicazione è un client di un oggetto COM, ad
esempio,sia esso
InProcess o OutOfProcess e stai aspettando l'evento di risposta di una
transazione
o qualcosa del genere, e chiudi tutto utilizzando End, ti perdi tutti gli
eventi di risposta.
Mentre in un unico punto, per esempio nella QueryUnload o nella Unload del
form
principale, puoi gestire il controllo di cosa puoi e/o vuoi ricevere dal
server.
Ciao,Vito
-- 
Posted from 
smtp2.libero.it
 [193.70.192.52] 


 server.
comunque l'end di norma si mette in fondo all'evento unload ........
ma forse mi sbaglio
                                      ciaoooooo

 cui Set Form1 = Nothing, all'interno di Form1 non ha effetto.
non è esatto; per es. in un'applicazione MDI, la routine Form_Terminate non
viene eseguita con il semplice Unload (provare per credere). l'ideale è
mettere Set Form1 = Nothing proprio nella routine Form_Unload
Ciao
Faber

> se tutto funziona come "dovrebbe"
Questa frase non ha senso sotto Windows ^__^
Ciaps
Stracca
http://www.stracca.net
---------------------------------------------
    Le risposte alle tue domande le trovi
    sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
       ... e nell'help in linea !
---------------------------------------------


si va beh non diciamo semrpe le solite stupidate .............
.

si va beh non diciamo semrpe le solite stupidate .............
Era solo una battuta ... che pero' non si scosta troppo dalla realta'
!!!
^___^


Ciao Faber,
 Entrambi partiamo da esempi specifici. Se provi il codice in
 una applicazione SDI, e con un solo form (una buona parte
 di tutte le applicazioni VB, almeno inizialmente, sono di questo
 tipo) Set Fom1 = Nothing non chiude l'applicazione.
 
E' comunque, come ampiamente emerso dai vari post, utile
 abbinare  Set Fom1 = Nothing e Unload Form1.
 
Il post del "Grande" Moreno Sirri docet.
 
Ciao, Vito   
 
-- 
Posted from 
smtp4.libero.it
 [193.70.192.54] 
