IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Radek Szurman:6.9.2016 19:19

Programuji už několik let ale na C# jsem nováček, potřebuji naprogramovat stahování souboru z internetu s možností pauzy,

našel jsem na http://stackoverflow.com/…nload-thread jak to udělat, ale nevím jak ten class Downloader použít pod tlačítkem

private void button2_Click(ob­ject sender, EventArgs e)
{

}

Můžete mě někdo nasměrovat? Díky...

 
Odpovědět
6.9.2016 19:19
Avatar
00
Člen
Avatar
00:6.9.2016 19:57

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
Editováno 6.9.2016 19:58
 
Nahoru Odpovědět
6.9.2016 19:57
Avatar
Radek Szurman:6.9.2016 21:08

supr, začínám to tedy chápat, class se musí nejprve vytvořit,

private void button2_Click(ob­ject 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?

 
Nahoru Odpovědět
6.9.2016 21:08
Avatar
Odpovídá na Radek Szurman
Neaktivní uživatel:6.9.2016 21:17

Ano, C# je staticky typovaný. V čem jsi programoval předtím?
Downloader o = new Downloader();

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
6.9.2016 21:17
Neaktivní uživatelský účet
Avatar
Odpovídá na Radek Szurman
Michal Haňáček:6.9.2016 21:20

No "o" by mělo být nejspíše nějakého typu ;) ...

V čem jsi programoval, jestli se můžu zeptat?

Nahoru Odpovědět
6.9.2016 21:20
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
Radek Szurman:6.9.2016 21:47

supr, díky, už je to ok, programuju v Delphi a v PHP

 
Nahoru Odpovědět
6.9.2016 21:47
Avatar
Radek Szurman:7.9.2016 11:22

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ý...

 
Nahoru Odpovědět
7.9.2016 11:22
Avatar
Odpovídá na Radek Szurman
Michal Štěpánek:7.9.2016 11:40

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...

Nahoru Odpovědět
7.9.2016 11:40
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na Michal Štěpánek
František Střelka:22.11.2019 6:16

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".

 
Nahoru Odpovědět
22.11.2019 6:16
Avatar
Odpovídá na František Střelka
Michal Štěpánek:22.11.2019 6:24

Koukni se na Backgroundworker. Je to ideální komponenta na spouštění akci v druhém vlákně "na pozadí".

Nahoru Odpovědět
22.11.2019 6:24
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na Michal Štěpánek
František Střelka:26.11.2019 0:41

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.

 
Nahoru Odpovědět
26.11.2019 0:41
Avatar
Odpovídá na František Střelka
Michal Štěpánek:26.11.2019 6:41

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.

Nahoru Odpovědět
26.11.2019 6:41
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.