Главная страница
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.027 c
1-1083241514
V-Isa
2004-04-29 16:25
2004.05.16
Scroll в Delphi 3


1-1083325285
Sema
2004-04-30 15:41
2004.05.16
Как вставить гиперссылку в документ word ?


1-1083482796
Tishaishy
2004-05-02 11:26
2004.05.16
Синхронизация потоков , нужна помощь


1-1083415414
Jiurasdfgfr
2004-05-01 16:43
2004.05.16
Как в StringGrid вызвать OnDrawCell?


6-1080436071
NND
2004-03-28 05:07
2004.05.16
-= Определение подключен ли комп к сети =-