Bilder aus Resources in mehreren Pictureboxen mittels Zufall

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von Otti.

    Bilder aus Resources in mehreren Pictureboxen mittels Zufall

    Ich möchte nicht lange drum rum reden.
    Mein Problem erklört sich ja schon fast im Titel.
    Ich möchte in neun verschiedenen Pictureboxen jeweils eins, der 6 Bilder aus den Resourcen laden, per Zufall/Random.
    Prinzipell hab ich es geschafft, denk mir nur das es auch einfacher geht.
    Hier mal mein Code, wobei ich diesen für alle neun Pictureboxen neu anweden muss

    VB.NET-Quellcode

    1. Dim BildNr As Integer = rn.Next(0, 6)
    2. Select Case BildNr
    3. Case (0)
    4. PictureBox1.Image = My.Resources.bar1fach
    5. Case (1)
    6. PictureBox1.Image = My.Resources.bar3fach
    7. Case (2)
    8. PictureBox1.Image = My.Resources.glocke
    9. Case (3)
    10. PictureBox1.Image = My.Resources.goldene_sieben
    11. Case (4)
    12. PictureBox1.Image = My.Resources.jackpot
    13. Case (5)
    14. PictureBox1.Image = My.Resources.kirsche
    15. End Select


    Wer von euch hat eine bessere Idee um alles ein wenig, für insg. 9 Boxen einzukürtzen....

    Danke Euch im Vorraus
    Pack die Bilder in ein Array und weise dann einfach so zu:
    pb.Image = images(rnd.Next(0,images.Length))
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais
    @Plexian
    Hey, danke für deine schnelle Antwort, bin noch nicht der Profi, daher muss ich gestehen das ich mit dem Code nicht so ganz viel anfangen kann.

    Meinst du so:

    Quellcode

    1. Dim pic() As Image = {My.Resources.bar1fach, My.Resources.bar3fach, My.Resources.glocke}
    2. Dim rnd As Random
    3. PictureBoxSpecial.Image = pic(rnd.Next(0, pic.Length))



    ​Danke habs hinbekommen...

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Otti“ ()

    Otti schrieb:

    Danke habs hinbekommen
    Glaube ich nicht.
    Du solltest den Zufallsgenerator genau ein Mal pro Programm starten.
    Lösch diese Zeile:

    VB.NET-Quellcode

    1. Dim rnd As Random

    und pack folgende Zeile in die Klasse:

    VB.NET-Quellcode

    1. Private rnd As New Random

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Guten Morgen die Leute

    Nachdem ich das eine Problem, dann doch gelöst habe stehe ich vor einem neuen :)

    Da ich nun meine PicBoxen so habe wie geplant, möchte ich auch die PicBoxen abfragen ob dort die selben Bilder angezeigt werden.
    Es klappt einfach nicht.

    Lade die Bilder per Zufall:

    Quellcode

    1. Private Sub Start_Click(sender As System.Object, e As System.EventArgs) Handles Start.Click
    2. Pic1.Image = bilder(rn.Next(0, bilder.Length))


    Bei der Abfrage scheitert es....

    Quellcode

    1. Private Sub TimerVergleich_Tick(sender As System.Object, e As System.EventArgs) Handles TimerVergleich.Tick
    2. Pic1.Image and pic2.Image = Pic3.Image then


    Wer ist so nett und kann mir nochmal einen Tipp bzw. Anregung für doofe geben.
    Danke Euch im Vorraus
    Du kannst als Tag der PictureBoxen bspw. die Zahl bzw. den Namen deines Bildes eintragen wenn du die Random setzt.
    Dann vergleichst du die Tags miteinander und weist somit ob es die selben Bilder sind oder nicht.
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    ich würd sagen, erstmal vb.net - Syntax lernen

    Otti schrieb:

    VB.NET-Quellcode

    1. Pic1.Image and pic2.Image = Pic3.Image then
    Das ist kein Code, das ist garnix (oder allenfalls ein dadaistisches Gedicht) ;)

    Dann tut sich die Frage auf, warum du die Bilder nu vergleichen will.
    Willst du verhindern, dass 2 PicBoxen dasselbe Bild anzeigen? Da würde man ganz anders vorgehen - das würde man gleich bei der Verteilung der Bilder regeln.
    Ich denke das war ehr als Kommentar gemeint, dass er an genau dieser Stelle nicht weiß wie er die PictureBoxen vergleicht. ^^

    Oder wenn es tatsächlich Code hätte sein sollen, dann bitte das Nächste mal >> ' << verwenden und nur erläutern was passieren soll.
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    @Otti Stimme Arc0most zu, bis auf das ich das nicht in die Tag-Property reinpacken würde, sondern in ne extra Variable.
    Bei dir verkehrt sind zwei Dinge:
    1. If Pic1.Image and pic2.Image = Pic3.Image then das funktioniert nicht. If-Konstrukte erwarten Wahrheitswerte (true / false) als Bedingung. Und mit And kannst du zwei Wahrheitswerte nach ner bestimmten Regel verknüpfen (true and true = true, rest false). Du kannst aber nicht zwei Images mit And verknüpfen. Was du wolltest ist ​If Pic1.Image = Pic3.Image AndAlso pic2.Image = Pic3.Image then. Beachte außerdem, dass ich AndAlso anstatt And verwende, genau genommen ist AndAlso nämlich die short-circuit Variante davon.
    2. Du fragst das ganze in einem Timer ab. Ergibt keinen Sinn, da du selbst weißt, wann das Bild geändert wird, und du dann darauf auch reagieren solltest.
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais
    @Plexian wieso eine Variable?
    Wie meinst du das ? Per Tag ist der Wert sofort an die PicBox gebunden was doch fürs Verständnis viel logischer ist.
    Erläuter mal deine Idee ;)
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    @Arc0most Ich mag die Property einfach nicht. Vom Typ Object, keine Ahnung wofür die gedacht ist, ich meide sie einfach (brauche sie sowieso nie aber naja), das ist eher Geschmack :D
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais