![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Всем доброго времени суток.
Задача такая: В одной форме нажимается кнопка->Запускается ProgressBar ->он заканчивает и появляется скрытая кнопка, НО 1)нужно чтобы была возможность регулировать скорость PB из другой формы, а значит скорее всего глобальная переменная 2)нужно чтобы пользователь не мог что либо нажать до тех пор, пока PB не закончит Пробовал: Код:
procedure TForm1.Button1Click(Sender: TObject); begin for i:=i to Max do begin proc := ((i * 100) div Max); ProgressBar1.Position := proc; end; end; в таком случае, без Application.ProcessMessages, соблюдается пункт 2, но необходимо чтобы переменные i и max были локальными (а мне нужно менять max, а соответственно и скорость PB из другой формы) Пробовал ещё: Код:
procedure TForm5.Button1Click(Sender: TObject); begin Tmr1.Enabled:=true; end; procedure TForm5.tmr1Timer(Sender: TObject); begin i:=i+1; PB1.Position:=i; if i=100 then Tmr1.Enabled:=False; end; Тут вроде все здорово, можно менять скорость PB изменением интервала таймера, но пользователь может нажать на другие элементы формы пока PB выполняется, а это плохо. Команда sleep останавливает и таймер, да и корректировать ее под каждую скорость PB неудобно. Прошу, люди добрые, как это реализовать? Мб кто подкинет ещё более гениальную идею, либо исправит дефекты моих способов? Запарился искать в яндексе... =\ Последний раз редактировалось lmikle, 17.01.2013 в 02:42. |
Этот пользователь сказал Спасибо R3VeRSe за это полезное сообщение: | ||
OTVET (18.01.2013)
|