[ shonev @ 09.02.2005. 14:08 ] @
Hteo bih da koristim progressbar-ove na formama
Kako to da uradim pomocu Thread-ova?!?!


[ vlaiv @ 10.02.2005. 11:12 ] @
Nisam bas siguran da sam shvatio pitanje ali da pokusam da odgovorim:

Pretpostavka je sledeca:

Postoji negde broj odnosno procenat koji zelis da bude prikazan na nekom progress baru a uz to zelis i da aplikacija normalno funkcionise odnosno da se ne zamrzava ...

Mislim da postoji i jednostavnije resenje od uvodjenja thread-a (npr sa timer-om) ali da odgovorim na pitanje koliko mogu.

Kreiras thread objekt kada zelis da pocnes pracenje procesa.

unutar execute metode pozivas 2 funkcije "umotane" u Synchronize:
Code:

while(!Terminated){
    Synchronize(GetProgressValue);
    Synchronize(UpdateProgressBar);
    Sleep(250); //recimo 4 puta u sekundi, nisam siguran da li Sleep ili SleepEx (pogledaj help)
}


//onda napises implementaciju te 2 funkcije

void __fastcall TMyThread::GetProgressValue(){
    fProgressValue = Form1->GetProgress(); //fProgressValue je private promenljiva za klasu TMyThread
}

void __fastcall TMyThread::UpdateProgressBar(){
    ProgressForm->ProgressBar->Position = fProgressValue;
}


Recimo tako nekako ...
Ako ti treba nesto preciznije reci ...

E, da i zgodno bi bilo da u konstruktoru stavis FreeOnTerminate na true ...
[ shonev @ 31.03.2005. 12:12 ] @
Problem resen, a sve sam nasao u helpu
Borland C++ Builder

Inace koristio sam za pracenje
rada sql upita sa bazom.

Sve radi!

Pozdrav