Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako napraviti "please wait"?

[es] :: .NET :: Kako napraviti "please wait"?

[ Pregleda: 3797 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

shandu85

Član broj: 152815
Poruke: 8
*.83.beocity.net.



Profil

icon Kako napraviti "please wait"?04.08.2007. u 23:13 - pre 203 meseci
Konkretno, imam sledeći deo koda:

Code:

//deo koda

neka_Funkcija_Koja_Radi_Veoma_Dugo()

//ostali deo koda


Sada bih želeo da dok se ta funkcija izvršava, da se izbaci neki pop-up sa natpisom "please wait...", ili tako nešto slično. Interesuje me konkrtan kod, pošto ni ovde na forumu a ni na msdn nisam uspeo da nađem nešto korisno.
 
Odgovor na temu

bjevta
Bratislav Jevtic
http://www.tojesoft.co.rs
Beograd

Član broj: 5216
Poruke: 367
*.dynamic.sbb.co.yu.

Sajt: www.tojesoft.co.rs


+5 Profil

icon Re: Kako napraviti "please wait"?05.08.2007. u 08:41 - pre 203 meseci
najjednostavniji način jeste da se napravi forma (dijalog) na koji, po potrebi, može da se stavi progress bar kontrola. Onda se forma otvori sa myForm.Show() i nastavi procesiranje. U toku procesiranja povremeno se ispaljuje event tipa OnProgress( int percentComplete ), forma hvata taj event a percentComplete bude Value progress bar-a. Napomena: pošto ovakva forma nije modalna, korisnik može da startuje i neku drugu ili istu operaciju na parent formi. Da bi se to izbeglo, gui komande parent forme (meni, toolbar, context menus) mora da bude isključen.

Postoji i varijanta sa asinhronim izvršavanjem i callback-om.
Acta, non verba!
 
Odgovor na temu

prog
Bihac

Član broj: 106882
Poruke: 77
*.806591-86.bih.net.ba.



Profil

icon Re: Kako napraviti "please wait"?07.08.2007. u 11:45 - pre 203 meseci
Ovo sto je prethodnik rekao samo na jeziku C#

Code:

       private void FunkcijaKojaPokreceVeumaDuguFunkciju()
        {
            //Pokrenemo backgroundWorker 
            //Prije toga formiramo objekat backgroundWorker1 klase BackgroundWorker)
            backgroundWorker1.RunWorkerAsync();

            //prikazujemo Progres Dijalog
            progresDijalog.Show();
        }

       //Kada se pozove backgroundWorker1.RunWorkerAsync(); ova funkcija se poziva u drugoj niti
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
           neka_Funkcija_Koja_Radi_Veoma_Dugo();
        }

        private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            //Ovjde ide refres za progres dijalog ili nesto drugo
        }
        //Kada se nasa funkcija zavrsi poziva se  RunWorkerCompleted
        private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            //zatvaranje progres dijaloga
            progresDijalog.Close();
        }


Procitaj malo oko ove klase ima jos opcija koje bi ti dobro dosle
 
Odgovor na temu

[es] :: .NET :: Kako napraviti "please wait"?

[ Pregleda: 3797 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.