Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - aiuto
Forum - Visual Basic 6 - aiuto

Avatar
164750 (Normal User)
Newbie


Messaggi: 1
Iscritto: 05/06/2008

Segnala al moderatore
Postato alle 23:46
Giovedì, 05/06/2008
non so come ho fatto ma quando premo la X per chiudere il programma, il prog. scompare ma non si chiude.

PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 0:10
Venerdì, 06/06/2008
un modo per fare ciò può essere:
Codice sorgente - presumibilmente Visual Basic 6

  1. Private sun Form_unload(cancel as integer)
  2. cancel=1
  3. me.visible=false



vedi se cè qlc di simile nel codice

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 8:21
Venerdì, 06/06/2008
Anche a me a volte accade...
Questo penso sia dovuto xkè il progr quando lo chiudi ancora sta elaborando dei dati e cosi nn si chiude. per farlo kiude termina il processo così:

Codice sorgente - presumibilmente VB.NET

  1. Function TerminaProcesso(NomeProcesso As String)
  2. On error resume next
  3.    For Each Processo In GetObject("winmgmts:").InstancesOf("win32_process")
  4.        If Processo.Name = NomeProcesso Then Processo.Terminate
  5.    Next
  6. End Function
  7. Private Sub Form_Unload(cancel as integer)
  8. TerminaProcesso "Nome programma.exe"
  9. End Sub


Ultima modifica effettuata da GrG il 06/06/2008 alle 8:22
PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 10:02
Venerdì, 06/06/2008
Ma no Gregorio ... quel rimedio e' peggiore del male ...

Se rimane il processo e' perche' c'e' ancora qualche oggetto istanziato e non rilasciato. Il metodo corretto e' trovare questo oggetto e distruggerlo nella unload.

Per capire cosa succede e perche' succede, si dovrebbe sapere di piu' del programma percheì nella richiesta non c'e' molto ...

Ad esempio, bisogna capire se accede ai dati e se accede se usa DAO o ADO, bisogna sapere se utilizza oggetti di terze parti o istanzia Word o Excel ... e altro ancora ...

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 15:47
Venerdì, 06/06/2008
Testo quotato

Postato originariamente da gantonio:

Ma no Gregorio ... quel rimedio e' peggiore del male ...


LOL scusa... Ma che danni potrebbe creare?
Testo quotato

Postato originariamente da gantonio:
Se rimane il processo e' perche' c'e' ancora qualche oggetto istanziato e non rilasciato. Il metodo corretto e' trovare questo oggetto e distruggerlo nella unload.


Come si fa per "distruggerlo"?

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 19:51
Venerdì, 06/06/2008
Testo quotato

Postato originariamente da GrG:LOL scusa... Ma che danni potrebbe creare?



Se termini un processo in maniera "bruta" (con la Terminate), questo non potra' concludere correttamente i propri compiti in "uscita" e puo' perdere dati che avrebbe dovuto salvare ...

Testo quotato


Come si fa per "distruggerlo"?



Bisogna prima capire, leggendo il codice, di cosa si tratta ...

PM Quote
Avatar
TSP (Ex-Member)
Pro


Messaggi: 99
Iscritto: 17/03/2008

Segnala al moderatore
Postato alle 18:35
Sabato, 07/06/2008
forse dico una cosa banale, che poi magari banale non è: hai fatto l'unload di tutte le form??...

io per sicurezza metterei nel form unload della form in cui premi la x che prima dicevi:

Codice sorgente - presumibilmente Plain Text

  1. unload nomedellaform
  2. unload nomedellaform2
  3. unload nomedellaform3



ecc... con tutte le form.

PM Quote