VB spielt verrückt

Mailyn

Erfahrenes Mitglied
Hi,

Ich kann mir diesen Fehler einfach nicht erklären!

Da ich das Problem nur schwer in Worte fassen kann, habe ich ein kurzes Beispiel hochgeladen!

(Will es trotzdem mal versuchen in Worte zu fassen:

Code:
Private Sub Form_Load()
 
Label1.Caption = "1"
Label2.Caption = "20"
 
End Sub
 
 
Private Sub Timer1_Timer() 'Interval = 100
 
If Label1.Caption < Label2.Caption Then
Label1.Caption = Label1.Caption + 1
Else
Timer1.Enabled = False
End If
 
End Sub

zählt er für Label1 nur bis "4" und stoppt dann!

Kennt ihr den Fehler


MfG
Mailyn
 

Anhänge

  • Test.zip
    1,3 KB · Aufrufe: 14
VB spielt nicht verrückt, du willst nur 2 Strings miteinander vergleichen. Da für VB der String "4" größer ist als "30" (er vergleicht nur Zeichen gleicher Länge, d.H. VB schneidet intern beim zweiten String die überzähligen Teile weg), stoppt er halt.

Zur Lösung gäbe es zwei Möglichkeiten:

1) Du verwendest beim prüfen statt "<" besser "<>", VB wird jetzt so lang zählen, bis beide Strings gleich sind.

2) Du wandelst deine Strings in Zahlen um (entweder mit Val() oder eine Konverterfunktion ala CInt(), CLng() usw.). Die Abfrage würde also so aussehen:
Code:
If Val(Label1.Caption) < Val(Label2.Caption) Then


Der Doc!
 
Zurück