PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zähler problemchen? VB 2008



Tyc0rc
08.10.2008, 23:50
Hmm folgener code scheint nicht sauber zu laufen.
beim start der anwendung blebt das programm hängen.
es handelt sich um einen simplen PW generator


Timer1 :


Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

Dim a As Integer
Dim b As String
Static x As Integer

"Der Fehler muss irgendwo hier sein
x = x + 1

Do Until x = 4
a = Int((Rnd() * 1) * 27)

If a = 1 Then b = "a"
If a = 2 Then b = "b"
If a = 3 Then b = "c"
If a = 4 Then b = "d"
If a = 5 Then b = "e"
If a = 6 Then b = "f"
If a = 7 Then b = "g"
If a = 8 Then b = "h"
If a = 9 Then b = "i"
If a = 10 Then b = "j"
If a = 11 Then b = "k"
If a = 12 Then b = "l"
If a = 13 Then b = "m"
If a = 14 Then b = "n"
If a = 15 Then b = "o"
If a = 16 Then b = "p"
If a = 17 Then b = "q"
If a = 18 Then b = "r"
If a = 19 Then b = "s"
If a = 21 Then b = "t"
If a = 22 Then b = "u"
If a = 23 Then b = "v"
If a = 24 Then b = "w"
If a = 25 Then b = "x"
If a = 26 Then b = "y"
If a = 27 Then b = "z"
Loop

TextBox1.Text = TextBox1.Text + b

End Sub


hmm kann einer das prob erkennen? :S

Steiger_mp
09.10.2008, 00:01
In delphi müsste man für x nen startwert setzen.

karamble
09.10.2008, 00:08
ich würd auch sagen kein startwert

Zwerch
09.10.2008, 00:19
Static x As Integer = 0

Probier mal, habs aber nich getestet...

MfG

Zwerch

the|eddy
09.10.2008, 01:27
alsi ch noch VB gemacht hab, war die source ohne schleife doppelt so lang! und warum


x= x - 1

?

und warum steht dein code in einem timer? wenn es ein Timer gibt, muss es auch einen Click dingends geben. weis nicht mehr wie es heisst. aufjedenfall zum auslösen.

poste mal die GANZE source

Breeze
09.10.2008, 01:37
code zwar in delphi, aber ich tu mein bestes :D

wie gesagt scheint kein start-wert für x gesetzt zu sein, darum geht x=x+1 net
noch was: kommt am ende für b nicht nur ein Buchstabe raus? weil du bei jedem loop ein Buchstaben zuweist, nicht hizufügst?

Tyc0rc
09.10.2008, 01:44
alsi ch noch VB gemacht hab, war die source ohne schleife doppelt so lang! und warum


x= x - 1

?

und warum steht dein code in einem timer? wenn es ein Timer gibt, muss es auch einen Click dingends geben. weis nicht mehr wie es heisst. aufjedenfall zum auslösen.

poste mal die GANZE source

das ganze steht in nem timer um ne kleine animation zu erzeugen :P


hmm.. das was ich geschriben hab ist absoluter bullshit... -.-"

ich habs nu ander versucht zu lösen...
aner es funtz immer noch nicht... kann sich wer die source ma ansehen?




Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Timer1.Enabled = True
TextBox1.Text = ""
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Button1.Text = "Generieren!"
Button2.Text = "Stop!"
Timer1.Interval = "1"
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Timer1.Enabled = False

End Sub

Private Sub Generate()


End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

Dim a As Integer
Dim b As String
Static x As Integer

x = x + 1
If x = TextBox2.Text Then
Timer1.Enabled = False
End If

a = Int((Rnd() * 1) * 27)

If a = 1 Then b = "a"
If a = 2 Then b = "b"
If a = 3 Then b = "c"
If a = 4 Then b = "d"
If a = 5 Then b = "e"
If a = 6 Then b = "f"
If a = 7 Then b = "g"
If a = 8 Then b = "h"
If a = 9 Then b = "i"
If a = 10 Then b = "j"
If a = 11 Then b = "k"
If a = 12 Then b = "l"
If a = 13 Then b = "m"
If a = 14 Then b = "n"
If a = 15 Then b = "o"
If a = 16 Then b = "p"
If a = 17 Then b = "q"
If a = 18 Then b = "r"
If a = 19 Then b = "s"
If a = 21 Then b = "t"
If a = 22 Then b = "u"
If a = 23 Then b = "v"
If a = 24 Then b = "w"
If a = 25 Then b = "x"
If a = 26 Then b = "y"
If a = 27 Then b = "z"


TextBox1.Text = TextBox1.Text + b

End Sub
End Class

xProNova
01.11.2008, 20:39
Kein Wunder.
.Net kann keine Zahl zu sich selbst addieren, wenn es die Zahl nicht kennt :)
x += 1
sollte funktionieren, wenn nicht dann geb ihm den Startwert 0