![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 06.10.2011
Сообщений: 181
|
![]()
Доброго времени суток, уважаемые программисты.
Задача следующая... У меня есть программа, которая выполняет определенные действия в течение... ну примерно 7-8 минут... и для отображения этого процесса я хочу воткнуть прогресс бар... читал на форумах, пробовал вставлять, но в итоге ничего так и не заработало... Ошибок при компиляции нет. Ошибка, связанная с ЦПУ, возникает при нажатии на кнопку... Подскажите пожалуйста как сделать программку работоспособной. Заранее спасибо. Вот коротенький листинг. -------------------------------------------------------------------------- void kalibr() { for (int q=0;q<9;q++) { for (int w=0;w<21;w++) { I=In*K[w]; //действие 1 Sleep(10000); //действие 2 //действие 3 } Sleep(15000); for (int w;w>-1;w--) { I=In*K[w]; //действие 1 Sleep(10000); //действие 2 //действие 3 } Sleep(15000); } } void __fastcall TForm1::Button1Click(TObject *Sender) { kalibr(); } -------------------------------------------------------------------------- Подскажите пожалуйста, что и куда надо вставить, чтобы заработало. P.S. Черт... Забыл указать, что работаю в С++ Билдере Последний раз редактировалось max_prorok; 20.10.2011 в 09:57. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 06.10.2011
Сообщений: 181
|
![]()
Если использовать вот такой код:
-------------------------------------------------------------------------- void kalibr() { for (int q=0;q<9;q++) { for (int w=0;w<21;w++) { I=In*K[w]; //действие 1 Sleep(10000); //действие 2 //действие 3 Form1->ProgressBar1->StepIt(); } Sleep(15000); for (int w;w>-1;w--) { I=In*K[w]; //действие 1 Sleep(10000); //действие 2 //действие 3 Form1->ProgressBar1->StepIt(); } Sleep(15000); } } void __fastcall TForm1::Button1Click(TObject *Sender) { kalibr(); } -------------------------------------------------------------------------- То вылетает вот такая ошибка: ![]() |
![]() |
![]() |
![]() |
#3 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
![]()
Form1->ProgressBar1->Position = значение;
при этом: 1. свойства Max = 100 Min=0 2. Smooth = true (полоса прокрутни будет плавной) 3. для вычисления значения ->Position воспользуйтесь формулой: Round(Form1->ProgressBar1->Max*текущее/всего_в_цикле) то есть, при значении Max = 100 Min=0 и значении Вашего цикла -3..24 Код:
95% сбоев и ошибок приложений, находится в полу метрах от монитора
![]() |
![]() |
![]() |
![]() |
#4 | |
Форумчанин
Регистрация: 06.10.2011
Сообщений: 181
|
![]() Цитата:
а почему бы просто не подсчитать общее количество циклов, и просто внести это значение в Мах в обджект инспекторе? в моем случае Min=0 и Max=335?? |
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 06.10.2011
Сообщений: 181
|
![]()
up.
Помогите дорешить проблему... |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,544
|
![]()
передайтте ссылку на форму(или на ProgressBar) в качестве параметра
Код:
Form1->ProgressBar1->StepIt();
программа — запись алгоритма на языке понятном транслятору
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Progress bar и кнопка | Seger17 | Общие вопросы Delphi | 1 | 05.04.2011 21:07 |
Progress Bar | Trizael | Компоненты Delphi | 3 | 07.12.2010 01:25 |
Progress bar | SKS | Компоненты Delphi | 10 | 15.08.2009 21:09 |
Progress Bar без рамки. | Mitron | Компоненты Delphi | 5 | 21.01.2008 16:33 |
Progress Bar | Alexander X | Компоненты Delphi | 2 | 17.12.2007 03:18 |