Diskuze: Generace z List<string> pomoci TIMERU
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 25 zpráv z 25.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Spustí se ti ten timer? Normálně by jsi měl spíš použít timer1.Start(); namísto timer1.Enabled = true;
(Jestli se ti spustí zjistíš pomocí breakpointů.)
Ne - Enabled je v C# v pořádku... Start snad ani neexistuje. Spíš bude chyba v přidání metody do Handleru...
new Panel(){ Size = new Size(100, 60) }.Controls.Add(new Button(){ Text = "Click" });
Ozkoušej jestli ti jede ten Timer, dej tam třeba MessageBox.Show("Test"); Jinak se nehneme z místa.
Dal jsem do Timeru prikaz.
Interval je 800.
//Timer
private void timer1_Tick(object sender, EventArgs e)
{
MessageBox.Show("Zkouška");
}
//A v buttnu mám furt nastaveno
private void button3_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
}
A nic zadny message se neobjvil bohuzel. Asi je nefunkcni timer ale nevim
proc.
Z toho kódu nepoznáme proč to nefunguje, ale takhle to vypadá dobře. Možná zkus přidat z toolboxu nový timer a nakliknout mu tu událost.
Už jsem to psal - máš přidanou metodu v Handleru?
Děláš si srandu - ten můj kód přidává do panelu Button. Kam ten panel dáš je na tobě... (Co takhle do okna? - Controls.Add(panel))
ddd.Tick += new EventHandler...
Takže to byl handler - když budeš pokaždé zakládat nový projekt, moc se toho nenaučíš... Měl jsi jen přidat tu metodu do eventu - v Designeru klikneš v Properties na blesk a v příslučném inputu přidáš onu metodu... A to by jsi měl umět i kódem - jak jsem psal:
ddd.Tick += new Handler...
Nevšiml jsem si, že by se tu někdo ptal na nějaký panel.
Ahoj, vim, ze uz je problem vyreseny, ale ve firme po me vzdy sli, kdyz jsme
nepojmenovaval komponenty...
Bylo by dobré je pojmenovávat
Některé komponenty se ani pojmenovat nedají, protože by to narušilo jejich funkci a v ostatních případech by to mělo být jedno.
Aha, to jsem nevedel, po me prave vzdy chteji abych vsechno
pojmenovaval...
Napriklad Button = btnNazevJehoFunkce a tak dale
Jak by jiné pojmenování komponenty mělo narušit její funkci?
A jedno to určitě není, aspoň ne u větších formulářů, až někdy
budeš něco upravovat na formuláři s 200 controly s defaultními názvy, tak
budeš tvůrce proklínat
Anonymní komponenty mají přístup k privátním objektům v rodiči. Oddělením se tato vazba ztratí.
Zase jdeš do extrémů. Pokud mám dodržet pravidlo, že metoda by neměla být delší než 15 řádek, tak tam ani nemohu nacpat těch 200 controlů a stejně to musím rozdělit. To dá přece rozum.
Pokud jde o pojmenování anonymní funkce, tak to je v pořádku a funkci to nenaruší. Je to lepší než komentář.
Nejsem si teď jistej, jak to přesně myslíš, ale většinou je rodičem komponenty formulář a obsluhu komponenty taky provádíš ve formuláři, takže k privátním objektům rodiče (formuláře) přístup pořád máš, ne?
Proč by někdo používal těch 200 controlů v jedné metodě?
Prostě máš na formu 200 controlů, který se jmenujou třeba TextBox17,
TextBox18 apod., pak může lehce dojít k tomu, že někde omylem při
copy&paste do nějaký funkce posíláš hodnotu ze špatnýho controlu a
strašně blbě se to hledá.
Zatímco kdyš názvy budou třeba tbDluznaCastka a tbUrok, tak se ti podobná
věc tak lehce nestane a víš přesně, co někam dál posíláš.
Proč bych je měl pojmenovávat tak blbě? TextBox17, TextBox18, ...? Takové názvy proměnných jsou úplně k ničemu. To už je lepší, když jsou anonymní.
Názvy tbDluznaCastka a tbUrok jsou OK.
Jestli se nepletu, tak o to právě šlo, že se Medielovi nezdály ty názvy komponent, které Veganekk nechal defaultní (že je nepřejmenoval - byly očíslovány automaticky od IDE).
Tím "nepojmenováním" nejspíš nemyslel, že by byly anonymní, ale že nechal ty defaultní názvy.
Tím je to jasné, v průběhu debaty mě to také napadlo. IDE nepoužívám, zpočátku jsem ani netušil, že dělá takové hovadiny.
Zobrazeno 25 zpráv z 25.