# Tombola Losbox: Weiter mit Button



## Bamboocha_10 (7. Dezember 2007)

Hallo,
also, ich möchte eine Losbox für eine Tombola programmieren. Es sind hier 5 Preise und 10 Lose. Jede Nummer darf nur einmal gezogen werden. Mit Button 1 starte ich das Losen und mit Button 2 soll immer die nächste Nummer erscheinen.

Bisher kann ich auf Button 1 klicken und es erscheint eine Zahl. Klicke ich erneut, kann jedoch die geliche Zahl wieder gezogen werden

Frage 1: Wie schaffe ich es, dass ich Button 2 einbaue, der die Schleife nicht verlässt und sich somit bereits gezogene Zahlen merkt?

Frage 2: Kann ich das Programm als Exe oder ähnliches ablegen, dass es auch auf einem Rechner ohne VB läuft?

Hier der Code:

```
Private Sub CommandButton1_Click()

'Array für die gezogenen Lose
'Anzahl = Anzahl der Preise
Dim Preise(5) As Integer

'Sicherstellen, daß bei jedem Start wirklich
'eine neue Zufallszahl generiert wird
Randomize -Timer

'Insgesamt 5 Zufallszahlen ermitteln (denn Anzahl der Preise
Dim Ziehung As Integer
Dim i As Integer
Dim Result As Boolean
Dim Zahl As Integer

Ziehung = 0
While Ziehung < 5
  Ziehung = Ziehung + 1
  Do
    'Zufallszahl 1 bis Anzahl der Lose
    Zahl = Int(10 * Rnd + 1)

    'Prüfen, ob Zufallszahl bereits "gezogen"
    Result = True
    For i = 1 To Ziehung - 1
      If Preise(i) = Zahl Then
        Result = False: Exit For
      End If
    Next i
  Loop Until Result = True

  Preise(Ziehung) = Zahl
  TextBox1.Text = Preise(Ziehung)
  Wend

End Sub
```

Vielen Dank schon mal


----------



## Alex F. (7. Dezember 2007)

Die Idee ist die gleiche wie hier 

http://www.tutorials.de/forum/visual-basic/296840-lottozahlen-zufallsgenerator.html

bzw. 

http://www.vbarchiv.net/archiv/tipp_details.php?pid=222

Grüsse bb


----------



## Bamboocha_10 (7. Dezember 2007)

ja, da hab ich das ja her. ^^
Nur meine konkrete Frage wird dadurch nicht beantwortet


----------



## Alex F. (7. Dezember 2007)

oh sorry hatte dein Problem nicht ganz verstanden ;-)

also zu 1. Die Werte werden alle in dem Array Preise gespeichert. Wenn diese länger *lebt* also einen anderen Gültigkeitsbereich als die Sub Commandbutton_Click hat würde sich das Programm auch die Zahlen _merken_

zu 2. ja kann man. Wenn du es in eine Exe verpackst so muss meistens noch die vb6runtime ( Laufzeitumgebung für VB Programme mitgeliefert werden) in Excel funktioniert es normalerweise dann immer wenn du Excel installiert hast.

Grüsse bb


----------



## Bamboocha_10 (7. Dezember 2007)

Mh, ich versteh nur Bahnhof.
Zu 1:  dann vermutlich als Public sub ....
         aber wie baue ich das Klicken auf den zweiten Button ein?
Zu 2: wie muss ich das dann speichern oder ablegen?


----------



## ronaldh (7. Dezember 2007)

Hallo,

Du musst die Dimension des Arrays im Modul-/Formkopf vornehmen, dann bleibt der Inhalt auch nach Verlassen der Routine erhalten.

Zu der Exe: Da stellt sich vor allem die Frage, mit welcher VB-Version Du arbeitest. Bei VB6 kannst Du z.B. unter Datei "Projekt.exe... erstellen" eine Exe herstellen.

Grüsse
ronaldh


----------



## Bamboocha_10 (7. Dezember 2007)

Also irgendwie geht das nicht. Ich hab jetzt die Deklaration im Kopf vorgenommen, aber es werden trotzdem teilweise gleiche ausgegeben.

Ich habe VB 6.3


----------



## Wessy (7. Dezember 2007)

Hmm, also ich hab hier VB6 und damit ist das auf jeden Fall kein Problem. Und die EXE-Datei erstellst du über *Datei/Projekt1.exe erstellen...*

Naja, hab das mal in Eigenregie (also nicht dein Beispiel) in VB6 zusammengeferkelt und in die ZIP hier gepackt. Wenn du VB6 hast kannst das Projekt öffnen und wenn nicht, dann startest halt die EXE (ist keine Nikolausüberraschung drin).

Anhang anzeigen Tombola.zip


----------



## Bamboocha_10 (7. Dezember 2007)

Na das ist ja mal toll. Klappt super. Ich installiere mir dann mal noch VB 6 und modifiziere das noch ein bißchen. Wenn du das noch ein bißchen nett animierst (Die gerade geloste Zahl groß und farbig darstellen usw), kannst du das gut im Net verkaufen. Gibt nämlich nur eine "LosFee" und die kostet 25 Euro. ^^
Wenn du das wirklich anbieten willst, kannst du noch den Fehler abfangen: Es gibt mehr Preise als Lose.

Hehe, vielleicht sollte ich Tester werden.
Danke jedenfalls.


----------



## Wessy (8. Dezember 2007)

Danke für die Blumen. Schön das es gefällt. Man kann das natürlich noch mit Videos animieren oder z.B. die Losnummern schön in Direct3D animieren und den Gewinner dann hierrüber mit Fanfaren-Sounds gratulieren (z.B. wenn man das ganze per Beamer zeigt). Ja ja ich spinne mir hier schon wieder einen zurecht. War ja nicht mal sicher ob damit alles so einigermaßen abgedeckt ist was du brauchtest. Vielleicht setze ich mich noch mal in Ruhe hin und schreib ein ordentliches Programm dafür. Dann meld ich mich hier noch mal.

Also wenn's brauchbar ist, viel Spass damit.


----------



## Bamboocha_10 (8. Dezember 2007)

Ja, wie gesagt. Ist super. Ich änder gerad noch Kleinigkeiten, da es über einen Beamer laufen soll. Setelle zb. die gerade gezogene Nummer in einem extra großen Textfeld dar. 
am 22.12. muss ich es erst fertig haben. Was noch schön wär, ist eine animierte losbox als gif oder so davor zu stellen und das los zeihen dann 5 sec zu verzögern, in denen sich die box dreht. jaaaa, da kann man viel rumspielen


----------



## Bamboocha_10 (27. April 2008)

Hallo noch mal
ich hab das Programm nun schon einmal zur Weihnachtsfeier verwendet. Will es auch noch mal nutzen. Aber das mit Grafiken (zb. durchlaufenden Losnummern oder so) zu animieren wär ja super.

@Wessy, du hast das nicht zufällig noch mal nachträglich hinzugefügt?


----------



## Wessy (27. April 2008)

Hallo Bamboocha,

leider nicht. Wenn ich Zeit hätte würd ich dir das gern noch eben machen. Arbeite aber gerade an ein paar anderen Sachen. Vielleicht könnte das ja jemand anderes hier im Forum eben machen


----------



## Bamboocha_10 (27. April 2008)

Schade eigentlich. Ich hab sowas noch nie gemacht und hab im Moment so gar keine Zeit mir das anzueignen. Ich brauch das schon am Herrentag


----------

