For..Next simuleren dmv select case

Status
Niet open voor verdere reacties.

Twanneke

Gebruiker
Lid geworden
9 okt 2007
Berichten
6
Hellup!
Ik moet in een oefening een For..next loop simuleren dmv Select case.
Ik kan hiervoor 2 variabelen gebruiken, bijv: Stap en Lus

Nou heb ik een form met daarop 4 labels en een next button.
Wanneer ik de button aanklik moet eerst label1 geel worden, dan 2 enz.
Tot en met label 4 moet er in label2 de text "i =1"staan.
Na label 4 moet label1 weer geel worden en label2.text "i=2".
Dit moet zo doorgaan tm label2.text "i=3"

Ik heb nu al vanalles geprobeerd maar ik kom er niet uit.
Welke waarde geef je bijv aan de variabelen?

Alvast bedankt!
 
als dit voor school is, moet je eerst ff de regeltjes doorlezen, dat schijnt niet te mogen, ofzo.
Anyway:

loop:
Code:
Dim i as integer
i = 0
for i = 0 to 10
msgbox i
next i
Select case:
Code:
Dim s as string
s = "hallo"
select case s
case "hallo"
msgbox "1"
case "doei"
msgbox "2"
end select

ik snap je probleem niet helemaal, maar wil je zoiets?
Code:
Select case i
case "0"
label1.backcolor = vbRed
i = i + 1
case "1"
label2.backcolor = vbred
i = i + 1
case "2"
(...)

end select


ps. zip anders je prog, en stuur het mee, of geef de code die je al hebt tussen [ CODE ] tags
 
Je kan de variabele 'stap' gebruiken om te onthouden waar je bent, en welke label je wilt kleuren. Ieder keer als je op Next klikt, kun je 'stap' eentje ophogen, totdat je bij vier want daarna begin je opnieuw met 1.

Noot 1: Om te kunnen onthouden waar je bent moet je 'Static Stap As Integer' i.p.v. 'Dim Stap As Integer' anders wordt Stap iedere keer weer op 0 gezet.
Noot 2: Onthoud ook de oorspronkelijke achtergrondkleur om de gele labels weer normaal te krijgen.

Bijvoorbeeld:
Code:
Private Sub CommandButton1_Click()
    Static Stap As Integer
    Static lOrgAchtergrondkleur as long

    Select Case Stap
        Case 0
            Stap = 1
            lOrgAchtergrondkleur = Label1.BackColor
            Label1.BackColor = vbYellow
        Case 1
            Stap = 2
            Label1.BackColor = lOrgAchtergrondkleur
            Label2.BackColor = vbYellow
        Case 2
            Stap = 3
            Label2.BackColor = lOrgAchtergrondkleur
            Label3.BackColor = vbYellow
        Case 3
            Stap = 4
            Label3.BackColor = lOrgAchtergrondkleur
            Label4.BackColor = vbYellow
        Case 4
            Stap = 1
            Label4.BackColor = lOrgAchtergrondkleur
            Label1.BackColor = vbYellow
    End Select
End Sub

Succes!
 
En voor de label caption:
Code:
Private Sub CommandButton1_Click()
    Static Stap As Integer
    Static Lus As Integer
    
    Select Case Stap
        Case 0
            'Nog geen enkele label is geel gekleurd...
            Stap = 1
            Label1.BackColor = vbYellow
        Case 1
            Stap = 2
            Label1.BackColor = Label2.BackColor
            Label2.BackColor = vbYellow
        Case 2
            Stap = 3
            Label2.BackColor = Label3.BackColor
            Label3.BackColor = vbYellow
        
        Case 3
            Stap = 4
            Label3.BackColor = Label4.BackColor
            Label4.BackColor = vbYellow
        
        Case 4
            Stap = 1
            Label4.BackColor = Label1.BackColor
            Label1.BackColor = vbYellow
            
            Lus = Lus + 1
            If Lus = 4 Then Lus = 1 'klopt dit met je opdracht???
    End Select
    
    'Geef in de labels aan hoever ik ben.
    Label1.Caption = "i = " & Lus
    Label2.Caption = "i = " & Lus
    Label3.Caption = "i = " & Lus
    Label4.Caption = "i = " & Lus
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan