Влад (22.04.01 15:53)
Как сделать ProgressBar,
отображающий ход события Query.Open?
Александр (23.04.01 08:19)
никак IMHO. ну
приблизительно можно по статистике выполнения запроса(из предположения, за
сколько он раньше выполнялся, за столько и сейчас).
А вообще-то все
запросы должны выполнятся за время не более 1-5 сек - если правильно
составить запрос, проиндексировать и т.п.
KSergey (23.04.01 08:31)
Это возможно, если
использовать ADO-компоненты для доступа к данным. Там такое
реализовано.
Алексей (23.04.01 11:01)
Да, запрос должен работать
быстро. Но если вопрос поставить немного по другому.
Что если скажем, вам
надо отобразить процесс формирования пребольшого отчета со сложным
алгоритмом построения, кучей разных выборок, сравнейний и проверок, это что
тоже должно уместится в 1-5 сек.
Посмотри пример из Delphi
C:\Program
Files\Borland\Delphi5\Demos\Db\Bkquery
там показано как сделать "фоновый"
запрос.
Если использовать БДЕ, то может быть полезна
Callback
функция. Обрати внимание на cbCANCELQRY
Александр (23.04.01 12:09)
Посмотрел. Ну и что?
Ход
события query.Open все-равно отобразить нельзя!
А при чем тут фоновый
процесс?
и cbCancelCRY и процесс позволят прервать запрос, но не показать
ProgressBar, а все потому, что не знаем сколько он будет выполнятся
всего!-Ведь вопрос именно в этом.
А двигать-то прогресс бар как раз можно
в переллельном потоке.
Проблема в том, что невозможно узнать масштаб
этого прогресс бара ДО выполнения запроса
Dead Moroz (23.04.01 12:25)
При достижении maxvalue
начинай снова. Информативности - полное зиро, зато будешь знать что прога не
повесилась.
Алексей (23.04.01 13:40)
Да и не надо
информативности, главное иллюзия для пользователя. Пусть он думает, что все
так и надо. Вот например в Internet Explorer тоже есть ProgressBar, и я
когда-то думал что он тоже что-то отображает.
Dead Moroz (25.04.01 16:19)
Господа, есть предложение.
В RX есть такой забавный компонент - RXDice, конкретное назначение коего мне
до сих пор не ясно, но не в этом суть. Смысл в следующем: привязать
приращение ProgressBar к валюесу этого самого кубика, дабы прогрессбар
изменялся при "выпадении" валюеса кубика. Должно получиться забавно.
Предлагаю обсудить и, возможно, реализовать (если в этом есть какой-то
смысл)
Алексей (26.04.01 10:55)
Да но помоему RX работает
только с БДЕ.
Dead Moroz (26.04.01 11:32)
Дайсу БДЕ не
нужен.
Вместо стандарстного прогресс бара можно взять LEDMeter из
набора Simon (http://www.picsoft.de/), получится
красивенько.
---
Из конференции сайта МАСТЕРА DELPHI
(delphi.mastak.ru)
|
Copyright ©
"Мастера DELPHI" E-mail:
delphi@mastak.com
http://www.delphimaster.ru |
Источник получения информации: http://www.delphimaster.ru
|