Jag har en funktion som använder sig av en timer som räknar ner ett visst antal sekunder, och när tiden är ute utförs ett par saker. Gör ett annat tangenttryck som kallar på en annan funktion och låt denna funktion sätta en global variabel till ett visst värde (exempelvis: bCancel = TRUE). Så låter du bara funktionen som timern startar kolla det här värdet först, innan den sätter igång. Är bCancel TRUE så gör den inte sitt jobb. Det avbryter väl inte funktionen, utan istället hindrar den från att köras, eller? Det är en mycket orimlig handling att avbryta en funktion som körs. Ger närmast en spaghettikod. Det finns inget bra sätt att lösa det på. jag förklarade lite dåligt dim bolStopTimer as booleanAvbryta händelser
Jag kallar på funktionen med ett tangent-tryck.
Jag vill kunna avbryta allt som händer och ska hända i den funktionen, efter att jag har kallat på den.
Hur?
Ex: jag trycker på tangenten som kallar på funktionen, timern aktiveras, efter en stund kommer jag på att jag inte ville det, då vill jag kunna avbryta timern och skippa allt som ska hända därefter.
tydligt och klart? :)Sv: Avbryta händelser
Sv: Avbryta händelser
Sv: Avbryta händelser
Två hyggliga alternativ: Kör på Thomas idé (använd doevents inuti din loop) eller kör ett visst antal snurror och kör sedan om funktionen.Sv: Avbryta händelser
min "timer" är en funktion som pausar programmet, inget annat
<code>
Public Function Wait(time)
Current = Timer
Do While Timer - Current < Val(time)
DoEvents
Loop
End Function
</code>
i mitt program använder jag Wait() med ett par minuters tid. och under dessa 2 minuter kan jag varken avbryta "nedräkningen" (eller starta om den, vilket jag i och för sig inte vill göra möjligt)
det är alltså detta jag vill lösa på något vis.Sv: Avbryta händelser
Public Function Wait(time)
Current = Timer
Do While Timer - Current < Val(time) and not bolStopTimer
DoEvents
Loop
bolStopTimer = false
End Function
bolStopTimer = true 'stoppar timern