cbcup (Normal User)
Newbie
Messaggi: 17
Iscritto: 12/10/2010
|
Salve, sto provando a creare un piccolo programma con più timer molto semplice, ho bisogno di creare un pulsante con comando del tipo "Me.Close()" che fermi un qualsiasi ciclo senza che però mi butti fuori dal programma. Girovagando tra i vari programmi di utility ho trovato come pausare e resettare un ciclo ma non qualcosa che somigli al tasto "Panic" che operi sul programma stesso a prescindere da quale ciclo sia in esecuzione. Prima di chiedere aiuto ho sbattuto la testa fino a farmi venire l'emicrania, datemi un moment!
Grazie, Carlo.
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Perché non esegui tutto in un thread diverso? In questo modo potresti killare o sospendere il thread senza uscire dall'applicazione.
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
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
|
|
|
Ultimo (Member)
Guru
Messaggi: 877
Iscritto: 22/05/2010
|
Un Timer lo puoi stoppare, con Me.TimerPippo.Stop e lo fai ripartire con
Me.TimerPippo.Start.
If ok Then GOTO Avanza else GOTO Inizia
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Postato originariamente da cbcup:
Ciao Totem, ciao Ultimo.
Spiego cosa vorrei fare, devo comandare una stupidissima scheda I/O con 8 relè che temporizzo come un comune semaforo con più tempi richiamati da altrettanti pulsanti. Il problema nasce quando, prevedendo che chi utilizzerà questa apparecchiatura, potrebbe sbagliare pulsante e, volendo corregersi, deve bloccare la procedura e premere il tasto giusto. Dato che sono previste otto tempistiche differenti e volendo lasciare il programma il più possibile facile da modificare pensavo di non nidificare le procedure. Ho provato con comandi del tipo "Dispose" ma non ho trovato nulla come "Start - Stop" che possa "Resettare" ed uscire dalla procedura. Sono alle primissime armi con il VB e mi piace questa sfida, ho anche vari PLC con relativo programmatore ma non voglio arrendermi. A proposito esiste ancora il "Go To"? |
Exit Sub esce da una procedura, Dispose non è un comando, e Start e Stop ri riferiscono ad un timer, mentre io ti avevo suggerito un thread. Di tutto questo, la situazione è poco chiara senza il codice.
P.S.: GoTo è supportato, ma non consigliato. |
|
cbcup (Normal User)
Newbie
Messaggi: 17
Iscritto: 12/10/2010
|
Postato originariamente da Ultimo:
Un Timer lo puoi stoppare, con Me.TimerPippo.Stop e lo fai ripartire con
Me.TimerPippo.Start. |
OK! questo è il primo passo e mi aiuta molto, devo solo adattarlo. Se riesco a resettare tutti i timer contemporaneamente dovrebbe funzionare come "Panic"
Grazie.
|
|
cbcup (Normal User)
Newbie
Messaggi: 17
Iscritto: 12/10/2010
|
E no, proprio non trovo un comando semplice ed efficace per stoppare l'intero programma senza uscirne. Ok continuo a sbatterci la testa, prima o poi ne verrò a capo.
|
|
Ultimo (Member)
Guru
Messaggi: 877
Iscritto: 22/05/2010
|
Inserisci il codice completo quì con un (copia e incolla) tra i tag code.
If ok Then GOTO Avanza else GOTO Inizia
|
|
cbcup (Normal User)
Newbie
Messaggi: 17
Iscritto: 12/10/2010
|
Ciao Totem, ciao Ultimo.
Spiego cosa vorrei fare, devo comandare una stupidissima scheda I/O con 8 relè che temporizzo come un comune semaforo con più tempi richiamati da altrettanti pulsanti. Il problema nasce quando, prevedendo che chi utilizzerà questa apparecchiatura, potrebbe sbagliare pulsante e, volendo corregersi, deve bloccare la procedura e premere il tasto giusto. Dato che sono previste otto tempistiche differenti e volendo lasciare il programma il più possibile facile da modificare pensavo di non nidificare le procedure. Ho provato con comandi del tipo "Dispose" ma non ho trovato nulla come "Start - Stop" che possa "Resettare" ed uscire dalla procedura. Sono alle primissime armi con il VB e mi piace questa sfida, ho anche vari PLC con relativo programmatore ma non voglio arrendermi. A proposito esiste ancora il "Go To"?
|
|