Diskuze: jak na Class
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 12 zpráv z 12.
//= 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.
Do {} vlož:
o.startDownload();
a podobně.
To "o" vytvoříš přes:
o = new Downloader(url, filemane);
kde url a filename jsou adresa a cílový soubor.
A projdi si zdejší tutoriály |
http://www.itnetwork.cz/csharp/oop |
supr, začínám to tedy chápat, class se musí nejprve vytvořit,
private void button2_Click(object sender, EventArgs e)
{
o = new Downloader("", "");
}
teď mi to ale píše že "Název o v aktuálním kontextu neexistuje" musí se
to "o" ještě předem nějak deklarovat?
Ano, C# je staticky typovaný. V čem jsi programoval předtím?
Downloader o = new Downloader();
No "o" by mělo být nejspíše nějakého typu ...
V čem jsi programoval, jestli se můžu zeptat?
supr, díky, už je to ok, programuju v Delphi a v PHP
A kdybych chtěl pak v tom class Downloader odkazovat na progressbar, to zase jak se dělá? Pánové ten C# je úplně jiný než jsem zvyklý...
Není to zas tak složité, dělá se to tak, že si pročteš zdejší tutoriály a naučíš se něco o tom jazyku, v kterém chceš programovat. Nemůžeš dobře naprogramovat složitý program, když neumíš základy. ProgressBar by měl běžet v jiném vlákně, než ta akce, která by se v tom ProgressBaru měla zobrazovat a práce s vlákny rozhodně nepatří do začátků programování, ale spíš do pokročilejších technik...
Jiné vlákno mne napadlo jako možné řešení i mého problému - chci zobrazit průběh nastavení a vytváření souborů s databází atd. a úplně by stačilo, když se value ProgressBaru aktualizuje po dokončení jednotlivých kroků. Pokud ale např. uvnitř jedné metody vytvořím soubor 1, pak nastavím hodnotu Value ProgressBaru třeba na "20", pak soubor překopíruji, nastavím value na 30, atd..., ve WPF se změna statusbaru zobrazí až když metoda celá doběhne. Když ale třeba mezi jednotlivé kroky vložím MessageBox.Show, tj. vytvořím soubor - aktualizace Value ProgressBaru - MessageBox - kopíruji soubor..., progressbar se aktualizuje průběžně. Budu rád, když mi poradíte, jak toho docílit, aniž bych v průběhu nastavování aplikace "musel mezi jednotlivými metodami zobrazovat MessageBox".
Koukni se na Backgroundworker. Je to ideální komponenta na spouštění akci v druhém vlákně "na pozadí".
Díky moc za skvělý tip, povedlo se
Sice mi to trochu trvalo, (až se sem bojím psát, že hlavně
„přechroupání“ C# a WF tutoriálů do VB a WPF), ale s pomocí
Backgroundworker se už ProgressBar aktualizuje. Ještě jednou děkuju.
Taky jsem kdysi dělal ve VB, protože mi to přišlo jednodušší, ale pak jsem se dostal do bodu, kdy byl problém na konkrétní situaci sehnat radu pro VB (pro C# jich bylo mraky) a nedařilo se mi to "přechroupat" do VB, tak jsem se přeorientoval na C#...a nelituji.
Zobrazeno 12 zpráv z 12.