Форум: "Базы";
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];
ВнизПрогресс бар Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c