![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Форумчанин
Регистрация: 11.05.2013
Сообщений: 154
|
![]()
Ну так и у меня те же свойства. А свойства ListView можно? Я его тоже динамически создаю просто.
|
![]() |
![]() |
![]() |
#12 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Какие там свойства, только LargeImage изменил. Свойства ImageList выставить до загрузки иконок
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#13 |
Форумчанин
Регистрация: 11.05.2013
Сообщений: 154
|
![]()
Странно, сейчас попробовал через палитру создать оба компонента и в OnCreate добавил Item, все в порядке. А почему с динамически создаваемым ListView такая проблема?
Код:
|
![]() |
![]() |
![]() |
#14 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
![]()
А как ты создаешь ImageList? И главное, как ты в него иконку грузишь?
К сожелению пора идти спать, но на вскидку: может помогут небольшие танцы с бубном и работа с иконками напрямую через API-шные ф-ии аля какздесь (2010.12) Полупрозрачная иконка.zip Последний раз редактировалось Sibedir; 14.08.2014 в 20:49. |
![]() |
![]() |
![]() |
#15 | |
Форумчанин
Регистрация: 11.05.2013
Сообщений: 154
|
![]()
Нене, ImageList точно в порядке, т.к. что с динамическим, что с палитры компонентов - одинаково отображаются значки в ListView. А вот если скажем динамический ImageList и ListView с палитры - то все нормально. С чем это связано?
Хотя и тут есть грабли. Значок в ListView (с палитры) рисуется на белом фоне, на "проблемных" участках. Попробуйте у ListView выставить фон черным цветом, то это видно будет. Прикрепил исходник динамически создаваемых компонентов. Цитата:
![]() Но наверное лучше просто в OnCustomDrawItem рисовать нужные иконки... В общем, не знаю) Последний раз редактировалось Xo66um; 15.08.2014 в 06:02. |
|
![]() |
![]() |
![]() |
#16 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
![]()
Xo66um, дело не простое. Нужен спец по виндам и апям.
Короче. Беру твою иконку и назначаю как иконку для папки на рабочем столе: 16bit.jpg Меняю свойства экрана на 32-х битные цвета и опля: 32bit.jpg При этом в программе нужно Код:
Нужно вручную или программно на битмапе (с цветом фона как у ListView) рисовать твою иконку (111111.bmp) и грузить в ImageList этот битмап. Ну или программно половинить иконку на цвета и маску и грузить их в ImageList обе. Последний раз редактировалось Sibedir; 15.08.2014 в 08:23. |
![]() |
![]() |
![]() |
#17 | ||
Форумчанин
Регистрация: 11.05.2013
Сообщений: 154
|
![]()
Странно, а у меня - нет
![]() Как была белая тень, так белая тень и осталась... Я сегодня все утро тестировал различные варианты, пытаясь убрать мусор с картинки, но получалось то же самое, что и ListView рисует, правда, чуть лучше, но не то все-равно... Скинь исходник, пожалуйста, гляну как там сделано, и в D7 заодно проверю) Цитата:
Цитата:
Последний раз редактировалось Xo66um; 15.08.2014 в 08:31. |
||
![]() |
![]() |
![]() |
#18 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
![]()
Щас я на работе, потому исходник на XE3
Проблема со значками в ListView.zip // ПЕРЕЗАЛИЛ При 32-битном качестве цветопередачи, всё ОК Но все-таки кажется вариант с отрисовкой на битмапе самый 100 пудовый. Последний раз редактировалось Sibedir; 15.08.2014 в 08:30. |
![]() |
![]() |
![]() |
#19 |
Форумчанин
Регистрация: 11.05.2013
Сообщений: 154
|
![]()
Да, думаю этот вариант самый оптимальный, если не требуется манипулировать с фоном ListView в рантайме. В общем, методы у нас сошлись, только я программно рисую битмап и пихаю его в ImageList, но не суть.
![]() Сегодня еще попробую поколдовать с созданием нормальной маски для изображения, если все получится, то выложу сюда исходник. UPD: В общем, ничего не получилось... Хотел использовать метод от Peter Below, но глядя на то, какой результат он возвращает - решил сделать чуть иначе. Собственно, исходник прикрепляю, кому интересно - посмотрите. Там есть две маски, по которым на выходе получаются разные варианты картинок, и метод простой генерации маски. P.S. За основу взят пример от Sibedir из этого поста. Последний раз редактировалось Xo66um; 15.08.2014 в 10:29. |
![]() |
![]() |
![]() |
#20 |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,844
|
![]()
Мне кажется, что проблема тут не в Delphi, не в ListView и даже не в Windows, а в самом значке. Значок 32-битный, а 32-битные значки корректно могут отображаться только в 32-битной цветности, если не путаю. В системах с меньшей цветностью Windows автоматически подставляет менее ажурные значки, поэтому в ней всё работает. Ради этого все системные значки составные, содержат в себе по несколько изображений разного размера и цветности, отчего занимают много места, раздувая общий размер файлов и библиотек, а косвенно и саму ОС. Красота требует жертв.
В разработке: воспроизводственный контур ИТ
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Определить расстояние по умолчанию между значками раб. стола | fedorov2012 | Общие вопросы Delphi | 2 | 09.05.2013 20:59 |
Проблема с ListView | Saumavalion | Win Api | 4 | 06.05.2012 16:02 |
Небольшая проблема с ListView | mixer94 | Компоненты Delphi | 5 | 12.08.2009 09:08 |
Проблема с ListView | mar4elo | Общие вопросы Delphi | 5 | 04.12.2008 14:48 |
форма под значками | ERASERROR | Общие вопросы Delphi | 3 | 19.01.2008 14:32 |