Stop met rekenen

Status
Niet open voor verdere reacties.

LuckyFm

Gebruiker
Lid geworden
3 feb 2015
Berichten
91
Hallo,
voor mijn scorebord zit ik met het volgende probleem,
met deze code:
Case vbKeyNumpad0
Me.Txt_CarAct1.Value = Me.Txt_CarAct1.Value + 1
Me.Txt_Car1.Value = Me.Txt_Car1.Value + 1
Me.Txt_Nog1.Value = Me.Txt_Make1.Value - Me.Txt_Car1.Value
Me.Car1 = Me.Txt_Car1
If (Txt_CarAct1 Is Me.ActiveControl) Then
Me.Txt_CarAct1.SelStart = 0
Me.Txt_CarAct1.SelStart = Me.Txt_CarAct1.SelLength
End If
KeyCode = 1
End Select
telt mijn scorebord voor elke druk op "0" een punt op bij het totaal (dat werkt prima) maar nu mijn probleem.

Ik zou graag willen weten hoe ik bij het behalen van een bepaalde veldwaarde b.v. Txt_Make1 = 45 de bovenstaande code moet stoppen met tellen nu gaat het gewoon verder naar 46 - 47 enz bij elke klik op "0"
natuurlijk is het zo dat je zelf moet stoppen met op "0" drukken maar sommige mensen zijn weleens een beetje afgeleid en zitten niet echt op te letten achter mijn scorebord :P

Graag hulp ik kom er niet uit keycode = 0 helpt niet gaat gewoon door

alvast bedankt
 
Na wat gepuzzel mijn probleem toch weten te verhelpen.
Zal niet helemaal netjes geprogrammeerd zijn maar het werkt:

Case vbKeyNumpad0
If Me.Txt_Car1 = Me.Txt_Make1 Then
Me.Txt_CarAct1 = Me.Txt_CarAct1 + 0
Me.Txt_Car1 = Me.Txt_Car1 + 0
Else
If Me.Txt_Car1 < Me.Txt_Make1 Then
Me.Txt_CarAct1.Value = Me.Txt_CarAct1.Value + 1
Me.Txt_Car1.Value = Me.Txt_Car1.Value + 1
Me.Txt_Nog1.Value = Me.Txt_Make1.Value - Me.Txt_Car1.Value
Me.Car1 = Me.Txt_Car1
End If
End If
If (Txt_CarAct1 Is Me.ActiveControl) Then
Me.Txt_CarAct1.SelStart = 0
Me.Txt_CarAct1.SelStart = Me.Txt_CarAct1.SelLength
End If
KeyCode = 1
End Select

Probleem is dus verholpen
 
Wat de logica is van: drukken op de knop 0 en dan de waarde in een tekstveld verhogen met 1 is mij volstrekt onduidelijk, en vermoedelijk wil ik dat niet eens weten; ik ben opgegroeid met de wetenschap dat 12+0 als uitkomst 12 heeft, en dat wil ik graag zo houden :). Maar je check en logica (ach, in jouw voorbeeldje doet logica er toch al weinig toe ;) )kan natuurlijk een stuk handiger:
Code:
    Case vbKeyNumpad0
        If Me.Txt_CarAct1 < Txt_Make1 Then
            Me.Txt_CarAct1.Value = Me.Txt_CarAct1.Value + 1
            Me.Txt_Car1.Value = Me.Txt_Car1.Value + 1
            Me.Txt_Nog1.Value = Me.Txt_Make1.Value - Me.Txt_Car1.Value
            Me.Car1 = Me.Txt_Car1
            If (Txt_CarAct1 Is Me.ActiveControl) Then
                Me.Txt_CarAct1.SelStart = 0
                Me.Txt_CarAct1.SelStart = Me.Txt_CarAct1.SelLength
            End If
            KeyCode = 1
        Else
            Exit Sub
        End If
 
Handigheid is niet te koop

Allereerst bedankt voor je reactie.

De logica van op 0 drukken is volkomen willekeurig kan in feite elke toets zijn het idee is dat wanneer een speler een punt maakt dat punt op het scorebord wordt bij geteld en een speler kan meerdere punten per beurt maken.
Om onduidelijkheid van het aantal gemaakte punten, per beurt, achteraf te voorkomen wordt elk punt direct genoteerd.
CarAct1 is niet meer dan het aantal punten van speler in in een beurt waarna met dmax de hoogste waarde van CarAct1 wordt opgehaald, als hoogste serie van de betreffende speler.
Theoretisch is het mogelijk dat een speler in een beurt zijn benodigde punten behaald maar dat gebeurt zelden dus zal CarAct "nooit" gelijk zijn aan Txt_make.
Het geen ik wilde bereiken is als b.v. speler 1 45 (Txt_Make1) punten nodig heeft het scorebord stopt met verder tellen, zelfs wanneer degene die het scorebord bediend even niet zit op te letten :P

Verder alleen nog de opmerking dat ik slechts een amateur ben op het gebied van "programmeren" een leuke doe het zelver en niets meer dan dat.
Dus dat het er niet allemaal even gelikt uitziet snap ik maar het functioneert en daar ben ik best wel een beetje trots op.
 
Ik zou dan op die knop een + zetten, en geen 0. Gewoon omdat logica zo'n leuk ding is :). Uiteraard mag (nee: moet) je trots zijn op projecten die werken; het geeft behoorlijk voldoening als iets dat je zelf hebt gemaakt nog werkt ook :D.
 
+ of 0

Dat had ik ook bedacht en in eerste instantie ook zo gemaakt maar op het nummerieke toetsenbord zitten + en enter te dicht bij elkaar.
Gevolg met regelmaat werd er een enter getoetst waar een + nodig was en na enter is echt de volgende speler aan de beurt.
De logica is helemaal goed en die deel ik ook maar voor de bediening van het scorebord gebruiken wij een los numeriek toetsenbord en was de + toets toch niet echt handig.:p
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan