Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.24;
Скачать: CL | DM;

Вниз

Как сделать индикацию процесса обработки данных???   Найти похожие ветки 

 
StenKz ©   (2003-02-06 08:37) [0]

Как сделать индикацию процесса обработки данных??? Пусть даже примерную…
Была мысль – взять допустим прогресс бар, и прописать например свойство

TDM.TDepAfterScroll

Например
procedure TDM.TDepAfterScroll(DataSet: TDataSet);
begin
If FormOtch.PBA.Position=FormOtch.PBA.Max
Then FormOtch.PBA.Position:=0
Else FormOtch.PBA.StepIt;
end;

Но возникает трудность – получается как бы циклическая ссылка. Форма отчётов использует форму датамодуля. А при прописывании свойства AfterScroll форма датамодуля пытается управлять компонентом формы отчетов. При компиляции вылетает ошибка..

Форма FormOtch

implementation
Uses Datamod;

Форма Datamod
implementation
Uses FormOtch


 
Mitechka   (2003-02-06 09:39) [1]

Я писал для себя отдельный модуль он запускает отдельную форму. Форм сожет быть сколько угодно много, типа для процесс-подпроцесс. На форме может быть прогрессбар и список сообщений. Процесс можно попробовать (зависит от программы вызывающей) прервать пробуя закрыть форму индикатора. Если точно известно сколько всего можно использовать прогрессбар, если нет можно писать сообщнния типа "Сделано 300", и перетирать число, 400, 500 ... или дописывать в список типа "делаю то, сделала, теперь делаю это". Жаль, что нельзя сюда кинуть скриншот :( А так, если интересно и не лень разбираться, то напиши - пришлю код по почте. Размер кода 11К, комментарии внутри вроде бы есть :) Пример использования из текста программы:

ProcessIndOn("Получение данных","",0,2);
i:=1;
while not ProcessIndStop and (i<=Amount) do
begin
ProcessInd(i/Amount);
if V[i]<0 then ProcessIndMes("Негативное значение в ячейке "+IntToStr(i)");
...
inc(i);
end;
ProcessIndOff;


 
Stenkz ©   (2003-02-06 09:49) [2]

Удалено модератором
Примечание: Личная переписка, используй для это емайл


 
Соловьев ©   (2003-02-06 09:52) [3]

А как ты создаешь процес? Попробуй

ProgressBar.Max := Table.RecordCount;
while not Eof do
begin
...
ProgressBar.Position := ProgressBar.Position+1;
Next;
end;


 
Stenkz ©   (2003-02-06 10:03) [4]

То Соловьев Это понятено...

Но у меня например, формируется отчет в эксел, а у компонента нет свойства ONProgress... Вот для такого случая как быть?


 
Соловьев ©   (2003-02-06 10:24) [5]

у меня так сделано:
try
//тут код тот что выше
finally
//показываешь отчет
end;


 
Stenkz ©   (2003-02-06 11:15) [6]

А если отчет формируется долго?
Как показать пользователю, что прога не висит а работает...


 
Соловьев ©   (2003-02-06 11:16) [7]

Делаешь SplashForm где вешаешь свой прогрес бар или какую-нибудь еще анимацию...


 
Stenkz ©   (2003-02-06 11:27) [8]

То Соловьев © (06.02.03 11:16)

Поясните пожайлуста, подробнее.


 
Соловьев ©   (2003-02-06 11:31) [9]

Создаем свой класс - TSplashForm(аналог из RxLib или берем оттуда): там будет и прогресбар и анимация.
потом при нажатии кнопки "Отчет":
MySplsh := TSplashForm.Create;
try
...
//тут уже писано-переписано- формируем отчет
finally
MySplash.Free;
//показываем отчет
end;


 
alexdbases ©   (2003-02-07 10:11) [10]

to Соловьёв плюс к форме.....Mysplash:=TMySplashForm.Create(Application<это тоже вроде как надо добавить>)
Ну и наконец
MySplash.Show;MySplash.Update..
И мы можем управлять контролами на MySplash....из другого модуля...)


 
Stas ©   (2003-02-07 10:24) [11]

Попробуй свой процесс сделать дополнительным т.е в фоновом рижиме, тогда прога будет работать нормально, а процесс будет сам собой проходить в фоновом режиме. Создать->Дополнительный процесс



Страницы: 1 вся ветка

Текущий архив: 2003.02.24;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
1-75928
Slonic75
2003-02-14 10:55
2003.02.24
Проблема с запуском приложения из win-сервиса.


14-76113
vopros
2003-02-05 17:17
2003.02.24
Я закодировался.И чувствую себя великолепно.


14-76124
Amit
2003-02-06 08:05
2003.02.24
Не знаю как, и дальше жить. Помогите разобратся?


1-75988
Softik
2003-02-12 20:31
2003.02.24
Работаю с 1С через ОЛЕ. Программа работает на разлчиных машинах.


14-76131
AlexZ
2003-02-06 07:51
2003.02.24
Не загружаются дайджесты