Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Image


Автор: NikSer 19.5.2007, 03:40
Здравствуйте!

Такая проблема. Берется файл bmp, обрабатывается потом  кидается в  Image, опять берется другой файл, тоже также обрабатывается, это повторяется несколько раз. 
Как сделать, чтобы в обработанное изображение сразу показывался в Image? Ото у меня только последний файл выводится на экране через пол минуты!

Автор: Anikmar 19.5.2007, 08:38
В цикле обязательно надо поставить Application->ProcessMessages();

При больших картинках может не успеть вывести, а цикл уже пихает следующую. Так что надо как-то предусмотреть паузу

Автор: Klin 19.5.2007, 11:21
Для слайд шоу, действительно нужен итервал. Можно просто использовать таймер. Задаете нужный интервал и все. Можно конечно и в цикле, но ИМХО возни будет больше.

Автор: Anikmar 19.5.2007, 14:10
Цитата(Klin @  19.5.2007,  11:21 Найти цитируемый пост)
Можно просто использовать таймер. Задаете нужный интервал и все. Можно конечно и в цикле, но ИМХО возни будет больше.

Спорно.
Таймер никак не учитывает общую загрузку процессора на данный момент. Допустим пользователь запустил сразу десяток копий архиватора, которые сжимают пару десятков гигов.
Дальнейшая работа становится невозможной и он решает посмотреть слайд-шоу.
Таймеру будет по барабану - успела каритинка отрисоваться или нет.
А если задержку делать в цикле, да еще с механизмом проверки того, отрисован слайд или нет - тогда пользователь получит гарантированную паузу между слайдами вне зависимости от того, сколько времени конкретный слайд отрисовывался.

А по поводу трудоемкости - одна команда типа sleep или обработчик события таймера - по-моему одинаково нетрудоемко.

Автор: Klin 19.5.2007, 17:37
Цитата(Anikmar @  19.5.2007,  15:10 Найти цитируемый пост)
Допустим пользователь запустил сразу десяток копий архиватора, которые сжимают пару десятков гигов.

Я думаю, не об этом идет речь. smile
Но имхо, пока программа не выполнит операцию к следующей не переходит (если речь не о потоке), но проверю

Автор: aldari 22.5.2007, 21:26
А вы перед выводом изобрадения гаси таймер, а после выхода из функции отрисовки  изображения включай, OK?
А Klin дело говорит!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)