Diskuze: Kliknutí na špatné tlačitko
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 7 zpráv z 7.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Trochu som sa stratil.
Ak som pochopil mas dva buttony -> Jeden obsahuje spravnu odpoved a druhy nespravnu odpoved, a chces, aby po kliknuti na nespravnu odpoved sa nieco udialo. V tomto pripade (aspon v jave) by si vytvoril metodu, ktora spracovava ten druhy button a v tom uz urobis veci, kt. potrebujes)
Neviem ako to mate v C#, ale podla mna toto je zbytocne, pretoze ta metoda clickk sa uskutocni hned potom ako kliknes na button, takze boolean kliknuto je zbytocne, pretoze to je samozrejme.
kliknuto = true;
if (kliknuto = true)
Jak vyhodnocuješ, která odpověď je správná?
Přidej si do argumentu metody Otazka tlačítko, které zastupuje špatnou odpověď a postupuj stejně jako při vytváření kódu pro tlačítko, které jsi si nazval spravanaodpoved (tzn. vytvoř si pro tlačítko spatnaodpoved událost po kliknutí a do ní piš kód, který se má vykonávat po kliknutí na špatnou odpověď).
No v ty metodě otázka je jako poslední ten button ve kterým je správná odpověd.
Ano to mě taky napadlo, akorát jsem hledal nějaký kratší způsob. Protože pak těch buttonu bude víc a ty metody by byly pokaždé strašně dlouhé.
Kratší způsob říkáš...
No, každý ovládací prvek má vlastnost "Tag", která se dá použít na interní označkování daného prvku.
Pokud nechceš vytvářet pro každé tlačítko metodu, události všech tlačítek si můžeme připíchnout na stejnej handler. Z objektu "sender" si přetypujeme naše tlačítko, ze kterého získáme tu naši značku, kterou proženeme přes switch, kde vyhodnotíme odpověď a následnou akci.
bool kliknuto = false;
Otazka(string otazka, string odpoved1, string odpoved2, int odpovedSpravna /* Pořadí tlačítka, první nebo druhé - 1 / 2*/){
label1.Text = otazka;
button1.Text = odpoved1;
button2.Text = odpoved2;
switch(odpovedSpravna){
case 1:
button1.Tag = (object)"correct"; //Tlačítko 1: správná odpověď
button2.Tag = (object)"invalid"; //Tlačítko 2: špatná odpověď
break;
case 2:
button1.Tag = (object)"invalid"; //Tlačítko 1: špatná odpověď
button2.Tag = (object)"correct"; //Tlačítko 2: správná odpověď
break;
}
button1.Click += OnAnswerClick; //Události obou tlačítek si připíchneme na jeden a samý handler
button2.Click += OnAnswerClick;
}
private void OnAnswerClick(object sender, EventArgs e){
Button clicked = (Button) sender; //Deklarace tlačítka, které bylo stisknuto
string tag = (string)clicked.Tag; //Značka (tag) toho tlačítka
if(!kliknuto) //Klikli jsme? Jestli ne, pokračujme.
switch(tag){
case "correct":
//Správná odpověď
MessageBox.Show("Správná odpověď!"); //MsgBox
clicked.BackColor = Color.Green; //Barva
break;
case "invalid":
//Špatná odpověď
MessageBox.Show("Špatná odpověď!"); //MsgBox
clicked.BackColor = Color.Red; //Barva
break;
}
kliknuto = true; //Klikli jsme.
}
Nemusíš psát zvlášť metody pro další a další tlačítka.
Hodně štěstí. 
Zobrazeno 7 zpráv z 7.