Newsgroup: it.comp.lang.visual-basic
Titolo: vb6 e chiusura applicazione

 
          Salve ho un problema, con la chiusura di un applicazione vb6 tramite la
classica crocetta. Mi spiego se l'utente clicca "la crocetta", in realtà
vedo che si esce dall'applicazione, ma questa poi resta comunque presente
tra i processi attivi ( fuunzione windows task attivi).
Come evitare questo ?
grazie
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Come evitare questo ?
Per caso usi winsock o subclassing?
bye
-- 
"Seminate Linux, che Windows si pianta da sè...." (Antico Adagio)
Gestione Ottica - Gestionale per Ottici e Programmi Gratuiti su:
http://www.nicolaottomano.it
Sinapsi Antispam. Antispam Gratuito.
http://www.nicolaottomano.it/sinapsi.htm
email spamtrap: 
spam...@nicolaottomano.it
Velocipedi Equestri su
http://www.nicolaottomano.it/velocipedi_equestri.htm

> vedo che si esce dall'applicazione, ma questa poi resta comunque presente
A me non succede. Comunque può essere perchè hai qualche form invisibile ma
comunque ancora in memoria, e se è così ti basta scaricare tutti i form
quando quello principale viene chiuso.
puoi usare il comando Unload nomeform  e comunque dovresti spiegare meglio
come è composto il tuo programma per avere una risposta migliore

 
oppure Unload All se hai piů forms

 oppure Unload All se hai più forms
"Unload All" sarebbe molto bello, ma sfortunatamente non esiste...
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 grazie
Prova mettendo un End nel Form_unload e vedi se le cose migliorano.
Ciao a presto
Stephen
Sub Form_Unload(Cancel As Integer)
    End
End Sub

credo che il problema sia nel fatto che forse hai ancora qualche oggetto in
memoria
comunque con end risolvi il problema

 End Sub
Pessimo consiglio.
E il perchè lo si trova facilmente:
http://groups.google.it/groups?hl=it&lr=&client=firefox-a&q=Terminare+progra
mma+End&btnG=Cerca&meta=group%3Dit.comp.lang.visual-basic
Ciao

DA MSDN:
Nota   L'istruzione End interrompe l'esecuzione del codice immediatamente
senza richiamare gli eventi Unload, QueryUnload o Terminate o altro codice
Visual Basic. Il codice eventualmente inserito negli eventi Unload,
QueryUnload e Terminate diform emoduli di classe non viene eseguito. Gli
oggetti creati dai moduli di classe vengono eliminati, i file aperti con
l'istruzione Open vengono chiusi e la memoria utilizzata dal programma viene
liberata. I riferimenti agli oggetti eventualmente attivati da altri
programmi vengono annullati.
L'istruzione End rappresenta un metodo per forzare l'interruzione del
programma. Per interrompere normalmente un programma Visual Basic, è
necessario scaricare tutti i form. Il programma verrà chiuso quando non vi
sono altri programmi con riferimenti attivi agli oggetti creati da moduli di
classe pubblici del programma e quando non vi è più codice in esecuzione

Come evitare questo ?
Verifica che tutti i riferimenti agli oggetti che hai allocato nel
corso dell'applicazione vengano correttamente reimpostati. Il
comportamento della tua applicazione è tipico di quando questa
operazione non viene fatta. Puoi utilizzare gli evento QueryUnload o
Unload di ciascun form per farlo.
--
Ciao!
Luca Menegotto

 >Come evitare questo ?
Anch'io da oggi ho lo stesso problema, e credo di aver capito di cosa si
tratta, ho creato una form con la creazione guidata di vbasic per l'accesso
ai dati da access con controllo adodc, a parte il fatto che una
voltacompletata la form non la riesco ad eseguire perchè alcune routine sono
sbagliate, e mi è toccato cancellarle, ho messo sull'evento form unload del
form principale  l'end e tutto funziona benissimo,chissà quali porcherie
erano istanziate!


NO!! Non hai capito cosa fa l'End. Se le cose sono ben fatte, tu
dell'End non hai bisogno. Pensa che io sono uso non metterlo proprio
perché so che, se non si chiude, ho fatto qualche porcheria, e che la
devo trovare.
--
Ciao!
Luca Menegotto

 erano istanziate!
mmm... come dire... se mentre vado in macchina devo frenare e non riesco
perchè il tappetino mi si è infilato sotto il pedale, anzichè sistemare il
tappetino è meglio cercare un albero contro cui fermarsi.
Ciao

 Ciao
A parte la battuta carina, siccome non mi era mai capitato fino ad adesso,
mi piacerebbe che qualcuno provasse a creare un formmain e due form con
creazione guidata VB per accesso ai dati (con controllo ado, non con codice
ado). Sul formMain mettete due bottoni che mostrano i due nuovi form,
provate ad eseguire il programma con compilazione completa. Quando avrete
eliminato le routine sbagliate che VB vi ha creato (che riguardano solo
adodc1_willmove), forse lo eseguite, poi provate a cliccare un bottone.
Chiudete il form e chiudete il frmmain.
A me si chiudono i form ma il programma resta in esecuzione. So benissimo
anch'io che l'end è una specie di kill del programma e non andrebbe mai
usato, ma ho provato e riprovato ad aggiustarlo.... e niente, ho provato il
programma e funziona benissimo lo stesso, ho provato perfino a distruggere i
controlli adodc, e non funziona, cosa devo fare, rifare tutto il programma
perchè l'End non si deve usare. Beh forse, ma non ho tempo....

 perchè l'End non si deve usare. Beh forse, ma non ho tempo....
Allora...
Se ti hanno commissionato un programma, e tu l'hai fatto con un "wizard" sei
un incosc(i?)ente.
Se vuoi lasciare l'end fa come ti pare, poi però non lamentarti se ti
chiedono perchè chiudendo la tua app va in crash.
Se poi ti chiedono anche perchè gli ultimi dati inseriti prima della
chiusura non vengono salvati o perchè il db access si scassa così spesso...
Fai un po' tu :)
Ciao

 Ciao
Ehm, ehm, non so da dove iniziare......  HO SBAGLIATO IO!!!(Va bene cosi??)
Ecco, adesso che l'ho ammesso, nessuno mi insulti perchè me lo sono fatto da
sol + volte (del tipo :
for i = 0 to 500
msgbox "Sono uno stupido"
next i
A parte gli scherzi non sapevo che non si può colorare un form non caricato
e poi chiudere il programma senza caricarlo... mi spiego: la mia routine
caricava i colori da una tabella ("colori") e ogni volta che veniva chiamata
applicava i colori a tutti i controlli del programma (su tutti i form),
ovviamente quando l'utente usciva c'era qualche form che non aveva ancora
visualizzato
...e il programma figurava ancora come in esecuzione.....
Adesso però ho risolto passandogli come variabile il nome della maschera da
colorare e mettendo una serie di etichette tipo "CLIENTI:" e una serie di
goto:
Ciao e grazie ancora a tutti
 (...ed evitava l'END...ma vieniii!!!!...)