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