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 - Interruzione della sub con procedura ottimizzata
Forum - Visual Basic 6 - Interruzione della sub con procedura ottimizzata

Avatar
dylan666 (Normal User)
Pro


Messaggi: 129
Iscritto: 08/09/2009

Segnala al moderatore
Postato alle 12:35
Giovedì, 28/10/2010
Ciao a tutti, anche grazie al vostro aiuto tempo fa risolsi il problema di dover interrompere una serie di operazioni utilizzando una variabile e un bottone.

All'inizio è dichiarata una variabile boleana settata su False che chiameremo "Ferma".
In pratica tra una operazione e l'altra c'è un controllo della variabile e se la variabile è settata su "True" viene eseguito un "Exit Sub"

Un bottone chiamato "Stop" serve appunto a impostare su True la variabile.

Nel mio caso le operazioni tra le quali effettuare la verifica sono tante... e vorrei evitare di mettere tra ciascuna di esse la famosa parte

Codice sorgente - presumibilmente VB.NET

  1. If Ferma = True Then
  2. Exit Sub
  3. End If



Come posso ottimizzare il codice in maniera da ridurre al minimo la ripetizione di righe uguali?

Grazie del supporto che mi darete

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 15:47
Giovedì, 28/10/2010
quali operazioni?
Mostra il codice che usi

PM Quote
Avatar
dylan666 (Normal User)
Pro


Messaggi: 129
Iscritto: 08/09/2009

Segnala al moderatore
Postato alle 16:44
Giovedì, 28/10/2010
Testo quotato

Postato originariamente da GrG:

quali operazioni?
Mostra il codice che usi



Si parla di cicli

Codice sorgente - presumibilmente VB.NET

  1. Dim Ferma As Boolean
  2.  
  3. Private Sub Form_Load()
  4. Ferma = False
  5. End Sub
  6.  
  7. Private Sub Command1_Click()
  8. For a = 0 To 100000
  9. DoEvents
  10.     If Ferma = True Then Exit Sub
  11.         Text1.Text = a
  12.     Next a
  13.  
  14. For b = 0 To 100000
  15. DoEvents
  16.     If Ferma = True Then Exit Sub
  17.         Text2.Text = b
  18.     Next b
  19.  
  20. For c = 0 To 100000
  21. DoEvents
  22.     If Ferma = True Then Exit Sub
  23.         Text3.Text = c
  24.     Next c
  25.  
  26. For d = 0 To 100000
  27. DoEvents
  28.     If Ferma = True Then Exit Sub
  29.         Text4.Text = d
  30.     Next d
  31. End Sub
  32.  
  33. Private Sub btnSTOP_Click()
  34.     Ferma = True
  35. End Sub


PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 15:04
Venerdì, 29/10/2010
ma che scopo tutti questi cicli O.o?
cmq non si può risparmiare più di tanto, al massimo puoi accoriciare la riga:
If Ferma = True Then Exit Sub

creando una sub...

private sub stop()
    If Ferma = True Then Exit Sub
end sub

così risparmi qualche carattere... scrivendo semplicemente:
call stop


PM Quote
Avatar
dylan666 (Normal User)
Pro


Messaggi: 129
Iscritto: 08/09/2009

Segnala al moderatore
Postato alle 16:42
Venerdì, 29/10/2010
Testo quotato

Postato originariamente da GrG:
al massimo puoi accoriciare la riga:
If Ferma = True Then Exit Sub

creando una sub...

private sub stop()
    If Ferma = True Then Exit Sub
end sub

così risparmi qualche carattere... scrivendo semplicemente:
call stop




Ma in quel modo non esco dalla Sub chiamata "Stop" inceve che da quella dove ho messo il call?

PM Quote