RuZleBIFf Skrevet 26. oktober 2004 Del Skrevet 26. oktober 2004 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! Lenke til kommentar
OCSpro Skrevet 26. oktober 2004 Del Skrevet 26. oktober 2004 kunne du laste opp prosjektet? Lenke til kommentar
RuZleBIFf Skrevet 26. oktober 2004 Forfatter Del Skrevet 26. oktober 2004 burde vel være mulig det! til255.zip Lenke til kommentar
Vain Skrevet 26. oktober 2004 Del Skrevet 26. oktober 2004 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... Lenke til kommentar
RuZleBIFf Skrevet 26. oktober 2004 Forfatter Del Skrevet 26. oktober 2004 tusen takk! men da har jeg samme problemet som jeg fikk før (en gang ) 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
Vain Skrevet 26. oktober 2004 Del Skrevet 26. oktober 2004 Private Sub cmd_pluss_Click() If 0 <= Val(lblRed) And Val(lblRed) <= 254 Then lblRed.Caption = lblRed.Caption + 1 Else lblRed.Caption = "MAX" End If End Sub Vet ikke hvordan du skal gjøre det med en "select case" da, men har er et annet forslag Lenke til kommentar
RuZleBIFf Skrevet 26. oktober 2004 Forfatter Del Skrevet 26. oktober 2004 får faan meg "Type mismatch." da og jeg! BÆSJ! Lenke til kommentar
GeirGrusom Skrevet 26. oktober 2004 Del Skrevet 26. oktober 2004 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
Vain Skrevet 26. oktober 2004 Del Skrevet 26. oktober 2004 Den koden vil begynne å telle på nytt igjen når du får "max" fordi val(max) = 0 If val(lblRed.Caption) < 256 and not lblred.caption = "MAX" then lblRed.Caption = Val(lblRed.Caption) + 1 Else lblRed.Caption = "MAX" End If Lenke til kommentar
GeirGrusom Skrevet 26. oktober 2004 Del Skrevet 26. oktober 2004 If lblRed.Caption = "MAX" Then Exit Sub If val(lblRed.Caption) < 256 and not lblred.caption = "MAX" then lblRed.Caption = Val(lblRed.Caption) + 1 Else lblRed.Caption = "MAX" End If Ikke noe stort problem Lenke til kommentar
RuZleBIFf Skrevet 26. oktober 2004 Forfatter Del Skrevet 26. oktober 2004 jævli vannskelig detta skulle være da! 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
OofMan Skrevet 26. oktober 2004 Del Skrevet 26. oktober 2004 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
dr.Sjur Skrevet 27. oktober 2004 Del Skrevet 27. oktober 2004 (endret) jævli vannskelig detta skulle være da! 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 27. oktober 2004 av dr.Sjur Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå