cbcup (Normal User)
Newbie
Messaggi: 17
Iscritto: 12/10/2010
|
Allego il file txt con il codice. Vi prego di tener conto che è solo una settimana che approccio a VB e quello che sapevo di basic risale ai primi anni 80.
|
|
cbcup (Normal User)
Newbie
Messaggi: 17
Iscritto: 12/10/2010
|
Postato originariamente da cbcup:
Allego il file txt con il codice.... |
OPSSS devo specificare che "Bottone" è proprietario della scheda e che instrada i comandi su porta com4 (in questo caso) e che i timer sono alcuni da 1000ms ed altri da 500ms.
Ciao, Carlo. |
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Ahhh i miei occhi!!
Ma... dove sarebbe la sub da interrompere?
|
|
cbcup (Normal User)
Newbie
Messaggi: 17
Iscritto: 12/10/2010
|
Scommetto che avevi le lacrime agli occhi...
E va bene, due risate ogni tanto ci vogliono.
Non c'è nessun sub da interrompere, c'è da fermare un qualsiasi timer stia girando con un unico tasto.
Ho provato con Me.TimerX1-2-3...stop ma quando ne avvio nuovamente uno, questo non parte. dove sbaglio? E poi avrai notato che vi sono due timer piuttosto lunghi, se durante lo svolgimento della prima parte volessi saltare alla seconda parte esiste un metodo? Mi basta un "La" e mi arrangio, anche perché intuisco che se risolvo il primo mi vien facile risolvere il secondo quesito con un semplice tasto che fermi il timer e che ne avvii un secondo identico ma della metà... o no? Ho la molecola cerebrale in ebollizione.
Comunque sia, mi sto' divertendo!
Grazie, Carlo.
|
|
Ultimo (Member)
Guru
Messaggi: 877
Iscritto: 22/05/2010
|
Allora inserisci una variabile booleana a livello globale, nella parte iniziale
delle dichiarazioni in questo modo:
Dim Consenso as boolean = True
tutti i timer e i pulsanti dovranno sottostare al Consenso, se true ok,
se false nisba, e in ogni timer inserirai un codice di controllo che se
Consenso sarà false manderà lo stesso timer in stop, stessa cosa per
i pulsanti se Consenso è false non eseguiranno nulla.
Nel pulsante Panic inserisci questo codice :
If Consenso = True Then
Consenso = False
Else
Consenso = True
End if
Se un Timer non riparte vuol dire che una condizione iniziale non
è stata ripristinata, quindi quando stoppi un Timer devi ripristinare
anche le condizioni iniziali.
If ok Then GOTO Avanza else GOTO Inizia
|
|
cbcup (Normal User)
Newbie
Messaggi: 17
Iscritto: 12/10/2010
|
Postato originariamente da Il Totem:
Basta enumerare i timer e fermarli tutti:
Codice sorgente - presumibilmente VB.NET |
For Each Ctrl As Control In Me.Controls If TypeOf Ctrl Is Timer Then DirectCast(Ctrl, Timer).Stop() End If Next
|
|
Già con la prima risposta hai risolto molto, mi sono buttato ad imparare meglio le "dichiarazioni" e , adattando un pochino le tue istruzioni, ho migliorato il programma.
Appena ho cinque minuti mi studio la seconda risposta perchè, prima di utilizzarla, la devo capire, a cinquantun'anni la molecola cerebrale ha i suoi temi.
Grazie, Carlo.
Ultima modifica effettuata da cbcup il 20/10/2010 alle 11:35 |
|
cbcup (Normal User)
Newbie
Messaggi: 17
Iscritto: 12/10/2010
|
Ok ragazzi ed il "Panic" è andato...
Però non capisco come mai oltre lo "Start" lo "Stop" il "False" ed il "True" non abbiano pensato ad un "Reset".
Ultimo, hai detto: "Se un Timer non riparte vuol dire che una condizione iniziale non
è stata ripristinata, quindi quando stoppi un Timer devi ripristinare
anche le condizioni iniziali." ok! Ma le ho provate tutte, ho provato a ripristinare sia la sequenza con "true", sia il contasecondi con =X. Ho scaricato decine di demo e letto quello che trovavo sia in Inglese che in tedesco ma proprio non capisco. Infatti spesso non ricevo messaggi d'errore ed il tasto eseque il comando ma alla fine, se riavvio il timer, questo riparte da dove lo avevo stoppato. Sinceramente non capisco.
Carlo.
|
|
Ultimo (Member)
Guru
Messaggi: 877
Iscritto: 22/05/2010
|
Postato originariamente da cbcup:
Ok ragazzi ed il "Panic" è andato...
Però non capisco come mai oltre lo "Start" lo "Stop" il "False" ed il "True" non abbiano pensato ad un "Reset".
Ultimo, hai detto: "Se un Timer non riparte vuol dire che una condizione iniziale non
è stata ripristinata, quindi quando stoppi un Timer devi ripristinare
anche le condizioni iniziali." ok! Ma le ho provate tutte, ho provato a ripristinare sia la sequenza con "true", sia il contasecondi con =X. Ho scaricato decine di demo e letto quello che trovavo sia in Inglese che in tedesco ma proprio non capisco. Infatti spesso non ricevo messaggi d'errore ed il tasto eseque il comando ma alla fine, se riavvio il timer, questo riparte da dove lo avevo stoppato. Sinceramente non capisco.
Carlo. |
Potresti inserire un Pulsante che esegue un Reset, solo quando
Consenso = False, quindi :
If Consenso = False Then
' Quì inserirai i parametri con i valori iniziali
' per esempio :
sirena1 = False
Label1.Text = ""
' tutti i parametri li riporti al loro stato iniziale.
End if
If ok Then GOTO Avanza else GOTO Inizia
|
|