On-line: tnsr2, гостей 0. Всего: 1 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 173
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 28.10.11 22:54. Заголовок: ProgressBar и индексация


Подскажите, пожалуйста, как сделать так, чтобы ProgressBar показывал реиндексацию CDX индекса и обновление автоматически заполняемых полей. Для расчёта полей применяются запросы к другой таблице. Почему-то если в качестве источника значения использовать RECNO, прогрессбар стоит на месте. Что делать, чтобы он правильно реагировал на передвижение по таблице?
Цикл заполнения вычисляемых полей DO WHILE !(EOF()).... DBSKIP() ENDDO

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 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



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1905
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.10.11 16:32. Заголовок: Классный пример. А ..


Классный пример.

А можно сделать так, чтобы ProgressBar показывался в отдельном окне поверх программы и после завершения окно закрывалось ?
А то я никак правильно такую простую вещь сделать не могу....

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 17
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет