Вниз
Скачать: CL | DM;

ProgressBar при формировании запроса...   Найти похожие ветки 

 
rexelf ©   (2004-04-27 13:55) [0]

Формируется запрос около 5 мин. Как на форму выбросить бегающий ProgressBar или что-то аналогичное, чтоб создать видимость работы программы (чтоб у юзера не возникала мысль что комп висит)...


 
Гаврила ©   (2004-04-27 13:56) [1]

Какой запрос?


 
rexelf ©   (2004-04-27 13:57) [2]

Как на форму выбросить бегающий ProgressBar или что-то аналогичное, чтоб создать видимость работы программы (чтоб у юзера не возникала мысль что комп висит)...


 
Тимохов ©   (2004-04-27 13:58) [3]

если 5 минут вопрос формируется, то сколько он будет выполняться?

Обычно делается это так: выполнение запросы выносится в отдельный поток, а в основном потоке обновляется progressbar. Но! Здесь сложность заключена в том, чтобы понять сколько из запроса уже выполнилось.


 
rexelf ©   (2004-04-27 13:59) [4]

точнее как реализовать сам механизм движения Bar-а, к чему привязать....?


 
Тимохов ©   (2004-04-27 13:59) [5]


> rexelf ©   (27.04.04 13:57) [2]

Вы зря вопрос поменяли, т.к. это совершенно другой вопрос.


 
rexelf ©   (2004-04-27 14:01) [6]

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


 
Тимохов ©   (2004-04-27 14:02) [7]

запустить запрос в отдельном потоке.


 
rexelf ©   (2004-04-27 14:03) [8]

это для меня ничего не говорит... :-( можно поподробнее...


 
Тимохов ©   (2004-04-27 14:07) [9]

делать за вас не буду, но помогу ссылками на документацию:
1. Изучите класс TThread. Посмотрите примеры на этот класс в директории Demos\Threads (где дельфи установлена)
2. Особенно уделите вринимание методоку synchronize класса TThread.

Читать, не читать - решайте сами.


 
Smithson ©   (2004-04-27 14:08) [10]

Ну так и сделать. Создай таймер и по его тикам наращивай прогрессбар. А вот как сделать, чтобы движение прогрессбара отражали степень готовности - думай сам, мы-то твой проект не видим и не знаем, как у тебя там что...


 
Тимохов ©   (2004-04-27 14:11) [11]

Ну да - про TTimer еще почитайте.

> Smithson ©   (27.04.04 14:08) [10]

Все равно имхо ему потоки пригодятся, т.к. запрос к базе выполняется синхронно (скорее всего - автор не сказал) - по сему никакой timer работать не будет.


 
Smithson ©   (2004-04-27 14:12) [12]

Согласен.


 
Smithson ©   (2004-04-27 14:13) [13]

Для того, чтобы таймер срабатывал, необходимо запускать обработку сообщений. То есть в длинном цикле вызывать периодически Application.ProcessMessages()


 
Тимохов ©   (2004-04-27 14:14) [14]


> . То есть в длинном цикле вызывать периодически Application.ProcessMessages()

Ага, пусть sql сервер и вызывает :)))) (шучу)


 
ламер ©   (2004-04-27 17:02) [15]

для получения состояния SQL-запросов в BDE есть CallBack-функции. искать в bde32.hlp по фразе "Callback functions".

так же можно воспользоваться компонентом TDBProgress из RxLib, который реализует wrapper на эти функции.



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

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.024 c
3-1082058087
mur
2004-04-15 23:41
2004.05.16
вместо букв - закорючки


1-1083608362
ceval
2004-05-03 22:19
2004.05.16
подскажите как поверх рисунка вывести компанент Label (написать т


1-1082982201
w666w
2004-04-26 16:23
2004.05.16
Как узнать о существовании объекта?


14-1082914716
Knight
2004-04-25 21:38
2004.05.16
FAQ, примеры кода, статьи и прочее...


1-1083276815
Dumnok
2004-04-30 02:13
2004.05.16
Версия exe-файла




   Наверх