PDA

View Full Version : Stoppa LOOP med knapptryck?


erik_nordell
2000-10-09, 16:01
Håller på med ett litet spel...
Har en loop med en bilds posision i:

do until bild.top = 0 or KNAPP TRYCK?
bild.top = bild.top - 10
loop

Alltså jag vill att den slutar LOOPA när jag ex trycker på x

------------------
Erki
http://www.tapiren.net - Din Community på Internet!!

Stefan
2000-10-11, 17:29
En lösning är att använda en global variabel. Det är ett måste att ha med DoEvents i lopen annars kan inte Command2_Click() rutinen ändra värdet på den globala variabeln.

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:[/kod]<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">Private gLoopBreak as Boolean

Do Until bild.Top = 0 Or gLoopBreak = True
DoEvents
bild.Top = bild.Top - 1
Loop

Private Sub Command1_Click()
gLoopBreak = True
End Sub[/kod]

Hoppas det här hjälpe dig.

[Redigerat av Stefan den 11 okt 2000]

erik_nordell
2000-10-13, 15:36
Hee..
tack så mycket...
Men det funkar inte?!?

Nu ser koden ut så här;:

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:[/kod]<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
Private Sub Command2_Click()
gLoopBreak = True

End Sub


Private Sub Command1_Click()
Do Until bild.Top <= 0 Or gLoopBreak = True

DoEvents
bild.Top = bild.Top - 1
Loop
End Sub
[/kod]

Kunde ej få in Private gLoopBreak as Boolean...
Då blev det fel???

Hur ska jag göra?

------------------
Erki
http://www.tapiren.net - Din Community på Internet!!

Stefan
2000-10-15, 19:29
Deklarationen av gLoopBreak ska ligga i General Declarations. Den ska inte ligga i någon funktion eller sub.

Detta gör att den är åtkommligt från alla funktioner/subs i formuläret.