C++ Windows Forms .png bei bestimmter Position einfügen beim Drücken von Button?



  • Hi, bin neu dabei C++ zu Lernen.

    Nach mittlerweile mehreren Stunden Recherche qualmt mir etwas die Birne ^^...

    Ich hoffe jemand versteht mein Problem das da wäre:

    Ich würde gerne einen Lottogenerator basteln, der Grafisch so aussieht wie ein Lottoschein/Eurolotto-Schein (Die Grafiken habe ich bereits eingebaut und nicht das Problem).

    Unter einem Lotto-Feld habe ich nen Button gemacht, der beim drücken dieses Buttons auf dem Lotto-Feld zufällig generierte Zahlen (z.B. von 1-49)in form eines X anzeigen soll, und dies auch auf der entsprechenden Position des Feldes Anzeigt.
    Das soll quasi so aussehen als wenn man den Schein per Hand angekreuzt hat.

    Der Zahlengenerator an sich sollte kein Problem darstellen, dafür gibts mehr als genug Tutorials....

    Ich würde gerne wissen wie man nun bei entsprechend generierter Zahl eine Grafik auf bestimmter Position einfügen kann.

    Danke schonmal im vorraus 🙂



  • Erstens: Falsches Forum, vielleicht? Windows Forms impliziert C++.NET, nicht C++.
    Zweitens:

    waynee schrieb:

    Ich würde gerne wissen wie man nun bei entsprechend generierter Zahl eine Grafik auf bestimmter Position einfügen kann.

    Also: du hast dir jetzt ein paar Zahlen generiert, und jetzt möchtest du, das, wenn auf einem Feld eine gezogene Lottozahl darstellt wird, dieses entsprechend markiert wird, korrekt?

    In dem Fall: Alle Zahlenfelder durchgehen, prüfen, ob es in deinen Zufallszahlen das Feld gibt, wenn ja, entsprechend markieren, und fertig ist die Laube. Die Zahlenfelder baust du dir am Besten in einem Array, auf die Elemente kannst du dann ganz leicht zugreifen, wenn du das Feld markieren willst.



  • Ganz genau. Das mit den Arrays ist ne gute Idee und hat sofort funktioniert, danke.

    Jetzt noch eine Sache:

    mir werden jetzt 5 Zahlen von 1-50 ausgegeben. Wie kann ich den Abgleich machen, damit an der richtigen Stelle auch das "X" auftaucht zum ankreuzen der Zahl die mir generiert wurde?

    Zb.

    if Zahl = 33

    then do "richtige"pictureBox1->Image = Image::FromFile("/pfad.../bild.png");

    Nur korrekt übersetzt in C++ Sprache 😛

    Danke.



  • waynee schrieb:

    mir werden jetzt 5 Zahlen von 1-50 ausgegeben. Wie kann ich den Abgleich machen, damit an der richtigen Stelle auch das "X" auftaucht zum ankreuzen der Zahl die mir generiert wurde?

    Du hast jetzt doch die Elemente in dem Array gesichert? Die Zufallszahlen kannst du als Index verwenden, um auf das Elementearray zuzugreifen, damit hast du dann praktisch die Stelle, an der das X erscheinen muss. WIE du die Felder markierst, damit kann ich dir auch nicht helfen. Aber jedes Element hat ja eine Position und eine Größe, die du abfragen kannst. Wenn du da also roh was zeichnest, dann brauchst du wahrscheinlich die Position und die Größe.



  • Okay ich hätte da noch 2 sachen:

    für die Zahlen 1-50 auf jedem Feld eine PictureBox.
    Bei entsprechender Zahl wird auf dieser Box ein X erscheinen.

    1.Nachdem ich einmal 5 Zahlen generiert habe und mir auch schon die "X" angezeigt werden, würde ich gern beim 2. mal Drücken des Buttons einen Reset machen, sodass der Vorgang quasi jedesmal aufs neue Wiederholt wird.

    2.Kann ich dieser PictureBox[1-50] auch einen Array geben?

    der Code sieht akuell so aus :

    int zahlen[6];
    
    		srand(time(NULL));
    
    		int los = rand() % 50 + 1;
    
    		for (int a = 1; a < 6; a++)
    		{
    			zahlen[a] = los;
    			los = rand() % 50 + 1;
    
    			if (los == 1)
    			{
    
    				pictureBox1->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 2)
    			{
    
    				pictureBox2->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 3)
    			{
    
    				pictureBox3->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 4)
    			{
    
    				pictureBox4->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 5)
    			{
    
    				pictureBox5->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 6)
    			{
    
    				pictureBox6->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 7)
    			{
    
    				pictureBox7->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 8)
    			{
    
    				pictureBox8->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 9)
    			{
    
    				pictureBox9->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 10)
    			{
    
    				pictureBox10->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 11)
    			{
    
    				pictureBox11->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 12)
    			{
    
    				pictureBox12->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 13)
    			{
    
    				pictureBox13->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 14)
    			{
    
    				pictureBox14->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 15)
    			{
    
    				pictureBox15->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 16)
    			{
    
    				pictureBox16->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 17)
    			{
    
    				pictureBox17->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 18)
    			{
    
    				pictureBox18->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 19)
    			{
    
    				pictureBox19->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 20)
    			{
    
    				pictureBox20->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 21)
    			{
    
    				pictureBox21->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 22)
    			{
    
    				pictureBox22->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 23)
    			{
    
    				pictureBox23->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 24)
    			{
    
    				pictureBox24->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 25)
    			{
    
    				pictureBox25->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 26)
    			{
    
    				pictureBox26->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 27)
    			{
    
    				pictureBox27->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 28)
    			{
    
    				pictureBox28->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 29)
    			{
    
    				pictureBox29->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 30)
    			{
    
    				pictureBox30->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 31)
    			{
    
    				pictureBox31->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 32)
    			{
    
    				pictureBox32->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 33)
    			{
    
    				pictureBox33->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 34)
    			{
    
    				pictureBox34->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 35)
    			{
    
    				pictureBox35->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 36)
    			{
    
    				pictureBox36->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 37)
    			{
    
    				pictureBox37->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 38)
    			{
    
    				pictureBox38->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 39)
    			{
    
    				pictureBox39->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 40)
    			{
    
    				pictureBox40->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 41)
    			{
    
    				pictureBox41->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 42)
    			{
    
    				pictureBox42->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 43)
    			{
    
    				pictureBox43->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 44)
    			{
    
    				pictureBox44->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 45)
    			{
    
    				pictureBox45->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 46)
    			{
    
    				pictureBox46->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 47)
    			{
    
    				pictureBox47->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 48)
    			{
    
    				pictureBox48->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 49)
    			{
    
    				pictureBox49->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    			if (los == 50)
    			{
    
    				pictureBox50->Image = Image::FromFile("/Users/waynee/Desktop/zahlengeneratorX.png");
    			}
    		}
    


  • Sry für Doppelpost, bin nicht Registriert.

    Hier ein Bildchen zur veranschaulichung:

    http://imgur.com/a/Q5SkQ



  • Boah ey, gut, dass Deine Lotterie nur 50 Zahlen hat ...

    Pack Deine Pictureboxen auch in ein Array:

    PictureBox picBox[50]

    fülle das entsprechend und dann:

    los = rand ...

    picBox[los]->Image = ...



  • waynee schrieb:

    Hi, bin neu dabei C++ zu Lernen.

    Ich gebe dir einen guten Rat: Lerne entweder .Net mit C# oder C++ ohne .Net. Von C++ CLI und wie auch immer die Varianten heißen kann ich nur abraten.

    Siehe auch https://www.c-plusplus.net/forum/263084



  • Moin,

    Pack Deine Pictureboxen auch in ein Array:

    PictureBox picBox[50]

    fülle das entsprechend und dann:

    Kannst du das vllt ein bischen näher Erleutern wie ich ne Picbox zu nem Array machen kann? Ich kapiers net so ganz.

    Danke 🙂



  • waynee schrieb:

    Kannst du das vllt ein bischen näher Erleutern wie ich ne Picbox zu nem Array machen kann? Ich kapiers net so ganz.

    Eine Picturebox kannst du nicht zu einem Array machen, was du aber kannst ist deine Referenzen auf deine Pictureboxen in einem Array unterzubringen um später die einheitliche Behandlung über eine Schleife bzw. über Indexzugriff zu realisieren.


Anmelden zum Antworten