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

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

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.07.2012, 12:35   #1
yajohn
Новичок
Джуниор
 
Регистрация: 16.07.2012
Сообщений: 0
По умолчанию Delphi, отображение галереи изображений в TListView

Цель: отображение изображений в стандартном TListView
Каждое изображение имеет уникальный ID: string, идентификатор группы GroupID: string и несколько полей Fields: array of string (для vsReport). Размер изображений - до 2048х2048.
Первоначально ListView заполняется списком изображений Add(const ID, GroupID: string; const Fields: array of string);
Непосредственно изображения могут быть в любой момент получены с помощью имеющейся функции GetImage(const ID: string; Data: TStream); Данные в потоке - стандартный TBitmap или ТPngImage, что именно - надо определить самому по заголовкам. Изображения могут быть битыми (например пустой Stream), реагировать надо адекватно (показать стандартное изображение a-la "bad image").
В режиме vsIcon размер изображений может меняться с помощью функции Zoom(ImageSize: integer). Предусмотрена возможность вызова функции Zoom из обработчика колесика мыши при нажатом Ctrl. Зуммирование колесиком мыши должно быть плавным и быстрым, от 16х16 до максимума, когда один Item занимает все доступное место в ListView.
В приложении активно используются стандартные возможности TListView, такие как multiselect, сортировка, переключение ViewStyle, группировка. Все это, соответственно, надо протестировать.
Среда - Delphi XE2.

Все это просто и в общем-то банально. Теперь соль.
Изображений много. Конкретно: необходимо гарантировать хорошую работу при 10000 (десять тысяч) изображений. Хорошая работа означает плавную прокрутку и зуммирование.
Функция GetImage(const ID: string; Data: TStream) затратна. Т.е. о загрузке изображений из add не может быть и речи. Изображения нужно получать по мере необходимости и сохранять в локальнок кэше. Кэш, разумеется, нужно своевременно чистить. Возможно стоит рассмотреть возможность вызова GetImage в отдельном потоке, с обновлением ListView по мере поступления данных. Полные изображения должны кешироваться в любом случае (например для дальнейшего отображения по двойному клику), вопрос о целесообразности кеширования зуммированых изображений пока открыт. В общем-то на этапе разработки функцию GetImage вполне можно заменить затычкой с загрузкой тестовой картинки с локального диска и sleep(300);
Необходимо гарантировать работу на относительно слабом железе. Будем исходить из пентиума 4 1GHz и 1Gb RAM. Все это несложно симулировать в виртуальной машине. Именно ограничения на производительность железа заставляют думать о кешировании зуммированых изображений.
Ну и по мелочи:
Предпочтительно использование ListItem.Data. Линейный поиск по кэшу интерпретируется как полная профнепригодность исполнителя. Генерики приветствуются. Я сам программист, с дельфи работаю с Delphi 1, сделал бы сам, да времени нет, но халтуру увижу точно.

Ну вот, вроде бы ничего не забыл.
Меня интересуют только три вопроса:
а) цена (в евро)
б) сроки (нужно, естественно, вчера).
ц) если сойдемся по первым двум вопросам - примерная архитектура решения.
Оплата после тестирования готового EXE или DCU и просмотра interface исходников. Исходники должны быть осмысленно документированы на английском. Диаграмма классов (при наличии нескольких классов) приветствуется. Так же приветствуются UnitTest_ы.
В связи с тем что я нахожусь в Германии имеются известные трудности с оплатой. Возможны следующие варианты:
а) PayPal. Никакие иные "электронные деньги", увы, не рассматриваются.
б) перевод на счет в пределах EU
ц) можно оформить все очень официально, но я тут предчувствую обильный геморрой
д) могу купить что нибудь полезное на амазоне, например, и выслать почтой. все дальнейшие претензии - к почте.

явки:
icq: 152737400
jabber: yajohn@jabber.ru
mail: xe2@fbtools.de
yajohn вне форума Ответить с цитированием
Старый 17.07.2012, 06:54   #2
Рико
Пользователь
 
Регистрация: 30.04.2012
Сообщений: 31
По умолчанию

Помочь смог бы, но я работаю только по предоплате, без вариантов. Если вас устраивает, пишите, попробуем договориться
ася- 391166346
почта- riko07@mail.ru
skype- riko0760
Рико вне форума Ответить с цитированием
Старый 18.07.2012, 16:53   #3
Vasilii
Новичок
Джуниор
 
Регистрация: 06.12.2010
Сообщений: 1
По умолчанию

Готов помочь. Пиши на vasilii@bk.ru. На форуме бываю редко.
Vasilii вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Центровка изображений в галереи WP Apach47 PHP 1 21.09.2010 00:13
TListView delphi kefir4ik Помощь студентам 3 16.09.2010 23:17
Неправильное отображение изображений Ga-sergey HTML и CSS 8 10.05.2010 21:03
обработка изображений в Delphi Астер Мультимедиа в Delphi 0 26.04.2009 12:33