Newsgroup: it.comp.lang.visual-basic
Titolo: Bottone Pausa

Devo inserire un bottone pausa nel mio programma. Potrei scrivere la
funzione:
Private Sub pausa(n)
  Dim S
  S = Timer
  Do While Timer < S + n
  DoEvents
  Loop
 End Sub
Oppure usare Sleep(20000)
Pero' in tutti e due i casi devo inserire il numero di secondi che voglio
stare in pausa. Invece io vorrei un bottone che resta in pausa fino a quando
non premo un altro bottone .
Qualche idea?
Grazie
ciao
Chiara

 Qualche idea?
Option Explicit
Private bInPausa As Boolean
Private Sub Command1_Click()
  DoEvents
  Me.Command1.Enabled = False
  Me.Command2.Enabled = True
  Me.MousePointer = vbHourglass
  bInPausa = True
  Do While bInPausa = True
    DoEvents
  Loop
  Me.MousePointer = vbDefault
  Me.Command2.Enabled = False
  Me.Command1.Enabled = True
End Sub
Private Sub Command2_Click()
  DoEvents
  bInPausa = False
End Sub
Private Sub Form_Load()
  bInPausa = False
  Me.Command1.Enabled = True
  Me.Command2.Enabled = False
End Sub
Private Sub Form_Unload( _
  ByRef Cancel As Integer)
  If bInPausa = True Then
    Beep
    Cancel = True
  End If
End Sub
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------

 Qualche idea?
dim pausapulsante
pausapulsante = true 'nell'evento click del pulsante
 Private Sub pausa(n)
   Do While pausapulsante
    DoEvents
   Loop
'riattiva button :))
 End Sub
 Private Sub pulsante-disabilitazione-pausa_click
  pausapulsante = false
 End Sub
non ho provato ma dovrebbe funzionare :))
se percaso ci sono errori te lo provo...
ciao

   Loop
E il processore va in fuorigiri ;)

 E il processore va in fuorigiri ;)
    E tu mi batti in testa. ;)
    Ma... era solo un esempio!... Per "dimostrare" l'interruzione di un
ciclo al variare del valore di una variabile esterna al ciclo stesso. Ci
sara' ben qualcosa da fare in mezzo a quel ciclo? O no? Mi sa che hai
ragione: e se mi prende alla lettera l'esempio?... Brr... Facciamo cosi',
faccio ammenda con un altro mio esempio meno tirato via:
http://groups.google.com/groups?hl=it&lr=&ie=UTF8&oe=UTF8&threadm=8v1d5v%243
dkoj%243%
40ID-52090.news.dfncis.de
&rnum=8&prev=/groups%3Fas_q%3Dtimer%26ie%3
DUTF8%26oe%3DUTF8%26as_uauthors%3Dmaurizio%2520borrelli%26lr%3D%26num%3D100%
26as_scoring%3Dd%26hl%3Dit
    Non l'ho riletto quindi spero funzioni ancora. :)
    Che ne dici? Hai voglia di stupirci con qualcosa di meglio? Magari
qualche buon link, se non hai tempo. Penso farebbe piacere a tutti in quanto
e' un argomento sul quale ogni tanto fa sempre bene tornare.


 Ci sara' ben qualcosa da fare in mezzo a quel ciclo? O no?
Se c'è qualcosa in mezzo che pausa è? :)
Boh, forse non ho capito la domanda... o le risposte :)
Ciao

 Boh, forse non ho capito la domanda... o le risposte :)
infatti.....
se tu da una funzione ne chiami un altra in loop tale funzione rimane in
pausa... :))
il doevents permette appunto ai pulsanti a riprestinare la regolare
procedura della funzione,richiesto appunto da chiara :))
ps.   e con questa siamo a 2 thread in discussione...
aspe che ti cerco su altri :)))))
ciao

 Ma la domanda non era come mettere in pausa un ciclo?
    Infatti. Credo d'aver risposto con il codice del link. Sbaglio?


 ps.   e con questa siamo a 2 thread in discussione...
??? Per così poco? :)
Ciao

 di friggere il processore :)
giustamente è uno spreco di risorse però dovresti dare un metodo migliore e
non dire solamente che non va bene.Si potrebbe uscire dalla funzione e
memorizzare i dati in qualche modo ma non sempre questo è consigliabile.
ciao :)))))))

 memorizzare i dati in qualche modo ma non sempre questo è consigliabile.
Io sto dicendo che la domanda e le risposte non concordano.
Fornirò del codice solo quando la domanda sarà chiarita, su richiesta e se
sarò in grado: se non capisco la domanda (visto che le risposte sono
forvianti e in disaccordo con la domanda stessa IMHO) non mi ci metto
neanche.
Magari la domanda è solo malposta e quello che avete suggerito va bene (con
un DoEvents? In un Loop? Dubito :)) oppure a Chiara va bene ugualmente così
(mi chiedo cosa succede se (possibile grazie al DoEvents) viene richiamata
ancora la funzione in pausa).
--
EOF = True

 forvianti e in disaccordo con la domanda stessa IMHO) non mi ci metto
di nuovo....ma che fuorvianti se è stato  esplicitamente chiesto come uscire
da un loop.Guarda che puo usare la pausa anche solo per un piccolo periodo
di tempo ,ci potrebbero essere  mille possibilità che  non conosciamo del
programma .Il perchè usi una cosa del genere riguarda solo il programmatore
visto che si è limitata a chiedere del loop.
ma poi non capisco perchè ti devi ostinare così tanto nel dare un parere
contrario senza motivi validi in aggiunta.Questo non lo dico solo in
occasione di questo messaggio ,ma spesos mi capita di leggere risposte (non
solo da parte tua ) che hanno solo l'intento di criticare e di non dare
nessuna informazione utile.
Siamo qui per discurtere e magari imparare qualcosa non per criticare
inutilmente
ciao :)

 fraintendere .......
Earridaje con questo loop!
Riportami la frase, io non la trovo. :)
NON E' STATO CHIESTO COME USCIRE DA UN LOOP MA COME INTRODURRE UNA PAUSA.
Se volgiamo interpretare liberamente la domanda è un discorso diverso.
Ciao

 non premo un altro bottone .
in questa parte specifica che vuole un bottone per fermare il loop di pausa
:)))
è ovvio che di certezze non ce ne sono si cerca di interpretare quanto è
possibile :))
visto che ci siamo aggiungo una cosa che forse potrebbe stressare meno il
sistema :))
 Do While var-di-stop
   DoEvents
   sleep(3000)
  Loop
  End Sub
in questo modo riattiva l'interfaccia ogni 3 secondi e dovrebbe portar via
meno risorse con la possibilità di riattivare la funzione
ciao