![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 16.07.2012
Сообщений: 0
|
![]()
Цель: отображение изображений в стандартном 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 |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 30.04.2012
Сообщений: 31
|
![]()
Помочь смог бы, но я работаю только по предоплате, без вариантов. Если вас устраивает, пишите, попробуем договориться
|
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 06.12.2010
Сообщений: 1
|
![]()
Готов помочь. Пиши на vasilii@bk.ru. На форуме бываю редко.
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Центровка изображений в галереи 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 |