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

Вниз

Обновление окнон программы при выполнении длинной операции.   Найти похожие ветки 

 
Саша ©   (2002-05-17 12:21) [0]

Что сделать, чтобы окна программы отрисовывались при выполнении длинной операции, а то создается ошюшение что она висит.
И еще можно ли какнибудь сделать прогрессбар при открытии Excel"я в из моей программы(я делаю в нем отчеты). Excel открываю так: CreateOleObject("Excel.Application")
Заранее благодарен.


 
Виктор Щербаков ©   (2002-05-17 12:24) [1]


> Что сделать, чтобы окна программы отрисовывались при выполнении
> длинной операции, а то создается ошюшение что она висит.

"длинную операцию" вынеси в другой поток. Иногда проще вызывать Application.ProcassMessages во время выполнения каких-либо вычислений etc.

> И еще можно ли какнибудь сделать прогрессбар при открытии
> Excel"я в из моей программы(я делаю в нем отчеты). Excel
> открываю так:CreateOleObject("Excel.Application")

А вот это вряд ли.


 
Саша ©   (2002-05-17 12:26) [2]

А как можно вынести в другой поток?


 
Виктор Щербаков ©   (2002-05-17 12:46) [3]

См. в хэлпе TThread
и в SDK Using Processes and Threads.
А вобщем всё начинается с File|New|Thread Object.


 
Саша ©   (2002-05-17 13:21) [4]

Спасибо, попробую разобратся.


 
Саша ©   (2002-05-17 13:24) [5]

А еще скажите пожалуйста целесообразно будет так сделать или нет.
for i:=1 to 1000 do begin
//какие то действия
aplication.processmessage
end;

Не будет ли это тормозить выполнение основных действий. Спасибо


 
Виктор Щербаков ©   (2002-05-17 13:32) [6]

Саша © (17.05.02 13:24)

> А еще скажите пожалуйста целесообразно будет так сделать
> или нет.

Тут сложно ответить однозначно. Всё зависит от времени выполнения тела цикла.
В случае нескольких вложенных циклов нужно подумать куда поставить вызов aplication.processmessages. Можно поэкспериментировать стремясь к тому, чтобы processmessages вызывался как можно реже, но чтобы программа при этом своевременно реагировала на действия пользователя.

> Не будет ли это тормозить выполнение основных действий.
> Спасибо

Будет уходить время на обработку сообщений, но ведь тебе это и нужно.


 
Саша ©   (2002-05-17 13:50) [7]

Я уже добавил в обработку отчета processmessage. Программа встает только на открытии excel"я тут наверное без отдельного потока не обойтись, а в начале расчета отчета уже можно работать дальше, и скорость создания отчет вроде упала на пару сек. или вообще не упала.
Спасибо вам большое за помощь.


 
sudiv ©   (2002-05-17 14:05) [8]

to Саша © (17.05.02 13:50)
Давно как то тестировал этот ProcessMessage.
Скорость падает очень незначительно.



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

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

Наверх




Память: 0.48 MB
Время: 0.01 c
14-88607
lipskiy
2002-04-18 13:52
2002.05.27
Народ! Возник вопрос о необходимости одного поля в UBPFD !


6-88588
kvcomp
2002-03-16 01:12
2002.05.27
Соединение с Интернетом!


3-88380
fliz
2002-04-29 11:21
2002.05.27
ADO + DBGrid. Добавление-отмена д-я записи приводит к сообщению


3-88339
pegas7
2002-04-30 13:14
2002.05.27
Параметры с нулевым значением


4-88667
Vilux
2002-03-26 02:30
2002.05.27
Список запускаемых прог на компе