Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Длительное выполнение программы 
:(
    Опции темы
chiffa
Дата 25.7.2007, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: нет
Всего: -1



Всем привет. Столкнулся с такой проблемкой. Программа вставляет в еклесь данные  по 4 столбца, окло 80-т строчек, вкаждый лист книги, всего 100 листов. при этом программа на долго задумывается. как сделать что бы пользователь не подумал что прога висит?
PM MAIL   Вверх
sentry
Дата 25.7.2007, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Code Monkey
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 29.1.2007
Где: Москва

Репутация: нет
Всего: 10



Либо использовать ProgressBar, либо просто в окошке просить пользователя подождать.
PM MAIL   Вверх
ALeXandrK
Дата 25.7.2007, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 342
Регистрация: 31.1.2007
Где: Санкт-Петербург

Репутация: 1
Всего: 6



Используй ProgressBar, тем более, что ты знаешь объем работы, который должна выполнить программа.

Код

ProgressBar.Max := 80*4*100; //Кол-во объектов
ProgressBar.Min  := 0; //Стоит по умолчанию, так что менять не нужно
ProgressBar.Step := 1; //Размер шага, т.е. сколько объектов ты вставляешь за раз


А где-нибудь в своем алгоритме, который вставляет твои объекты в Excel, напиши после самой вставки:

Код

ProgressBar.StepIt; //значение ProgressBar.Position измениться на твой ранее выставленный шаг


P.s.: и еще... чтобы программа подавала признаки жизни, вставь в алгоритме строку
Код

Application.ProcessMessages;



Это сообщение отредактировал(а) ALeXandrK - 25.7.2007, 13:16


--------------------
Богат не/ни тот, у кого много, а тот, кому хватает
PM WWW   Вверх
chiffa
Дата 25.7.2007, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: нет
Всего: -1



Пасиба! а могу ли я как то поменять дизайн ProgressBar?

Добавлено через 5 минут и 37 секунд
И еще могу ли я как то выводит что то вроде. "Обработа листов:" их количество которое меняется.
PM MAIL   Вверх
sentry
Дата 25.7.2007, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Code Monkey
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 29.1.2007
Где: Москва

Репутация: нет
Всего: 10



Цитата(chiffa @  25.7.2007,  14:34 Найти цитируемый пост)
Пасиба! а могу ли я как то поменять дизайн ProgressBar?

Тогда поищи красивый сторонний компонент. Или посмотри на вкладке Samples компонент Gauge.

Цитата(chiffa @  25.7.2007,  14:34 Найти цитируемый пост)
И еще могу ли я как то выводит что то вроде. "Обработа листов:" их количество которое меняется.

Можешь. В своей программе делаешь переменную(Count), в которой хранишь количество заполненных листов. 
То есть, например, заполнил лист, увеличил переменную на 1, изменил надпись "Обработано столько-то", посчитал процент Count/100 * 100 = Count и все.
PM MAIL   Вверх
chiffa
Дата 25.7.2007, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: нет
Всего: -1



пасиба. будем пробывать smile
PM MAIL   Вверх
ALeXandrK
Дата 25.7.2007, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 342
Регистрация: 31.1.2007
Где: Санкт-Петербург

Репутация: 1
Всего: 6



Если хочешь серьезный ProgressBar, то советую две библиотеку Globus
или JEDI-VCL, в которой тоже есть компоненты из библиотеки Globus, 
плюс своих ещё полно smile 

Так вот! В этом ProgressBar можно задавать и цвет заливки, причем
и фона и заполнения, и текст можно вставлять какой хочешь и много еще
чего полезного есть.

Вообщем, я пока лучшую замену стандартному не нашел smile 

Это сообщение отредактировал(а) ALeXandrK - 25.7.2007, 18:13


--------------------
Богат не/ни тот, у кого много, а тот, кому хватает
PM WWW   Вверх
pseud
Дата 25.7.2007, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 10
Всего: 40



IMHO достаточно взять со страницы Samples стандартный компонент Gauge



--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
chiffa
Дата 26.7.2007, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: нет
Всего: -1



ALeXandrK, пасиба! а как его подключить и использовать?....
PM MAIL   Вверх
ALeXandrK
Дата 26.7.2007, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 342
Регистрация: 31.1.2007
Где: Санкт-Петербург

Репутация: 1
Всего: 6



Качаешь, например JEDI-VCL отсюда, последнюю версию.
Обязательно включая библиотеки JCL. То есть название должно быть примерно таким:
JVCL332CompleteJCL1100-Build2646.zip .

Дальше всё просто:
  • Разархивируешь все в нужную папку. Желательно чтобы путь не содержал пробелов и русских букв.
  • Заходишь в разархивированную папку, а там в папку JCL.
  • Находишь там файл Install.bat и запускаешь его.
  • Откроется окно, в котором все будет понятно. Выберешь там папку для bpl и dcp файлов.
  • Жмем Install. 
  • Теперь тоже проделываем в папке JVCL. Только с той разницей, что в окне установки можно
    будет выбрать нужные компоненты.
Вот и все.

Не обещаю, что всё пройдет гладко, но на мой взгяд, оно того стоит smile 
Если что-то не получется, то почитай Install.txt в каждой из папок. Там всё пошагово описано.
Возможно только одна проблема - пути с пробелами или русскими буквами, т.к. bat файлы с ними не дружат smile 

Удачи.

P.s.: про использовать... да так же как обычный. Лежит он на вкладке JVCLGlobus1, а называется TjvgProgress smile 
Я думаю в свойствах разобраться труда не составит.

Это сообщение отредактировал(а) ALeXandrK - 26.7.2007, 12:05


--------------------
Богат не/ни тот, у кого много, а тот, кому хватает
PM WWW   Вверх
aktuba
Дата 26.7.2007, 16:15 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 7
Всего: 38



Цитата

на мой взгяд, оно того стоит


А на мой - не стоит использовать в простейших случаях сторонние компоненты. И программа разрастаеться и привычка вырабатывается нехорошая  smile 


--------------------
user posted image
PM MAIL WWW Skype   Вверх
ALeXandrK
Дата 26.7.2007, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 342
Регистрация: 31.1.2007
Где: Санкт-Петербург

Репутация: 1
Всего: 6



Цитата

А на мой - не стоит использовать в простейших случаях сторонние компоненты. И программа разрастаеться и привычка вырабатывается нехорошая.


Я тоже сначала хотел написать, что нужно хорошенько подумать, а стоит ли оно того, чтобы
применять сторонние компоненты. Но мне кажется, новичку будет полезно поиметь такой опыт
использования сторонних компонентов.
А там он и сам решит и всё поймёт smile 

chiffa: Так что, если ты учишься и постигаешь, то устанавливай, если нужно что-то сделать в срок, то не парься smile 

Это сообщение отредактировал(а) ALeXandrK - 26.7.2007, 17:49


--------------------
Богат не/ни тот, у кого много, а тот, кому хватает
PM WWW   Вверх
Yanis
Дата 26.7.2007, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 6
Всего: 111



Цитата(sentry @  25.7.2007,  13:51 Найти цитируемый пост)
Либо использовать ProgressBar, либо просто в окошке просить пользователя подождать.

Я бы выбрал второй вариант. Можно ещё анимашку влепить. Юзеры писают кипятком.
А вот постоянно обновлять ProgressBar и менять его положение в одном с алгоритмом потоке я бы не стал. 
Просто всё будет работать дольше!

Это сообщение отредактировал(а) Yanis - 26.7.2007, 19:06


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
ALeXandrK
Дата 26.7.2007, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 342
Регистрация: 31.1.2007
Где: Санкт-Петербург

Репутация: 1
Всего: 6



Ну мы начинаем уже углубляться в design. Тогда уже нужно подходить по полной программе - с анализом ситуации smile 
Посмотреть на сколько твой процесс добавления тянеться, если не очень долго, то я бы поставил анимашку, как
посоветовал Yanis, если же долго, то прикрутил бы StatusBar, чтобы по скорости приближения к завершению процесса,
пользователь оценил - успеет ли он за это время чайку попить или в кино сходить smile 

Это сообщение отредактировал(а) ALeXandrK - 26.7.2007, 19:27


--------------------
Богат не/ни тот, у кого много, а тот, кому хватает
PM WWW   Вверх
chiffa
Дата 27.7.2007, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: нет
Всего: -1



Цитата(ALeXandrK @  26.7.2007,  19:26 Найти цитируемый пост)
успеет ли он за это время чайку попить или в кино сходить


ЖЕСТЬ! а с анимашкой это как?....

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0565 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.