Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.05.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
Саша   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.006 c
1-88557
Сатир
2002-05-16 15:12
2002.05.27
Определение битмапы для нового компонента


3-88388
Oleg_er
2002-05-04 11:05
2002.05.27
Создание таблицы


1-88423
MisterBin
2002-05-16 18:17
2002.05.27
Как запретить нажатие стрелок


6-88569
beginner
2002-01-13 13:18
2002.05.27
Помогите люди добрые, а то мне .....


4-88691
pasha_golub
2002-03-26 16:14
2002.05.27
Передача текста в чужое окно





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский