Модераторы: 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   Вверх
pseud
Дата 27.7.2007, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(aktuba @  26.7.2007,  16:15 Найти цитируемый пост)
А на мой - не стоит использовать в простейших случаях сторонние компоненты. И программа разрастаеться и привычка вырабатывается нехорошая    


поддерживаю

потом переставим винду, дельфи
или занесем етот проект на другой комп
откроем проект и начинается:
  - нам надо побыстрому изменить алгоритм експорта в ёхель (основная часть)
  - а нифига не фачит, потому что надо теперь искать и устанавливать етого красавчика прогрессбара кульного.



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


Опытный
**


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

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



Цитата

а с анимашкой это как?....


Ну простейший способ:
  • берешь gif анимированный
  • в нужное место кидаешь TImage
  • в него грузишь этот gif
  • а дальше ... прячешь или показываешь
 

Вообще это уже другой вопрос.
А правила гласят: одна тема = один вопрос smile 

А вообще, включи фантазию... задачка то детская smile 

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


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


Эксперт
****


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

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



Цитата(ALeXandrK @  27.7.2007,  13:18 Найти цитируемый пост)
Ну простейший способ:

Простейший?
Из-за твоих слов человек может заблуждаться.
Сам же говорил, что надо помогать.

Анимашка это легко.
Достаточно бросить на форму TAnimate с Win32 и выбрать через свойство CommonAVI подходящую анимашку или, если таковой не нашлось, запихнуть туда свою.


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


Опытный
**


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

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



 smile 
Цитата

Цитата(ALeXandrK @  27.7.2007,  13:18 )
Ну простейший способ:


Простейший?
Из-за твоих слов человек может заблуждаться.
Сам же говорил, что надо помогать.


Про TAnimate я просто забыл smile 


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


Эксперт
****


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

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



ALeXandrK
Да и вообще добавить gif картинку в проект нетривиальная задача, если разобраться, если по хорошему.

Это сообщение отредактировал(а) Yanis - 5.8.2007, 14:07


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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