02/10/07 10:50
francesco rit
Ciao ragazzi,
sapreste dirmi come fare ad interrompere un ciclo manualmente da un Form in VB? Ho provato ad introdurre un controllo pulsante con una variabile di interruzione di ciclo associata ma se ci clicco sopra mentre sta girando l'applicazione va in crash il programma. Sapreste aiutarmi? Grazie a tutti
aaa
02/10/07 12:42
gantonio
Dovresti postare il codice che usi ... e che intendi per "andare in crash" ...
aaa
02/10/07 13:19
francesco rit
Allora il codice del ciclo interessato è il seguente...
Do Until trovato = True
If (Text1.Text = Mid$(Date, 1, 2) And Text2.Text = Mid$(Time, 1, 5)) Then
Do Until TmrReceive.Enabled = False
' ****** lancio il timer ********
Dim via As String
Call TmrReceive_Timer
Call Wait(0.9)
If (Text4.Text = Mid$(Date, 1, 2) And Text3.Text = Mid$(Time, 1, 5)) Then
TmrReceive.Enabled = False
End If
Loop
trovato = True
Else
trovato = False
End If
Loop
Si tratta di un timer che parte all'ora e al giorno fissato in text1 e text2 e si ferma all'ora e al giorno fissato in text3 e text4. Il codice funziona ma il problema è che se voglio interrompere mentre è in esecuzione dal Form non so come fare. Per crash intendo che il programma si impalla e non è più possibile tornare al codice sorgente senza riavviare VB.
Grazie dell'aiuto.
aaa
02/10/07 14:58
gantonio
Fai diverse chiamate a sub che non sono mostrate ... in questo caso e' difficile darti una indicazione precisa ...
In ogni caso, fossi in te, inserirei nel ciclo piu' interno una
DoEvents
per garantire il funzionamento della "message pump" di Windows ...
aaa
04/10/07 12:19
P4p3r0g4
non dovrebbe essere possibile interrompere cicli all'esterno di codice.
se proprio devi interromperlo piuttosto sostituisci il ciclo con un timer "intelligente" (che ti fa da ciclo)
per interromperlo basta disattivarlo.
nel senso che al posto del do loop ci metti un bel timer con intervallo 1.
Ultima modifica effettuata da P4p3r0g4 04/10/07 12:20
aaa