Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.16;
Скачать: 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 вся ветка

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

Наверх




Память: 0.5 MB
Время: 0.028 c
1-1083233376
ЁПРСТ
2004-04-29 14:09
2004.05.16
Размер ComboBox`а


1-1083688521
Влад Сташневский
2004-05-04 20:35
2004.05.16
Узнать адрес в программе вызова процедуры


1-1083643955
Sirus
2004-05-04 08:12
2004.05.16
Trace into и Source file not found: somefile.pas....


9-1067790741
Unknown user
2003-11-02 19:32
2004.05.16
Оцените возможности 3D OpenGL движка.


1-1083078445
er
2004-04-27 19:07
2004.05.16
Загрузка jpg картинки из ресурсов.