Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.01;
Скачать: CL | DM;

Вниз

Прогресс бар   Найти похожие ветки 

 
Ross ©   (2002-02-17 18:39) [0]

Здравствуйте. Подскажите, как отобразить форму с прогрессом пока выполняются 12 запросов. В принципе я это знаю, но не могу сделать только связку: Пока запросы выполняются отобразить состояние в прогрессе. Поделитесь как вы это делаете.
Спасибо.
Ростислав


 
wdr ©   (2002-02-18 06:07) [1]

Проссумирой кол-во записей во всех таоих запросах и присвой это значение твоему ProgressBar1.Max
а дальше так:
ProgressBar1.Step:=1;
while not query1.Eof do begin
...
...
ProgressBar1.SteepIt;
end;
while not query2.Eof do begin
...
...
ProgressBar1.SteepIt;
end;

и т.д.


 
VladP   (2002-02-18 18:50) [2]

По моему в RXLib есть компонент DBProgress. Попробуй его.


 
Ross ©   (2002-02-21 20:52) [3]

Все равно не получается. ДБПрогресс из RX не поддерживает это, В то же время мне нужно немножко другое:
Пока идет Query1.Open, потом Query2.Open, Query3.Open и.т.д., именно это отображать в прогрессе.
Спасибо.
Ростислав


 
Desdechado ©   (2002-02-22 10:28) [4]

progressbar.max:=12;
progressbar.position:= 0;
q1.ExecSQL;
progressBar.StepBy( 1 );
q2.ExecSQL;
progressBar.StepBy( 1 );
...
q12.ExecSQL;
progressBar.StepBy( 1 );

:)


 
Johnmen ©   (2002-02-22 10:40) [5]

>Ross © : Полноценно отобразить ProgressBar при выполнении запроса невозможно !!! Лучше давай заставку типа "ЖДИТЕ".


 
Ross ©   (2002-02-22 16:28) [6]

А может как нибудь все это связать с таймером, лейблу в начале процедуры, лейблу в конце. От первой и до второй лейблы - это время пока выполняется процедура. Вот это и связать с прогрессом. Или я глупость сказал...
Ваше мнение...
Спасибо.
Ростислав


 
bas   (2002-02-22 16:35) [7]

Делай как в IExpoler, т.е. вроде прогресс бар работает, а вроде и нет, а после того как запрос выполнился прогресс до конца доводи. Ну да нужен б. процесс паралельный создавать


 
ne   (2002-02-25 06:01) [8]

Отобразить точно ход выполнения запроса в принципе невозможно
Единственный выход который я нашел - это загонять каждый запрос в отдельный поток - при этом основная форма остается свободной - и на ней гонять прогресс
когда запрос кончается - в терминате потока снимать прогресс
я сделал так - пользователи довольны
в дельфях есть примеры как это сделать + на здесь это уже обсуждалось - полазь и найди


 
Natalishka ©   (2002-02-25 07:18) [9]

может так
Procedure TForm1.btnWorkStar(Sender: tObject);
lable 10;
var s:real;
begin
btnWorkStart.Enable:=false;
btnWorkBreak.Enable:=true;
s:=0
ProgressBar1.Max:=Table1.RecordCount;
Table1.DisableControls;
Table1.First
while not Table1.EOF do begin
s:=s+Table1.FieldByName("поле").as...
Application.ProgressMessages;
ProgressBar1.Position:=Table1.RecNo;
Lable.caption:=
IntToStr(Round(ProgressBar1.possition/ProgressBar1.Max*100))+"%";
IF
WorkBreak then goto 10;
Table1.next;
end;
10:
Table1.EnableControls;
ProgressBar1.Position:=0;

btnWORKSTART.Enable:=true;
btnWorkBreak.Enable:=False;
WorkBreak:=false;
end;

//
var Form1: TForm1;
WorkBreak: boolean;


 
AlexNord ©   (2002-03-11 03:54) [10]

Мдяяя у самого проблема такая, я думаю нгадо на потоки разделять все, потому что арос когда запускается выборка занимает время и непонятно сколько там записей в нем, а стопорить прогрес бар и потом когда выборка окончилась добиват его до количества выбранных записей это не выход из положения, если запрос большой, то такой глюк выходит визуальный..:(((



Страницы: 1 вся ветка

Текущий архив: 2002.04.01;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
14-309
McSimm
2002-02-18 15:47
2002.04.01
Клиент для форумов. Dolphin 1.2. Новая версия.


14-292
Василий
2002-02-16 00:24
2002.04.01
Хороший водитель может и не знать о том как устроен движек, но классным гонщиком при таком подходе он ни когла не станет!!!


1-133
Vampire
2002-03-21 20:43
2002.04.01
Поверх всех окон и не только


1-252
Dok_3D
2002-03-20 14:36
2002.04.01
Как программно удалить COM+ приложение ?


3-46
Dimonka
2002-03-07 11:49
2002.04.01
Ошибка в TQuery