webForumDet fria alternativet

Stoppa LOOP med knapptryck?

.NET

3 svar · 332 visningar · startad av erik_nordell

Medlem sedan aug. 2000431 inlägg
Frågan#1

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!!

Medlem sedan feb. 200060 inlägg
#2

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:<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

Hoppas det här hjälpe dig.

[Redigerat av Stefan den 11 okt 2000]

Medlem sedan aug. 2000431 inlägg
#3

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:<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

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!!

Medlem sedan feb. 200060 inlägg
#4

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.

256 ms totalt · 3 externa anrop · v20260731065814-full.265f3fdd
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)