Lottozähler in Visual Basic

...komplette Frage anzeigen

2 Antworten

So in etwa würde ich es machen. Achtung, die untersten drei Zeilen sind eine extra Funktion. Die müssen natürlich außerhalb der Prozedur sein, die alles andere macht. Man kann das ganze natürlich auch noch etwas eleganter lösen.

Dim Testzahl As Integer
Dim x As Integer, y As Integer
Dim TestOK As Boolean

For x = 1 To 6
    If x > 1 Then
        Do Until TestOK = True
            Testzahl = genZahl
            TestOK = True
            For y = 1 To x - 1
                If Me("TextBox" & y).Text = Testzahl Then
                    TestOK = False
                End If
            Next y
        Loop
    Else
        Testzahl = genZahl
        TestOK = True
    End If

    Me("TextBox" & x).Text = Testzahl
Next x

Private Function genZahl() As Integer
genZahl = Int((49) * Rnd() * 1)
End Function

Da es ein Text ist, solltest Du es in einen String convertieren:

TextBox1.Text = CStr(Int((49) * Rnd()))

für die anderen Textboxen (sinngemäß):

temp = CStr(Int((49) * Rnd()))

while (temp == TextBox1.Text)

{

     temp = CStr(Int((49) * Rnd()))

}

TextBox2.Text = temp

und so weiter:

while ((temp == TextBox1.Text) or (temp == TextBox2.Text))

while ((temp == TextBox1.Text) or (temp == TextBox2.Text) or (temp == TextBox3Text) )

...

BeagleDag 29.04.2013, 14:42

vielen Dank für deine Antwort , werde es direkt nachher ausprobieren ;)

0
CrystalixXx 29.04.2013, 15:32

Der Programmcode ist alles andere als elegant, wodurch der von "daCypher" bevorzugt werden sollte. Selbst wenn dieser - wie er selbst erwähnt - verbessert werden könnte.

0

Was möchtest Du wissen?