Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.08.2011, 23:43   #1
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию Событие загрузки приложения

Интересен вопрос: как можно описать событие, когда приложение начинает грузить компьютер, выполняя какие-то объемные функции, используя больше оперативной памяти и тп? Хотелось бы выводить процесс этого события, скажем, в тот же ProgressBar, чтобы пользователь явно понимал, что приложение скорее занято чем-то, нежели просто зависло.

Я уверен, это можно как-то сделать. Не подскажите как?

Последний раз редактировалось kettanaito; 21.08.2011 в 23:46.
kettanaito вне форума Ответить с цитированием
Старый 22.08.2011, 10:08   #2
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Можно, но это будут костыли.

Может лучше не надо?

Ведь намного лучше грамотно спроектировать приложение. Чтобы тяжёлую работу оно выполняло в фоновом потоке, во время работы всегда показывать песочные часики и какой-либо статус "думаю" - даже если это краткосрочно.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 22.08.2011, 10:30   #3
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
когда приложение начинает грузить компьютер, выполняя какие-то объемные функции
.. тогда для процесса этого приложения значение его показателя usertime, как правило, существенно превышает значение показателя kerneltime

Слежение за этими показателями можно осуществлять в отдельном треде с использованием ф-ции GetProcessTimes.

К прогресс-бару это не имеет отношения, но дает вполне адекватный ответ на вопрос "приложение скорее занято чем-то, нежели просто зависло ?"
mss вне форума Ответить с цитированием
Старый 22.08.2011, 13:16   #4
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

А я просто делаю форму невидимой, когда программа начинает выполнять какие-то громоздкие вычисления или работу. И на рабочем столе не висит эта непрорисовываемая до конца форма.
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 22.08.2011, 14:33   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

я лично использую потоки+синхронизация.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.08.2011, 14:48   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

В инженерных задачах или в АСУ при расчетах неплохо использовать поток+синхронизация и ProgressBar. Если с ProgressBar проблемы связанные с трудоемкостью определения количества итераций, то вместо него - анимацию
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где прописать процедуру загрузки опций приложения Fog Общие вопросы Delphi 5 10.06.2011 18:39
Событие указателя мыши если он вне приложения MyLastHit Общие вопросы Delphi 1 19.12.2010 18:11
Делаю сайты, пишу маленькие/большие скрипты. Пишу веб-приложения и приложения под Windows. SkyM@n Фриланс 3 29.12.2007 16:21