Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – Menová kalkulačka

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Petr
Tvůrce
Avatar
Odpovedá na beibovaneki
Petr:25.12.2014 0:19

Chce-li to místo čáry tečku, pak stačí dát s.Replace(',', '.'). Ale tady bych to spíš typoval na fakt, že některé měny nemají kurz vyjádřený 1:1, ale třeba 1:100 nebo 1:1000. Tento parametr udává hodnota na konci prvního řádku, kde je napsáno "Množství: 1". Je-li tam něco jiného než 1, pak je třeba kurz touto hodnotou vydělit. Metoda počítající i s tímto parametrem by pak mohla vypadat následovně.

private double StahniKurz(string mena)
{
    WebClient wc = new WebClient();
    string s = wc.DownloadString(String.Format(
        "http://www.cnb.cz/miranda2/m2/cs/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/vybrane.txt?mena={0}&od={1}&do={2}",
        mena, DateTime.Today.AddDays(-7).ToString("dd.MM.yyyy"), DateTime.Today.ToString("dd.MM.yyyy"))).TrimEnd();

    int iEnd = s.IndexOf('\n');
    int iStart = s.LastIndexOf(':', iEnd);
    string sMnozstvi = s.Substring(iStart + 1, iEnd - iStart - 1).Trim();
    double mnozstvi = Convert.ToDouble(sMnozstvi);

    s = s.Substring(s.LastIndexOf('|')+1);
    return Convert.ToDouble(s) / mnozstvi;
}
Editované
Avatar
beibovaneki
Tvůrce
Avatar
Odpovedá na Petr
beibovaneki:25.12.2014 13:20

Díky. Musel jsem tam dát s = s.Replace(',', '.'). Tím poměrem to sice nebylo, ale za to ti taky děkuju.

Avatar
bem.jiri12
Člen
Avatar
bem.jiri12:3.6.2015 11:35

pěkné a velmi naučné videjko jako vždy, děkuji moc. A chci se zeptat proč jsou použité dva gridy? Resp. ten původní automaticky vygenerovaný WPFkem nikde nepoužíváš, pouze jsi přes něj roztáhl další grid. Něják sem nepochopil jestli to má nějaký důvod a účel?

Avatar
Petr
Tvůrce
Avatar
Odpovedá na bem.jiri12
Petr:3.6.2015 12:35

Samozřejmě by bylo možné použít rovnou i hlavní grid okna, ovšem ten má výsadní postavení jako jeho hlavního kontejneru (Content nikoli Children), který je vždy právě jeden. Kdybych jej později chtěl ještě něčím okolo doplnit, osamostatnit do komponenty, posunout třeba jen do rohu okna, transformovat či animovat nebo odstranit to tak by s tím byl problém. Proto jsem vše umístil do samostatného gridu, aby případné další úpravy, byť třeba ani žádné neplánuji, neznamenaly, že kvůli tomu budu tento grid nějak dále dělit a činit další obsah závislý na tom stávajícím.

Avatar
Tomáš Kr
Člen
Avatar
Tomáš Kr:2.3.2017 16:49

Zdravím pánové, hraju si s touto kalkulačkou a chtěl jsem funkci stahování kurzivního lístku implementovat do své aplikace. Jenže jsem narazil na to, že po spuštění mi program spadne na tom, že se nelze připojit k serveru. Přitom když se dívám přes wireshark, tak si spolu aplikace a cnb server popovídá. Jenže to je vše,spustím alikaci a vyskočí neošetřená chyba (Vyvolaná výjimka: System.Net.We­bException v System.dll, Ke vzdálenému serveru se nelze připojit). Testoval jsem to jak doma na PC, tak v práci na dvou PC a nic. Nesetkal se s tím někdo?

Avatar
Petr Čech
Tvůrce
Avatar
Odpovedá na Tomáš Kr
Petr Čech:2.3.2017 16:56

Postni to sem jako téma na fórum. A připoj k tomu kód, kterým to provádíš.

Odpovedať
the cake is a lie
Avatar
Tomáš Kr
Člen
Avatar
Odpovedá na Petr Čech
Tomáš Kr:3.3.2017 8:18

No je to kod, který jsem si stáhnul v tomto článku pod videem :-) Myslel jsem, že jen blbě vidím a mám ve svém kodu překlep, ale stáhnul jsem tuto kalkulačku a dělá to stejné. Dík, postnu.

Avatar
Neaktivní uživatel:7.5.2018 18:48

Máš tady práci s metodami TextBoxu, tak se ptám tu. Jak se jmenuje metoda po stisknutí Enter? Zkoušel jsem vážně snad všechno, co obsahovalo Enter a pořád nic :-(.

Odpovedať
Neaktivní uživatelský účet
Avatar
Petr
Tvůrce
Avatar
Odpovedá na Neaktivní uživatel
Petr:8.5.2018 9:40

Události obsahující "Enter" znamenají většinou "vstup", např. Enter (editor získá focus, čili klikne se na něj nebo se na něj doskáče tabem), MouseEnter (myš najede nad prvek), DragEnter (táhne se myší nějaký prvek nad tímto textboxem) atd. Oproti tomu jsou tu pak události "Leave", které znamenají pravý opak, čili že se z textboxu "odešlo".
Pokud chceš detekovat stisk Enteru, tak lze použít KeyDown, KeyUp nebo KeyPress (klávesa stisknuta dolů, stisknutá klávesa uvolněna, klávesa stisknuta kompletně, tj. zmáčknuta a uvolněna). Tyto události pak volají metody, jež mají ve vstupním parametru "e" vlastnost (KeyCode), z níž lze určit, která klávesa byla stisknuta. Je to výčet Keys, přičemž Enter se zde jmenuje Return, takže stisk enteru se určí takto:
if (e.KeyCode == Keys.Return) ...;

Avatar
Petr
Tvůrce
Avatar
Odpovedá na Petr
Petr:8.5.2018 9:47

Ta má předchozí odpověď platila pro Windows Forms. Ve WPF je to ale podobné, jen tam jsou pouze události KeyDown a KeyUp, ta vlastnost se jmenuje Key a výčet je taky Key, takže tam je to pak takto:
if (e.Key == Key.Return) ...;

Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 21.