• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TENCOKACISTROMYProgramovani v C#, F# a dalsich jazycich pro .NET, Mono a ostatni CLI implementace
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    CERMINEK: jenze nic nenajdes na google
    Numbers_ListChanged - se podivej jestli tahle metoda existuje. jinak to smaz i s tim plusem, a napis plus rovnitko znova, visual studio ti nabidne tu metodu vytvorit
    a do ni pak dej prislusny kod
    CERMINEK
    CERMINEK --- ---
    ANDY_WARHOL: Pascal je pohoda :)

    ANDY_WARHOL: ač Anglicky umím relativně dobře, tak se mi ve Visual Studiu dělá líp v čeětině, už jen proto, že .NETu nerozumím tak, jak bych chtěl.

    ANDY_WARHOL: TENCOKACISTROMY psal do kódu toto:
    asdf.Numbers.ListChanged += Numbers_ListChanged;
    ale to mi taky háže error :/
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    CERMINEK: no ty prirazujes udalsost na stejnou udalost ? to je nejaky divny, musis tam dat metodu co se tou udalosti spusti
    h.cisla.ListChanged += necodelej() ;

    nebo tak
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    CERMINEK: ps: kdyz vidim, ty mas hlasky v cestine, pak se div ze ti to nejde, protoze tezko najdes nejakej help, nejsem si jistej, ale snad by melo byt mozny vypnout hlasky v lokalizaci, nebo muzes pouzit server unlocalize.com
    ver mi, ze to ti hodne pomuze umet si to najit na google
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    CERMINEK: no ja nevim, ne ze by me pascal delal nejaky problemy, ale je to proti krasnymu netu opravdu hruza
    CERMINEK
    CERMINEK --- ---
    TENCOKACISTROMY: A prosím ještě o help... v kódu Form1(){} je h.cisla.ListChanged += h.cisla.ListChanged; čož mi hlásí, že:
    "Chyba 1 Událost System.ComponentModel.BindingList<T>.ListChanged se může nalézat pouze na levé straně výrazu += nebo -=."

    Plus ještě v některých metodách mám u listu cisla.Sort(); což převedením na binding list hlásí chybu... Budu asi muset napsat extra metodu pro seřazení?
    CERMINEK
    CERMINEK --- ---
    ANDY_WARHOL: Jop stojaři mi za Pascal nosí cigára... Mám na hodně dlouho co kouřit... Jenže pascal, C a Assembler pro mě jsou minimální problém.. .NET je velký problém... OOP není pro mě :D
    CERMINEK
    CERMINEK --- ---
    TENCOKACISTROMY: Tak to budu dělat sám za sebe : D jen kdybych fakt nevěděl..Hlavně při mém oboru je .NET naprostá hovadina... Prostě předmět, aby se vešli do 180 kreditů za Bc.
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    TENCOKACISTROMY: si pamatuju jak na skole na koleji mel kamos fabriku na seminarky z programovani, protoze tomu tam nikdo nerozumel (byla to strojarna, a tehdy se tam jel pascal), tolik flasek ruznyho chlastu sem snad po hromade pak uz nevidel
    :)))
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    CERMINEK: Poradit neni problem. Od toho to tu je.
    Ale zkousku delej sam za sebe. K cemu by to pak bylo? Nepodporuju devalvaci akademickejch titulu, i kdyz mi jejich koncept nevyhovuje.
    CERMINEK
    CERMINEK --- ---
    TENCOKACISTROMY: Super! Fachčí to...

    Jinak ale doufám, že zítra u zkoušky bude nějaké ze zadáních, které byly v minulosti. Mohl bych Vás ale někoho požádat, zda-li byste nebyli zítra mezi 9:00 a 12:00 on-line pro případný help? S .NET se fakt nekámoším a zkoušku bych rád měl z krku :D
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    TENCOKACISTROMY: oprava - misto:
    public class MyClass {
        public List<int> Numbers {get; private set; }
    

    ma byt
    public class MyClass {
        public BindingList<int> Numbers {get; private set; }
    
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    CERMINEK: Pouzij "BindingList<T>" misto "List<T>". Nachazi se v namespacu "System.ComponentModel".

    public class MyClass {
        public List<int> Numbers {get; private set; }
        
        public MyClass() {
            var rnd = new Random();
            var capacity = 10;
            this.Numbers = new List<int>(capacity);
            for(int i = 0; i < capacity; i++) {
                this.Numbers[i] = rnd.Next(0,100);
            }
        }
    }
    
    // .... ve formu
    private MyClass asdf = new MyClass();
    public Form1() {
        asdf.Numbers.ListChanged += Numbers_ListChanged;
        this.RefreshLabel();
    }
    void Numbers_ListChanged(object sender, ListChangedEventArgs e) {
        this.RefreshLabel();
    }
    void RefreshLabel() {
        this.label1.Text = string.Concat(this.asdf.Numbers.ToArray());
    }
    void button1_Click(object sender, EventArgs e) {
        this.asdf.Numbers.Add(int.Parse(this.textBox1.Text));
    }
    


    Pisu to z hlavy, mozna tam je nekde preklep.
    CERMINEK
    CERMINEK --- ---
    TENCOKACISTROMY: Díky, už to valí...

    Jen mám další dotaz. V tom formu mám label, kam si vypisuju metodou všecha čísla z toho listu. Je nějaké řešení, jak nadefinovat tomu labelu, aby se při každé změně toho listu aktualizoval text v tom labelu?

    Zatím to mám jen pří form_Load a to není moc praktické ani elegantní..

    private void Form1_Load(object sender, EventArgs e)
    {
    histogram h = new histogram();
    h.vypiscisla();
    lblVypis.Text = h.vypiscisel;
    }
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    THEBYS: To musi vyhodit chybu (NullReferenceException). Field "mujSeznam" bude dobe behu konstruktoru vzdycky null.
    CERMINEK: Zkus to takhle:
    public class MyClass {
        public List<int> Numbers {get; private set; }
        
        public MyClass() {
            var rnd = new Random();
            var capacity = 10;
            this.Numbers = new List<int>(capacity);
            for(int i = 0; i < capacity; i++) {
                this.Numbers[i] = rnd.Next(0,100);
            }
        }
    }
    
    // .... ve formu
    private MyClass asdf = new MyClass();
    void button1_Click(object sender, EventArgs e) {
        this.asdf.Numbers.Add(int.Parse(this.textBox1.Text));
    }
    
    THEBYS
    THEBYS --- ---
    Třída bude vypadat nějak takhle: http://pastebin.com/xJ0dQtiS
    a zavoláš to tam kde to máš instancovaný jako NazevMojiInstance.PridejDoSeznamu(69);
    Kdyby něco nešlo klidně napiš.
    CERMINEK
    CERMINEK --- ---
    Ahoj mám dotaz... značně elementární a značně lamácký, ale nevím si s tím rady...

    Mám vytvořenou třídu, ve které mám public vytvořený list. Při Form_Load vytvořím novou instanci třídy, kdy v defaultním konstruktoru naplním list v té třídě náhodnými čísly. Do listu chci ale přidávat i další čísla z textboxu. Mám ošetřené načítání a přetypování čísel z textboxu po stisku tlačítka, ale zaboha nemůžu přijít na to, jak to číslo přidat do toho listu, resp. jak vyvolat metodu té třídy, kteá to přidání provede...

    Zkouším googlit, ale asi volím špatná hesla pro hledání.

    Pomůže někdo prosím?
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    JACHYMKO: To by asi slo. Jeste budu muset zaridit, abych rozlisil zmenu toho obsahu na zaklade ty puvdoni akce. Cili jestli to udelal uzivatel a nebo ja. To bude chutovka :P.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    Priklad, jak ta kompozice UI muze vypadat:
    + Window
    |-+ nejakej ovladaci bar
    |-+ content kontajner (zde bud budu prepinat jiny control, nebo na nem budu volat back/forward)
      |-+ content (bud browser, nebo custom usercontrol. pro tento pripad usercontrol)
        |-+ content (napr. nejaky tab-control, ktery ma reagovat na zpet/vpred prepinanim tabu jak je uzivatel klikal)
        |-+ content (napr. nejaky jiny tab-control)
    


    Jak urcim pri "back", kterymu z tech tab-controlu mam zavolat "back/forward"? To budu muset mit nejakou nadrizenou navigation service, ktera na zaklade udalosti zmen tech tabu bude muset sestavovat nejaky ty Uri, a za nich to pak budu muset dekodovat predpokladam.

    Takhle jsi to myslel?
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    JACHYMKO: No jasne, ale kdyz budu mit ty views uvnitr views uvnitr views (atd...) a ty budou mit teda tu svoji navigation service. Jak najdu tu spravnou navigation service, kde mam volat back/forward?
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    JACHYMKO: Jak pak ale nejdu tu spravnou nestovanou navigation service?
    Kliknutím sem můžete změnit nastavení reklam