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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2009, 17:15   #1
Crivel
Delphi\C++
Форумчанин
 
Аватар для Crivel
 
Регистрация: 18.06.2008
Сообщений: 277
По умолчанию Функции DrawIcon и ExtractAssociatedIcon. Динамически создаваемый TImage. Иконка не прозрачна.

Есть image. Требуется вывести иконку. Но только у некоторых иконок задний фон прозрачен. Иконку получаю с помощью функций DrawIcon и ExtractAssociatedIcon. Создаётся рисуется иконка так:
Код:
img:= TImage.Create(Form2);
ico :=ExtractAssociatedIcon(hInstance,PWIDECHAR('c:\'+Files.Strings[i]),ICONINDEX); 
img.Transparent := true;
img.Left := x;
img.Top := y;
img.Width := 32;
img.Height := 50;
img.Parent := Self;
DrawIcon(img.Canvas.Handle,0,0,ico);
img.Canvas.TextOut(1,35,Files.Strings[i]);
img.AutoSize := true;
img.OnMouseMove := DesktopItemMouseMove;
img.Show;
Как я писал выше всё работает прекрасно за исключением прозрачности. У некоторых иконок да, задний фон прозрачен, но не у всех. Кто поможет - буду очень благодарен, потому как в гугле не чего не нашёл.

Заранее благодарен.

P.S. ещё вопрос, может кто подскажет, вот при рисовании текста, есть возможность переноса текста. Т.е. когда рисование через Canvas.TextOut?

Последний раз редактировалось Crivel; 25.11.2009 в 17:18.
Crivel вне форума Ответить с цитированием
Старый 25.11.2009, 17:29   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А TransрarentColor не пробовали указывать?
mihali4 вне форума Ответить с цитированием
Старый 25.11.2009, 17:37   #3
Crivel
Delphi\C++
Форумчанин
 
Аватар для Crivel
 
Регистрация: 18.06.2008
Сообщений: 277
По умолчанию

В битмапе?
Код:
img.Picture.Bitmap.TransparentColor := clWhite;
Если я эту строчку пишу после выполнения DrawIcon, то безрезультатно, а если до DrawIcon, то имага вообще невидно, ни иконки, ни надписи.
Crivel вне форума Ответить с цитированием
Старый 26.11.2009, 01:58   #4
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Знакомая проблема. Тут видимо проблема в функции ExtractAssociatedIcon, или же проблема в самом типе TIcon. В общем таким способом иконки в весьма поганом качестве извлекаются.
Сейчас возникла идея, попробуй не в TIcon, а в TImage.Picture.Icon ее загрузить, TImage иконки хорошо отображает.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Иконка Olaf Общие вопросы Delphi 2 24.11.2009 08:48
Иконка vitalik007 Общие вопросы Delphi 7 19.12.2008 09:54
Иконка Simply-Art PHP 8 17.01.2008 02:15
иконка ruslan21 Общие вопросы Delphi 3 22.06.2007 10:57