Форум: "Основная";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.032 c