Gå til innhold

Label til å telle til 255


Anbefalte innlegg

Private Sub cmd_pluss_Click()
 Select Case lblRed
 Case 0 To 255
   lblRed.Caption = lblRed.Caption + 1
     If lblRed.Caption = 256 Then
       lblRed.Caption = "MAX"
     End If
 Case Else
   lblRed.Caption = "MAX"
 End Select
End Sub

 

Hva er grunnen til at lblRed blir 1...2...3...MAX??

skjønner ikke hvorfor den ikke teller til 255 først! :cry:

Lenke til kommentar
Videoannonse
Annonse

Det funker hvis du skriver:

Private Sub cmd_pluss_Click()

Select Case val(lblRed)
Case 0 To 255
  lblRed.Caption = lblRed.Caption + 1
    If lblRed.Caption = 256 Then
      lblRed.Caption = "MAX"
    End If
Case Else
  lblRed.Caption = "MAX"
End Select

End Sub

 

Men hvorfor det funker opp til 3, og så ikke funker lenger var litt merkelig... :hmm:

Lenke til kommentar

tusen takk! :) men da har jeg samme problemet som jeg fikk før (en gang :p )

at når det står MAX der, og jeg trykker på + så får jeg feil i " lblRed.Caption = lblRed.Caption + 1"-linja! prøvde å sette

  Case Max
  lblRed.Caption = "MAX"

så den ikke skulle fortsette med løkka over når den hadde skrevet MAX! men det gjorde den tydeligvis alikevell, og jeg får feilmld! :(

noen som veit hvordan jeg kan løse detta?

Lenke til kommentar

Det er temmelig mange feil i koden, de fleste består i av at du blander integer med strings, det er ikke måten å gjøre det på.

 

Alltid skriv egenskapen du bruke, lblRed er et objekt, ikke en verdi.

256 er et tall, ikke en string.

lblRed.Caption er en string, ikke et tall.

Select case er unødvendig da det kun er en case.

If val(lblRed.Caption) < 256
 lblRed.Caption = Val(lblRed.Caption) + 1
Else
 lblRed.Caption = "MAX"
End If

Lenke til kommentar

jævli vannskelig detta skulle være da! :mad:

Private Sub cmd_pluss_Blue_Click()
If lblRed.Caption = "MAX" Then Exit Sub

If Val(lblBlue.Caption) < 255 And Not lblBlue.Caption = "MAX" Then
lblBlue.Caption = Val(lblBlue.Caption) + 1
Else
lblBlue.Caption = "MAX"
End If
lblFarge.BackColor = RGB(0, 0, lblBlue)
End Sub

får 255, og jeg for max OG jeg får Type mismatch! hvas er galt?

PS: debug'n sier det er lblFarge.back... som er feil!

Lenke til kommentar

Hvorfor ikke bare bruke en variabel til å holde verdien?

 

Private Sub cmd_pluss_Click()

   Static Counter As Byte
   
   If Counter = 255 Then
       lblRed.Caption = "MAX"
   Else
       Counter = Counter + 1
       lblRed.Caption = Counter
   End If

End Sub

Lenke til kommentar
jævli vannskelig detta skulle være da!  :mad:

Private Sub cmd_pluss_Blue_Click()
If lblRed.Caption = "MAX" Then Exit Sub

If Val(lblBlue.Caption) < 255 And Not lblBlue.Caption = "MAX" Then
lblBlue.Caption = Val(lblBlue.Caption) + 1
Else
lblBlue.Caption = "MAX"
End If
lblFarge.BackColor = RGB(0, 0, lblBlue)
End Sub

får 255, og jeg for max OG jeg får Type mismatch! hvas er galt?

PS: debug'n sier det er lblFarge.back... som er feil!

If lblRed.Caption = "MAX" Then Exit Sub

Skal vell være lblblue. Siden det er cmd_pluss_Blue_click du jobber med.

lblFarge.BackColor = RGB(0, 0, lblBlue)

Er poenget her at du skal hardkode de to først verdiene og en variabel 3. verdi, eller at alle verdiene skal kunne endres?

Jeg antar at RGB tar tallverdier som parameter og ikke tekststrenger. Sitter ikke med VB og kan ikke få sjekket.

Forøvrig er lblblue et objekt og ikke en verdi. Derfor får du "type mismatch". Prøv med dette siden .caption innholder verdien du er interresert i.

Static LBLBlueValue As Byte
If lblBlue.caption="MAX" then
    LblBlueValue = 255
Else
    LblBlueValue = val(lblBlue.caption)
End if

lblFarge.BackColor = RGB(0,0, lblBlueValue)

Regner med at du ser hvor det skal inn.

 

Hvis du skal justere for alle fargene må du ha tilsvarende snutter for de to siste fargene.

 

Jeg vil anbefale deg å lese litt om forskjellen på tallverdier (integer, double, single...) og tekststrenger (string, char) samt objekter. Man kan ikke blande de forskjellige typene og heller ikke kjøre mattematiske funksjoner på en tekst/objekt. Dette finnes i hjelpfunksjone for vb, office, Microstation, osv...

 

De to siste bruker basic som macro språk.

 

Lykke til videre

Endret av dr.Sjur
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...