Vinnaren i pepparkakshustävlingen!
2007-10-09, 15:46
  #1
Medlem
Hej
Jag behöver hjälp med en uppgift i VB.net som jag har fastnat på. Programmet ska visa 3 olika "smilies", en åt gången med ett intervall på 0,7 sekunder. Jag har gjort 4st PictureBox:ar, 3st med de smilies som ska visas, och en tom. Under timern (som är enabled, interval 700) har jag skrivit:

For i = 0 To 2
If i = 0 Then
PictureBox1.Image = PictureBox2.Image
ElseIf i = 1 Then
PictureBox1.Image = PictureBox3.Image
ElseIf i = 2 Then
PictureBox1.Image = PictureBox4.Image
End If
Next i

Längst upp har jag delklarerat i;

Dim i As Integer = 0

Någon som kan hjälpa mig att göra det rätt? När jag startar programmet så visas PictureBox 4 direkt, det verkar som intervallet på dom andra är 0..
/Qunic
Citera
2007-10-10, 23:37
  #2
Medlem
nkwtms avatar
Det som händer är följande:

Timern går triggas (alltså 700ms har gått)
i blir 0
bild 0 visas
i blir 1
bild 1 visas
i blir 2
bild 2 visas
End sub

Alltså hinner du inte med att se bild 0 och 1.

Det du måste göra är följande:

För att underlätta kodningen döper du om dina 3 bilder till samma namn, så att dom heter typ picBild eller nåt, då kommer dom att få olika index, kontrollera propertyn Index, bild 0 ska ha 0 i index, 1 ska ha 1 och 2 ska ha 2.

Bilden som ska visa smilien i slutändan döper du till typ picSmilie eller nåt

Deklarera "i" som global (alltså inte i Timer1_Timer() eller vad den nu heter.

Koden i Timer1_Timer() ska se ut så här:

i = i + 1
if i = 3 then
i = 0
end if

picSmilie.Picture = picBild(i)
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback