Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TImageList.Draw 
:(
    Опции темы
h5who
Дата 20.3.2008, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 23.2.2008

Репутация: нет
Всего: нет



В TImageList - иконки (в формате ico), 32х32. Я их где-то отрисовываю на канве, через TImageList.Draw, но отрисовка получается ужасной - лесенки, неровности. Особенно если фон темный - вообще ужас.

Хороший пример, беру TPanel, указываю любой цвет, а сверху накладываю TImage с той же самой иконкой. И это все выглядит нормально.

Как добиться такого же вида при отрисовке на канве? Что я делаю не так?


Спасибо.
PM MAIL   Вверх
VICTAR
Дата 20.3.2008, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 10
Всего: 80



TImageList не поддерживает 32 битные иконки. 
Поищи по форуму, тут был код, котрый позволяет исправляет эту проблему.
PM MAIL   Вверх
Alix
Дата 20.3.2008, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


L45
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 4.5.2005
Где: Pskov/Spb

Репутация: 8
Всего: 23



возможно, тебе сюда
http://forum.vingrad.ru/topic-91526.html

Добавлено @ 20:17
хотя я не прав... 
VICTAR, вот твой код: http://forum.vingrad.ru/index.php?showtopi...t&p=1270128
а нашел ты его, вероятно, отсюда:.

Это сообщение отредактировал(а) Alix - 20.3.2008, 20:18


--------------------
Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой
High tech. Low live. (с) Gardner Dozois
PM MAIL ICQ Skype   Вверх
VICTAR
Дата 20.3.2008, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 10
Всего: 80



Цитата(Alix @  20.3.2008,  20:13 Найти цитируемый пост)
а нашел ты его, вероятно

Насколько я помню, так и есть  smile 
PM MAIL   Вверх
h5who
Дата 20.3.2008, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 23.2.2008

Репутация: нет
Всего: нет



Спасибо, но не хочу загружать иконки в время работы программы. Я хочу на этапе разработки засунуть в ImageList иконки и потом рабоать с ними. И там кажется нужно хр-манифест подключать, что я делать не хочу.

Что в таком случае посоветуете?
PM MAIL   Вверх
VICTAR
Дата 20.3.2008, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 10
Всего: 80



PngImageList из PngComponents
они поддерживают png с прозрачностью.
PM MAIL   Вверх
aktuba
Дата 20.3.2008, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 7
Всего: 38



Цитата(h5who @  20.3.2008,  22:43 Найти цитируемый пост)
Что в таком случае посоветуете? 

Создать свой компонент, избавленный от указанных недостатков. Не шутка.


--------------------
user posted image
PM MAIL WWW Skype   Вверх
h5who
Дата 22.3.2008, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 23.2.2008

Репутация: нет
Всего: нет



Всем спасибо.

Вообщем я сумел добиться того, что мой лист стал поддерживать 32 битные иконки. Стало теперь получше выглядеть конечно, но проблема при темном фоне сохранилась. Если фон темный, то рисуется вокруг иконок толи рамка..., шум одним словом.

Рисуется так:

Код

    Brush.Style := bsSolid;
    Brush.Color := clHighlight;
    FillRect(Rect);
    Font.Color := clHighlightText;
    ImageList.Draw(Canvas, ...


Что я не так делаю?
PM MAIL   Вверх
VICTAR
Дата 22.3.2008, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 10
Всего: 80



h5who, прикрепи скрин, так легче будет сориентироваться.
PM MAIL   Вверх
h5who
Дата 22.3.2008, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 23.2.2008

Репутация: нет
Всего: нет



Прикрепил графический пример.
Левые иконки - это отрисовка на канве при светлом фоне (clWindow), а правые - отрисовка при темном фоне (clHighlight).


Я даже попробовал указывать соответствующий цвет ImagesList.BkColor := ... - но это не помогает, при темном фоне все рисуется как на скриншоте.

Присоединённый файл ( Кол-во скачиваний: 20 )
Присоединённый файл  untitled.JPG 2,96 Kb
PM MAIL   Вверх
VICTAR
Дата 22.3.2008, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 10
Всего: 80



А сами иконки 32-битные?
Вот небольшой пример

Присоединённый файл ( Кол-во скачиваний: 11 )
Присоединённый файл  ImageList.rar 15,34 Kb
PM MAIL   Вверх
h5who
Дата 22.3.2008, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 23.2.2008

Репутация: нет
Всего: нет



Нашел проблему, без решения правда. Я нашел ImageList с поддержкой 32 битных иконок: TexImageList v1.0 - Supports 32 bit Alpha Images
http://cc.codegear.com/Item/21269

Он нормально добавляет иконки, а вот с выводом опять проблемы.


Приведенный пример с моими иконками работает просто фантастически замечательно. Но я не хочу загружать иконки в рантайме, я хочу на момент разработки загрузить иконки в лист и потом уже их отрисовывать. Есть идеи?


Спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0559 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.