Автор | Сообщение |
|
| постоянный участник
|
Пост N: 173
Зарегистрирован: 27.07.08
|
|
Отправлено: 28.10.11 22:54. Заголовок: ProgressBar и индексация
Подскажите, пожалуйста, как сделать так, чтобы ProgressBar показывал реиндексацию CDX индекса и обновление автоматически заполняемых полей. Для расчёта полей применяются запросы к другой таблице. Почему-то если в качестве источника значения использовать RECNO, прогрессбар стоит на месте. Что делать, чтобы он правильно реагировал на передвижение по таблице? Цикл заполнения вычисляемых полей DO WHILE !(EOF()).... DBSKIP() ENDDO
|
|
|
Ответов - 3
[только новые]
|
|
|
| moderator
|
Пост N: 281
Зарегистрирован: 11.02.10
|
|
Отправлено: 29.10.11 15:18. Заголовок: Dr. Oldwarez пишет: ..
Dr. Oldwarez пишет: цитата: | как сделать так, чтобы ProgressBar показывал |
| Посмотри следующий рабочий пример (тонкость состоит в использовании команды DO EVENTS ) цитата: | #include "minigui.ch" Function Main define window sample at 0,0 width 640 height 480 main define button b1 row 10 col 10 caption "Press Me" action showprogressbar() end button end window sample.center sample.activate Return nil function showprogressbar define progressbar p1 row 100 col 100 width 200 parent sample rangemin 1 rangemax 90 value 0 end progressbar define textbox t1 parent sample row 240 col 10 width 100 numeric .t. rightalign .t. value 0 end textbox define textbox t2 parent sample row 270 col 10 width 100 numeric .t. rightalign .t. value 0 end textbox For i := 1 to 100 sample.t1.value := i for j := 1 to 200 sample.t2.value := j do events next j sample.p1.value := i next i inkey(1) sample.p1.release sample.t1.release sample.t2.release return nil |
|
|
|
|
|
| постоянный участник
|
Пост N: 1905
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.10.11 16:32. Заголовок: Классный пример. А ..
Классный пример. А можно сделать так, чтобы ProgressBar показывался в отдельном окне поверх программы и после завершения окно закрывалось ? А то я никак правильно такую простую вещь сделать не могу....
|
|
|
|
| постоянный участник
|
Пост N: 174
Зарегистрирован: 27.07.08
|
|
Отправлено: 30.10.11 00:13. Заголовок: Не проблема. После з..
Не проблема. После завершения цикла обработки просто поставьте wndProgressBar.release DEFINE WINDOW wndProgressBar AT 30,0; WIDTH 365 HEIGHT 245; TITLE "ИДЕТ ОБРАБОТКА ДАННЫХ"; ON INIT DataCalc(nMaxLen) @ 70,31 PROGRESSBAR ProgressCalc ; RANGE 0,nMaxLen ; WIDTH 300 HEIGHT 26 ; TOOLTIP "ProgressBar" wndProgressBar.TextTable.Enabled := .F. END WINDOW CENTER WINDOW wndProgressBar ACTIVATE WINDOW wndProgressBar PROCEDURE DATACALC(nMaxLen) FOR i=1 TO MAXLEN /* тело цикла*/ wndProgressBar.ProgressCalc.Value:=i NEXT i wndProgressBar.Release RETURN
|
|
|
|