• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[Builder C++] Zielony pyta o przyciski

Object Storage Arubacloud
0 głosów
200 wizyt
pytanie zadane 16 lipca 2016 w C i C++ przez strawberry Nowicjusz (140 p.)
Witam!

Chciałbym zrobić menu w swoim programie. Po naciśnięciu przycisku ma wyświetlić się nowa plansza -- i właśnie tutaj pojawia się moje pytanie. Jak to zrobić?

Próbowałem wpisać kod na kilka sposób, ale żaden sposób nie działał.

Problem pewno trywialny, ale jak widać, dla mnie za trudny.

1 odpowiedź

0 głosów
odpowiedź 16 lipca 2016 przez RekoJ Nowicjusz (230 p.)
edycja 16 lipca 2016 przez RekoJ

Siemka, w builderze możesz dodać panel i na tym panelu tworzyć "planszę". Po stworzeniu panelu ustaw jego widoczność na "false", a do przycisku dopisz kod, który po kliknięciu w przycisk zmieni widoczność panelu na "true"

Czyli w skrócie:

1. Dodaj przycisk (ważne, żeby nie został dodany w panelu, na którym ma być ta nowa "plansza")

2. Dodaj "panel1" i zmień opcję visible na "false"

3. Do funkcji "onclick" w przycisku dodaj kod

Panel1->Visible = true;
komentarz 16 lipca 2016 przez strawberry Nowicjusz (140 p.)
przywrócone 16 lipca 2016 przez strawberry
O, właśnie o to mi chodziło. Tylko chciałbym, aby po naciśnięciu przycisku pojawił się obrazek, na tym panelu, a obrazek pojawia się dopiero, gdy nacisnę w panel.

Czyli wygląda to tak:

1) Naciskam przycisk.

2) Pojawia się panel.

3) Naciskam w panel.

4) Pojawia się obrazek.

Ja chciałbym zrobić tak, aby pominąć punkty 2) i 3), tak by zaraz po naciśnięciu przycisku pojawił się obrazek.
komentarz 16 lipca 2016 przez RekoJ Nowicjusz (230 p.)

To robisz to samo w w przypadku obrazka.

Musisz dodać obrazek (image1) na panel, po czym zmienić jego widoczność na false

Czyli:

1. Dodaj przycisk

2. Dodaj panel

3. Dodaj obrazek (do panelu)

4. Zmień opcje "visible" w obrazku i panelu na "false"

5. Dodaj do przycisku kod:

Panel1->Visible = true;
Image1->Visible = true;

 

 

komentarz 16 lipca 2016 przez strawberry Nowicjusz (140 p.)
Ok, teraz działa, ale niestety to nie koniec moich problemów.

Chciałbym zrobić quiz, dokładnie taki, jaki pan Mirosław zrobił w Code::Blocks'ie, tylko jako quiz okienkowy.

No, i żeby ten quiz działał, to potrzebuje kod do obsługi wyboru odpowiedzi i nie wiem, jak to zrobić, bo chodzi o to, że każde pytanie to inny obrazek.
komentarz 16 lipca 2016 przez RekoJ Nowicjusz (230 p.)
Nie wiem o jaki quiz Ci chodzi, mógłbyś podać link do filmu i minutę?
komentarz 16 lipca 2016 przez strawberry Nowicjusz (140 p.)
https://www.youtube.com/watch?v=h2Taf16gQDI&list=PLOYHgt8dIdoxx0Y5wzs7CFpmBzb40PaDo&index=8 -- cały odcinek jest poświęcony temu quizowi.

Nie chodzi mi o to, żeby wgrywać pytania z pliku, bo chcę to zrobić tak, że każde pytanie jest na osobnym obrazku.

Jest plansza z obrazkiem, a na niej napisane jest pytanie i cztery odpowiedzi, teraz muszę jakoś zrobić z tych odpowiedzi na obrazku przyciski, tak aby użytkownik mógł ją wybrać, jako odpowiedź do pytania.

Gdy gracz naciśnie jakąś odpowiedź, to pojawia się kolejny obrazek w miejscu istniejącego, na którym napisane jest następne pytanie i odpowiedzi, i tak dalej...
komentarz 16 lipca 2016 przez RekoJ Nowicjusz (230 p.)

