[VB6] If statement vaag? /noob :|

Pagina: 1
Acties:
  • 124 views sinds 30-01-2008

  • console
  • Registratie: September 2002
  • Nu online
Ej, ik ben met een klein projectje bezig voor me eigen, een prog dat de scores bij houdt voor het darten :P dus vanaf 301/501/701 etc naar benee telt :)

Als eerste gaat het fout met de 'Player' in on load zeg ik dat ie met player 1 moet beginnen dus dat is '1' dat gaat goed maar als ik daarna nog een score toevoeg blijft ie steeds bij player 1 adden :|

Code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Public Sub CmdScoreToevoegen_Click()

' Kijk als de Score veld is ingevuld, zoniet error
If TxtScore.Text = "" Then

    MsgBox "Er is geen score ingevuld!", , "Error #1"
    
Else

' Verander de speler
    If Player = 1 Then

   LblSpelerbeurt.Caption = "" & TxtSpeler1.Text & " is aan de beurt."


        ' Trek de score van de speler eraf
        Speler1Score = Speler1Score - TxtScore.Text

            ' Voeg eerst de Score toe
            LstSpeler1.AddItem Speler1Score

        ' Verander de speler
        Player = 2
    
    Else

        ' Trek de score van de speler eraf
        Speler2Score = Speler2Score - TxtScore.Text
        
        ' Voeg eerst de Score toe
        LstSpeler1.AddItem Speler2Score
    
        ' Verander de speler
        Player = 1

   LblSpelerbeurt.Caption = "" & TxtSpeler2.Text & " is aan de beurt."
                
   End If
   
End If

End Sub

Ja weet ut baggeren code, maar is toch voor me eigen ;)

Ben erug moe, zal misschien wel daardoor komen dat ik het gewoon eff niet meer zie :|

Bvd.

  • ScuL
  • Registratie: Januari 2000
  • Laatst online: 26-08 12:45
Deze If constructie heb ik bij mezelf ook wel eens fout zien gaan.
Probeer het eens met een Select Case

code:
1
2
3
4
5
6
7
8
9
10
Do Until (voorwaarde)
Select Case Player
 Case 1
    doe iets
    Player = 2
 Case 2
    doe wat anders
    Player = 1
End Select
Loop

ProMods ETS2 uitbreiding - Mijn tijdszone is UTC+13


  • abeker
  • Registratie: Mei 2002
  • Laatst online: 07-08 15:52

abeker

...

Je If statement is goed, maar kijk eens in het gedeelte waar je de score voor speler twee wilt toevoegen aan de listview... copy&paste fout zou ik zeggen :)

the less one forgets, the less one remembers


  • console
  • Registratie: September 2002
  • Nu online
abeker schreef op 03 January 2003 @ 23:49:
Je If statement is goed, maar kijk eens in het gedeelte waar je de score voor speler twee wilt toevoegen aan de listview... copy&paste fout zou ik zeggen :)
if statement is niet goed, ook al verander ik het naar LstSpeler2 ( ;) ) dan nog add ie het maar bij 1 persoon :|
-ScuL- schreef op 03 januari 2003 @ 23:46:
Deze If constructie heb ik bij mezelf ook wel eens fout zien gaan.
Probeer het eens met een Select Case

code:
1
2
3
4
5
6
7
8
9
10
Do Until (voorwaarde)
Select Case Player
 Case 1
    doe iets
    Player = 2
 Case 2
    doe wat anders
    Player = 1
End Select
Loop
Waar staat dat Do Until XXX voor? dus de waarde?

ik heb nu dit, maar is niet goed :)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
' Verander de speler
    Select Case Player
    
    Case 1
    
   LblSpelerbeurt.Caption = "" & TxtSpeler1.Text & " is aan de beurt."


        ' Trek de score van de speler eraf
        Speler1Score = Speler1Score - TxtScore.Text

            MsgBox Speler1Score
            

            ' Voeg eerst de Score toe
            LstSpeler1.AddItem Speler1Score

        ' Verander de speler
        Player = 2
    
    Case 2
    
        ' Trek de score van de speler eraf
        Speler2Score = Speler2Score - TxtScore.Text
        
                    MsgBox Speler1Score
        
        ' Voeg eerst de Score toe
        LstSpeler2.AddItem Speler2Score
    
        ' Verander de speler
        Player = 1

   LblSpelerbeurt.Caption = "" & TxtSpeler2.Text & " is aan de beurt."
                
   End Select

[ Voor 65% gewijzigd door console op 04-01-2003 00:12 ]


  • abeker
  • Registratie: Mei 2002
  • Laatst online: 07-08 15:52

abeker

...

die if statement is wel goed, maar je hebt de variabelen niet gedeclareerd waardoor ze iedere keer dat er op een button geklikt gereset worden. Als je Option Explicit bovenin je code had neergezet zou je daar trouwens al achter zijn gekomen....

the less one forgets, the less one remembers


  • ScuL
  • Registratie: Januari 2000
  • Laatst online: 26-08 12:45
Do <> Until wordt gebruikt om een bepaald stuk code net zo lang te laten loopen totdat er aan een voorwaarde wordt voldaan. Het hoeft in jouw programma niet echt gebruikt te worden maar het zou eventueel wel benut kunnen worden. Do Until x = 1 blijft dus net zolang loopen totdat ergens in de code x 1 wordt.

ProMods ETS2 uitbreiding - Mijn tijdszone is UTC+13


  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

Volgens mij gaat het met het schrijven naar je ListView fout, staan de scores van de players naast elkaar?
Want je doet iedere keer een additem, dus iedere keer wordt er een nieuwe rij toegevoegd.

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Zoals abeker al zei, de if statement is gewoon geheel correct het is inderdaad de scope van de variabelen, standaard kennis je kunt het opzoeken, lees eens wat over de scopes van variabelen.

Manual vraagje.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR

Pagina: 1

Dit topic is gesloten.