Archief - [ALG]VB6.0 een paar vraagjes over txtboxen en timers

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Xtralecherus

Legacy Member
hey,

hoe je kun je zorgen dat je geen getallen in kunt geven in een textbox? ik weet wel een manier met if (not) isnumeric enzo maar dat werkt dan weer met msgbox.. dus is het het sneller manier bv gewoonweg geen getal of letter in te typen en ook als er in de txtbox niks instaat en je probeerd hem te bereken dat hij zegt dat het niet gaat als er geen getalllen of tekst in de textboxen is? En ook als bv een berekening wil maken voor inch naar cm doet ik dit best getal x 2,54 of zo ?

Ook nog een andere vraag hoe kan ik met timers een licht laten werken bv een verkeerslicht rood en groen 6s en orangje 2sec.


Thx

Xtralecherus

Legacy Member
ik gebruik enkel visual basic6.0 en ken er nog niet zoveel van.


Private Sub Timer1_Timer()
Timer2.Enabled = False
Timer3.Enabled = False
shapegreen.BackColor = Default
shapeorange.BackColor = Default
shapered.BackColor = vbGreen



End Sub

Private Sub Timer2_Timer()
Timer1.Enabled = False
Timer2.Enabled = True
Timer3.Enabled = False
shapegreen.BackColor = Default
shapeorange.BackColor = vbMagenta
shapered.BackColor = Default


End Sub

Private Sub Timer3_Timer()
Timer1.Enabled = False
Timer2.Enabled = False
Timer3.Enabled = True
shapegreen.BackColor = Default
shapeorange.BackColor = Default
shapered.BackColor = vbRed

End Sub


dit heb ik juist geprobeerd maar werkt dus niet zo goed hij blijft gewoon de timer 1 toestand te behouden timer1 interval staat op 6s timer2 op 8 en timer 3 op 14sec wat u wou doen is groen en rood 6sec elk aan en magenta(orange normale verkeerslichten mja weet geen code voor dit kleur) moet 2sec zijn -> moet natuurlijk overgaan van groen naar orange naar rood moest dit helpen.

R3Deye

Legacy Member
L3ThaL zei:
hoe je kun je zorgen dat je geen getallen in kunt geven in een textbox?

Je kan de textbox "_Change" event gebruiken, elke keer de gebruiker een key indrukt om een letter/symbool/cijfer toetevoegen zal deze geexecuteerd worden, kijk of de nieuwe waarde in de textbox numeric is of niet, indien niet het geval kan je de laatste letter/symbool verwijderen.

Code:
Private Sub Text1_Change()
    If IsNumeric(Text1.Text) = False Then
        If Len(Text1.Text) > 1 Then
            Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)
            Text1.SelStart = Len(Text1.Text)
        Else
            Text1.Text = ""
        End If
    End If
End Sub
note: enige vb6-bug hier is dat IsNumeric() meerder dots "." aanvaard in een waarde, wil je dit niet kan je extra checks toevoegen om bv meerdere dots te elimineren.

L3ThaL zei:
hoe kan ik met timers een licht laten werken bv een verkeerslicht rood en groen 6s en orangje 2sec.

Om de opvul kleur van shapes te veranderen gebruik je .FillColor ipv .BackColor, en zet de .FillStyle op vbSolid.

voeg 3 shapes en 3 timers op je form en geef ze de volgende benaming:
shapered
shapeorange
shapegreen
timer1
timer2
timer3

Form Code:
Code:
Option Explicit

Private Const vbCircle = 3

Private Type TRAFFIC_COLORS
    BLACK As Long
    RED As Long
    ORANGE As Long
    GREEN As Long
End Type
Dim myCLRS As TRAFFIC_COLORS

Private Sub Form_Load()
    
    ' set colors
    myCLRS.BLACK = 0
    myCLRS.RED = RGB(255, 0, 0)
    myCLRS.ORANGE = RGB(255, 175, 0)
    myCLRS.GREEN = RGB(0, 255, 0)
    
    ' set solid fillstyle
    shapered.FillStyle = vbSolid
    shapeorange.FillStyle = vbSolid
    shapegreen.FillStyle = vbSolid
    ' set circle shape
    shapered.Shape = vbCircle
    shapeorange.Shape = vbCircle
    shapegreen.Shape = vbCircle

    Timer1.Interval = 6000  ' red for 6sec
    Timer1.Enabled = False  ' inactive
    
    Timer2.Interval = 2000  ' orange for 2sec
    Timer2.Enabled = False  ' inactive
    
    Timer3.Interval = 6000  ' green for 6sec
    Timer3.Enabled = True   ' active !
    
    shapegreen.FillColor = myCLRS.GREEN ' init state
    
End Sub

Private Sub Timer1_Timer()  ' red

    shapered.FillColor = myCLRS.BLACK     ' after 6sec set to black
    shapegreen.FillColor = myCLRS.GREEN   ' and set to green
    Timer1.Enabled = False  ' stop red
    Timer3.Enabled = True   ' start green
    
End Sub

Private Sub Timer2_Timer()  ' orange

    shapeorange.FillColor = myCLRS.BLACK     ' after 2sec set to black
    shapered.FillColor = myCLRS.RED         ' and set to red
    Timer2.Enabled = False  ' stop orange
    Timer1.Enabled = True   ' start red
    
End Sub

Private Sub Timer3_Timer()  ' green

    shapegreen.FillColor = myCLRS.BLACK     ' after 6sec set to black
    shapeorange.FillColor = myCLRS.ORANGE   ' and set to orange
    Timer3.Enabled = False  ' stop green
    Timer2.Enabled = True   ' start orange
    
End Sub

of download het complete project hier: VB6_traffic_lights.rar
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan