| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Сохранение icon |
| Автор: Alex 23.9.2003, 06:24 |
| Как из ресурса вытащить иконку и сохранить ее на диск без потери палитры? |
| Автор: <Spawn> 23.9.2003, 14:07 | ||
наверно нужно юзать CreateIconFromResource. Тогда код будет примерно такой:
|
| Автор: Alex 24.9.2003, 06:29 |
| Если честно, то меня уже клинит. Кто может написать пример сохранения 11 иконки из shell32 |
| Автор: <Spawn> 24.9.2003, 07:24 | ||
| А тебе обязательно в *.ico? Там с палитрой явно что то не то. В черно - белом варианте только получилось сохранить. А вот в bmp нормально:
Если необходимо использовать и большие и маленькие иконки, то можно использовать ExtractIconEx |
| Автор: Alex 25.9.2003, 06:20 |
| Нет мне нужно именно в icon |
| Автор: x77 25.9.2003, 09:40 | ||
2 alex-co: боюсь, сие невозможно. поищи её в другом месте где-нить. смотри, простенький код:
- получаем бяку. пробовал ставить другие номера - всё нормально. видимо, всё дело в какой-то фигне, живущей в палитре 11-ой иконки. найди её в другом месте или нарисуй, в конце концов |
| Автор: Alex 25.9.2003, 13:43 |
| Что значит невозможно тогда как это делает Restorator и подобные программы |
| Автор: x77 25.9.2003, 14:07 |
| если один и тот же код возвращает для всех иконок работает нормально, а для одной - корябает палитру, что-то здесь не так. я сильно подозреваю, что дельфийские методы не поддерживают работу с иконками, с палитрой больше 16 цветов. ибо дескриптор палитры у иконок (TIcon.Palette: hPALETTE) всегда равен нулю. т.е., её нет. т.е., вся палитра свыше стандартной при сохранении накрывается. на данный момент я не знаю, как это можно обойти |
| Автор: Alex 26.9.2003, 06:32 |
| Все это я знаю и понимаю |
| Автор: Alex 27.9.2003, 05:56 |
| Решение найдено http://pascal.sources.ru/cgi-bin/forum/YaBB.cgi?board=delphi;action=post2 |
| Автор: Всё тот же Anderson 3.9.2004, 09:42 |
| Нет такой страницы. Можешь дать правильную ссылку? |
| Автор: Alex 3.9.2004, 18:12 | ||
http://forum.vingrad.ru/index.php?showtopic=21183 |