Трабла с progressBar - С# Что то у меня сегодня траблы одни =) Подскажите, пожалуйста, как рандомно заполнить progressBar1 за n-ое количество времени. То есть задается программно интервал, за которой прогресБар заполняется на 100% рандомно. (Например, время 5 сек. 1 сек. - 20% заполнено 2 cек. - 40% заполнено 3 сек - 60 % заполнено 4 сек. - 90 % заполнено 5 сек. - 100% заполнено ) Спасибо всем большое за ответ
Ну самое простое решение напрашивается само по себе. Закидаешь на форму ProgressBar, Button и Timer. Выставляешь интервал в таймере и свойство Enabled в False. По клику на кнопку пишешь следующее: Code: procedure TForm1.Button1Click(Sender: TObject); var k:integer; begin ProgressBar1.Max:=k; ProgressBar1.Position:=0; Timer1.Enabled:=true; end; Где k играет роль количества пробегов Timer (тоесть если к=5 и интервал таймера 1000, то через 5 сек будет 100%) Событие по таймеру программируешь следующим образом: Code: procedure TForm1.Timer1Timer(Sender: TObject); begin ProgressBar1.Position:=ProgressBar1.Position+1; if ProgressBar1.Position=ProgressBar1.Max then begin Timer1.Enabled:=false; ShowMessage('Загрузка завершена!'); end; end; Вместо вывода сообщения делаешь то, что должно произойти после достижения ProgressBar'ом отметки в 100%.
Спасибо большое! Только у меня еще два вопроса: 1) Разве здесь будет увеличиваться на рандомное количество процентов? 2) Можно этот же пример на С# Спасибо большое!
Нет, будет не рандомно, но модифицировать минуты 3 работы. К сожалению нету Сишки под рукой да и не очень силен в ней, но думаю перевести данный код ни Си большого труда не составит
Всем спасибо, особенно fd00ch за то что научил меня думать! Если у кого то еще есть оригинальные решения - плиз в теме
Code: Random rnd = new Random(); protected int GetRandomInt(ProgressBar pr) { return rnd.Next(pr.Minimum, pr.Maximum); } private void Form1_Load(object sender, EventArgs e) { progressBar1.Value = GetRandomInt(progressBar1); }