c++ reset PictureBox
Ostatnio zmodyfikowano 2016-03-19 18:48
qscefb Temat założony przez niniejszego użytkownika |
c++ reset PictureBox » 2016-03-19 17:00:12 Witam, Zacząłem się bawić troche z windows form w c++ i mam pewien problem, tworze program który losuje 2 liczby i użytkownik wpisuje wynik. Liczby są losowane z przedziału 0-5, chciałbym aby po wylosowaniu liczb po wciśnięcu przycisku button2 pokazały się obrazki - tyle ile jest liczb tyle pokazuje się obrazków( z patyczkami). Problem polega na tym że po pierwszym pokazaniu obrazki się nie ksuja i w nastepnym losowaniu jesli liczba jest wieksza to obrazek zostaje oddany a jeśli mniejsza to już obrazki nie znikają. Jak zrobić aby po wciśnięciu przycisku nastąpił reset i usunięcie poprzednich obrazków? Kod pewnie mozna było zrobić lepiej ale nie wiem jak więc zrobiłem tak:
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { if (liczba1 == 0) { } if (liczba1 == 1) { picture11->Visible = true; } if (liczba1 == 2) { picture11->Visible = true; picture12->Visible = true; } if (liczba1 == 3) { picture11->Visible = true; picture12->Visible = true; picture13->Visible = true; } if (liczba1 == 4) { picture11->Visible = true; picture12->Visible = true; picture13->Visible = true; picture14->Visible = true; } if (liczba1 == 5) { picture11->Visible = true; picture12->Visible = true; picture13->Visible = true; picture14->Visible = true; picture15->Visible = true; } if (liczba2 == 0) { } if (liczba2 == 1) { picture21->Visible = true; } if (liczba2 == 2) { picture21->Visible = true; picture22->Visible = true; } if (liczba2 == 3) { picture21->Visible = true; picture22->Visible = true; picture23->Visible = true; } if (liczba2 == 4) { picture21->Visible = true; picture22->Visible = true; picture23->Visible = true; picture24->Visible = true; } if (liczba2 == 5) { picture21->Visible = true; picture22->Visible = true; picture23->Visible = true; picture24->Visible = true; picture25->Visible = true; } } Wszystkie picturebox sa ustawione na false i dopiero po wylosowaniu liczby zmieniają się na true lecz potem się nie resetują przy kolejnym losowaniu. Jak dodać do tematu odpowiedź bo nie mogę znaleść? |
|
Matei |
» 2016-03-19 17:09:02 Powiem szczerze że nie znam się zbytnio na bibliotekach windowsowych, ale czy nie wystarczy ustawić Visible na false? |
|
Matei |
» 2016-03-19 17:35:08 Na dole po lewej masz "Napisz nową wiadomość" :)
Chodzi mi o coś w stylu: -Losuje liczby -Zmienia Visible obrazków na true -Po wszystkim zmienia Visible obrazków na false (nijako resetuje obrazki)
Jak już mówiłem nie za bardzo się znam i mogę się mylić :) |
|
qscefb Temat założony przez niniejszego użytkownika |
» 2016-03-19 17:40:00 No właśnie i jak zrobić ten punkt 3 "Po wszystkim zmienia Visible obrazków na false (nijako resetuje obrazki)"? |
|
Matei |
» 2016-03-19 17:47:04 picture11->Visible = false; picture12->Visible = false; ... picture24->Visible = false; picture25->Visible = false; Nie wiem jak wygląda twój program, ale myślę że możesz to wpisać np. Na początku pętli wykonującej cały zabieg pokazywania obrazków. |
|
qscefb Temat założony przez niniejszego użytkownika |
» 2016-03-19 17:54:50 ale ja nie mam zadnej pętli, jeszcze nie doszłem do tego poziomu a cała operacaj na obrazkach zaczyna się po kliknieciu w przycisk button2 czyli to co dałem. Mam jeszcz przycisk start który losuje liczby: private: System::Void Start_Click(System::Object^ sender, System::EventArgs^ e) {
srand(time(NULL)); liczba1 = rand() % 5; liczba2 = rand() % 5; label1->Text = Convert::ToString(liczba1); label3->Text = Convert::ToString(liczba2);
}
oraz przycisk next który losuje kolejne liczby i sprawdza wynik: private: System::Void next_Click(System::Object^ sender, System::EventArgs^ e) {
razem++; wynik = Convert::ToInt32(textBox1->Text); poprawne = liczba1 + liczba2; if (wynik == poprawne) { ile_dobre++; info->Text = "Dobrze"; } else { ile_zle++; info->Text = "Źle, poprawny wynik wynosi: " + poprawne; } } tylko za bardzo nie wiem jak dodac pętle np. while poniewaz jak pisze while(razem <5) to wyskakuje mi błąd, próbowałem tez wpisywac inne słowa zamiast razem i nawet dodałem losowanie liczb do przyciku next ale cały czas jest problem z pętlą. |
|
Matei |
» 2016-03-19 18:06:21 Mógłbyś wstawić cały kod programu w znacznikach cpp? Ponieważ aktualnie trochę ciężko mi się zorientować jak program działa lub miałby działać. Ewentualnie mogę Ci podać mój nr. gg jeśli nie chcesz pokazywać kodu :) |
|
qscefb Temat założony przez niniejszego użytkownika |
» 2016-03-19 18:40:49 Ja to robie w visual studio, mam 3 formy i 4 kody cpp więc może podaj gg to podeśle bo tego troche jest. |
|
« 1 » 2 |