Wiem chyba o co Ci chodzi. Hmmm, może to być ciężkie do wytłumaczenia, ale spróbuję...

Zakładając, że quiz ma mieć 10 pytań, to dobrze by było stworzyć 12 paneli.

-> 10 paneli od pytań

-> 1 panel startowy

-> 1 panel końcowy (jakie były poprawne pytanie itp.)

----> Okno startowe <-------

Wstaw pierwszy panel, do którego dodaj przycisk startujący i jeśli chcesz to jakiś tekst (np. autor, zasady quizu, itp.)

Do przycisku "start" w evencie "onclick" dopisujesz

Panel2->Visible = true;

--------> Pierwsze pytanie <-------

1. Utwórz drugi panel, do którego dodaj teskt z pytaniem i czterema przyciskami, na których napiszesz odpowiedzi.

2. Do przycisku z poprawną odpowiedzią w evencie "onclick" dopisz kod:

Panel3->Visible = true;
Panel2->Visible = false;

 

 

I tak robisz do końca, wystarczy tylko pobawić się w tym programie opcja "visible" i gotowe. Działa to tak, że jeśli klikniesz przycisk z poprawną odpowiedzią w "panel2", to pojawia Ci się "panel3", w którym robisz dokładnie to samo co w poprzednim panelu, a ukrywanie poprzedniego panelu, po prostu mniej obciąży komputer. Mam nadzieję, że jakoś Ci to dobrze wytłumaczyłem :P

komentarz 16 lipca 2016 przez strawberry Nowicjusz (140 p.)
Dokładnie właśnie o to mi chodziło! Super wytłumaczone, jeśli będę miał jakieś problemy, to będę pisał.
komentarz 16 lipca 2016 przez strawberry Nowicjusz (140 p.)
edycja 16 lipca 2016 przez strawberry

Mam pytanie, jak zrobić warunek na sprawdzenie poprawnej odpowiedzi?

Jeżeli gracz naciśnie dobrą/złą odpowiedź, to jak będzie wyglądał ten kod?

 

No bo w Code::Blocks'ie mogłem zrobić zmienne typu: 

string odpowiedz, dobrze, zle; 
int punkty;

i miałem następujący warunek:

if(odpowiedz == dobrze)
{
 punkty++;
}
if(odpowiedz == zle)
{
 // Puste miejsce, czyli brak punktu za odpowiedź
}

 

Moje odpowiedzi (jak i pytania) będą znajdowały się na obrazku i za pomocą narzędzia Image oprawię je w ramkę i zrobię z tego klikalną odpowiedź na obrazku (wiem, o co mi chodzi, ale ciężko to opisać). Jako, że będą cztery odpowiedzi do każdego pytania to nazwa (Name) każdego obiektu Image, będzie nosiła nazwę A1, B1, C1, D1 - dla pierwszego pytania, dla drugiego analogicznie A2, B2, C2, D2 i tak dalej...

Więc jak będzie wyglądał warunek w Builderze?

if(A1 == ?)
{
 punkty++;
}

 

komentarz 17 lipca 2016 przez RekoJ Nowicjusz (230 p.)
edycja 17 lipca 2016 przez RekoJ

Nie wiem czy dobrze Cię zrozumiałem, ale jeśli chcesz po prostu stworzyć licznik punktów, to możesz dodać zmienną "x" i dopisać do niej wartość 0 (ilość początkowych punktów). Potem dodajesz label'a bez tekstu, a następnie do każdego z przycisków (z poprawną odpowiedzią) dopisujesz dodatkowy kod:

x = x + 1;
Label1->Caption = x;  /* Nazwa label'a w kodzie zalezy od jego ogolnej nazwy */ 

 

Podobne pytania

0 głosów
0 odpowiedzi 138 wizyt
+1 głos
2 odpowiedzi 3,256 wizyt
0 głosów
1 odpowiedź 606 wizyt

92,615 zapytań

141,465 odpowiedzi

319,782 komentarzy

61,997 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...