![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: нет Всего: 38 |
Есть такая задача: на форме 3 ImageList-а (16х16, 48х48, 96х96). Необходимо создать функцию, которая будет загружать из директории изображения (форматы разные: bmp, jpg, png, gif и т.д.), создавать из этих приложений превьюшки и помещать их в ImageList-ы... Если это делать в основном потоке - то форма на время замирает (что и понятно). Например, для каталога, в котором лежит 155 изображений примерно 600х600, весь процесс занимает примерно секунд 5. Долго =(.
Была такая идея - производить все действия в отдельном потоке/потоках и после каждого изображения делать репаинт ListView. Наткнулся на кучу проблем... Например, в потоке не хочет работать TPicture =((( Постоянные ошибки. Код загрузки в потоках приводить не буду, т.к. во-первых, все-равно не работает, во-вторых я его удалил... Кто-нибудь занимался подобным? Есть идеи, мысли, решения??? -------------------- ![]() |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
Не вижу, что может помешать TPicture работать в треде...
А добавлять изображения в ListView и имаджлисты нужно просто при синхронизации. Не вижу проблемы. Вероятно просто ты что-то не так делаешь... |
|||
|
||||
| aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: нет Всего: 38 |
Вот именно так и делал. Проблема возникает через какое-то время при создании TPicture Если набросаешь рабочий пример - буду очень благодарен... -------------------- ![]() |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
Набросал пример.
На форме ListView и 3 ImageList
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
Поправил код. Оптимизировал - вынес вообще всю нагрузку в тред, а в синке оставил только добавление.
Получилось не очень красиво, т.к. не хотелось делать списки/массивы и перебирать имаджлисты циклом. Зато быстро и не нагружает основной тред вообще
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Звук, графика и видео" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |