Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > ProgressBar для ADOQuery


Автор: Novichek27 7.3.2011, 22:36
Привет всем участникам форума!

На форме есть кнопка при нажатии которой выполняются процедуры заполнения таблиц из Excel в Access:


Код

procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Button1Click(Self); //заполнение 1-ой таблицы
Form3.Button1Click(Self); //заполнение 2-ой таблицы
Form4.Button1Click(Self); //заполнение 3-ей таблицы
Form5.Button1Click(Self); //заполнение 4-ой таблицы
Form6.Button1Click(Self); //заполнение 5-ой таблицы
end;


Как сделать ProgressBar для этой процедуры.  smile 


Автор: Данкинг 7.3.2011, 23:27
Н-да. smile Ну, можно сделать просто и тупо:
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
 gauge1.Maxvalue:=6;
 gauge1.Progress:=gauge1.Progress+1;
 application.processmessages;
 Form2.Button1Click(Self); //заполнение 1-ой таблицы
 gauge1.Progress:=gauge1.Progress+1;
 application.processmessages;
 Form3.Button1Click(Self); //заполнение 2-ой таблицы
 gauge1.Progress:=gauge1.Progress+1;
 application.processmessages;
 Form4.Button1Click(Self); //заполнение 3-ей таблицы
 gauge1.Progress:=gauge1.Progress+1;
 application.processmessages;
 Form5.Button1Click(Self); //заполнение 4-ой таблицы
 gauge1.Progress:=gauge1.Progress+1;
 application.processmessages;
 Form6.Button1Click(Self); //заполнение 5-ой таблицы
end;

smile

Автор: salik 8.3.2011, 22:54
Можно заполнять таблицы в отдельном потоке, а отображать процесс используя критические секции. TCriticalSelection описан в модуле SyncObj

Автор: northener 9.3.2011, 03:20
Цитата(Данкинг @  7.3.2011,  23:27 Найти цитируемый пост)
Н-да. smile Ну, можно сделать просто и тупо:

Теоретически ProcessMessages тут излишен. Автор ведь только желал обновления ПрогрессБара, а не реагирования на все сообщения Windows. Достаточно вызывать напрямую функции перерисовки ПрогрессБара.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)