Форум » Для флейма » Где хранятся иконки большого разрешения ? » Ответить

Где хранятся иконки большого разрешения ?

Andrey: В системе Win7/8 есть большие иконки. Где они хранятся, чем можно их посмотреть и как использовать ? В МиниГуи есть возможность получить иконки из DLL-ки: hIcon := ExtractIcon( System.SystemFolder + "\shell32.dll", nI ) Но получаются размеры иконок 32х32, а в системе они есть большего размера: Если иконку 32х32 увеличить, то это очень заметно. Значит в системе есть где то еще большие иконки.

Ответов - 38, стр: 1 2 All

Andrey: Dima пишет: Да пример целый есть Да видел уже, примерно понятно... SergKis пишет: Картинки из ресурсов достаем img src="res:page_refresh.gif" А как достаёшь ? Код приведи пожалуйста...

SergKis: Andrey пишет А как достаёшь ? Код приведи пожалуйста... А как достаёшь ? Код приведи пожалуйста... Так "Скрытый текст" разверни. Для чего его положил ? Что бы ты развернул и посмотрел ! Везде, где увидишь img src="res:..." это из ресурсов, иначе из файла, по url ... Это же html

Andrey: SergKis пишет: Картинки из ресурсов достаем img src="res:page_refresh.gif" Ни фига не понял что за команда и как эта page_refresh.gif рисуется на форме ...


SergKis: Andrey пишет Ни фига не понял А тут ?[pre2] DEFINE TOOLBAR ToolBar_1 BUTTONSIZE 85,85 FLAT BORDER BUTTON Button_1 ; CAPTION '&More ToolBars...' ; PICTURE 'button1.bmp' ; ACTION Modal_Click() ; TOOLTIP 'ONE' BUTTON Button_2 ; CAPTION '&Button 2' ; PICTURE 'button2.bmp' ; ACTION MsgInfo('Click! 2') ; TOOLTIP 'TWO' ... сравни <div class="toolbar"> <div id="open" class="btn" title="@imp url(%TXT%\BTN_OPEN.TXT) F2"><img src="res:page_insp.gif"></div> ... <div id="del" class="btn" title="@imp url(%TXT%\BTN_DELETE.TXT) F3"><img src="res:page_del.gif" ></div> <div id="view" class="btn" title="@imp url(%TXT%\BTN_VIEW.TXT) F4"><img src="res:page_norm.gif"></div> <hr class="vdivider"> <div id="refr" class="btn" title="@imp url(%TXT%\BTN_REFRESH.TXT) F6"><img src="res:page_refresh.gif"></div> <hr class="vdivider"> <div id="newn" class="btn" title="@imp url(%TXT%\BTN_NEWNR.TXT) F8"><img src="res:page_new.gif"></div> ... [/pre2] CAPTION это title="..." PICTURE это img src="..." + css с поведением hover, action ...

SergKis: PS не CAPTION, а TOOLTIP это title="..." - кнопки в html toolbar без надписей

Andrey: SergKis пишет: CAPTION это title="..." PICTURE это img src="..." + css с поведением hover, action ... Да уж... Для меня - сильно накручено ! Получается данные берутся из RES\order.htm (допустим) а потом строится TOOLBAR ... А как получаешь доступ к ORDER.HTM, т.е. в программе она строковая или другая ? [pre2]ORDER.HTM RT_HTML RES\order.htm [/pre2] А картинки кнопок пишешь в файл или из ресурса сразу на кнопку ? Не пойму как выводить картинку если у тебя уже на кнопке PICTURE есть: BUTTON Button_2 ; CAPTION '&Button 2' ; PICTURE 'button2.bmp' ; ..... Причём для PICTURE нужна строка или внешний файл картинки. А как туда затолкать картинку из ресурсов, я не понимаю... Нашёл, ещё давно пример SAMPLES\BASIC\ExtractIcon\demo.prg Там есть команда для кнопки, хотя по Хелпу такого нет : [pre2] Local cFile5 := System.SystemFolder + "\shell32.dll" ..... @ 160,10 BUTTON BTNCANCEL ; ICON cFile5 ; EXTRACT 219 ; ...... [/pre2] Это я так догадываюсь хенл картинки передаётся ? Но там загружаются только иконки размером 32х32... Причём для объекта BUTTONEX такой команды нет.

SergKis: Andrey пишет А как туда затолкать картинку из ресурсов, я не понимаю... Так ты исходники не смотришь, к примеру h_image.prg [pre2] FUNCTION _DefineImage (...) ... IF ! ISNUMBER( w ) .OR. ! ISNUMBER( h ) IF Upper( Right( FileName, 4 ) ) == ".BMP" .OR. At( ".", cFileNoPath( FileName ) ) == 0 aSize := BmpSize( FileName ) // ресурсы exe ELSE aSize := hb_GetImageSize( FileName ) // файл ENDIF w := aSize [1] h := aSize [2] ENDIF ... [/pre2] См. и С функции. Для внешней dll, самое простое, выгрузить в файл из dll и в PICTURE указывать файлы. Возможно где то есть набор ф-й (hbwin.lib и когда то давал тебе С ф-ии для ресурсов CUSTOM) для оного.

Andrey: SergKis пишет: Для внешней dll, самое простое, выгрузить в файл из dll и в PICTURE указывать файлы. Не хочется этого делать. Я думаю что при запуске программы выгрузка кучи картинок будет занимать порядочно времени. А если делать выгрузку по отдельным модулям программы, то не совсем удобно будет писать код. SergKis пишет: Возможно где то есть набор ф-й (hbwin.lib и когда то давал тебе С ф-ии для ресурсов CUSTOM) для оного. Да, это есть. Использую в нескольких программах. SergKis пишет: aSize := BmpSize( FileName ) // ресурсы exe А для вывода из DLL нужно будет указывать хендл картинки ? А можно эту картинку из dll загрузить в переменную, а потом показывать из переменной ?

SergKis: Andrey пишет Не хочется этого делать. Тогда тебе надо повторить весь набор ф-й для handle внешней dll, т.к. сейчас работа ф-й от g_hInstance (ресурсы exe), т.е. hBitmap_new = ( HBITMAP ) LoadImage( g_hInstance, pszName, IMAGE_BITMAP, 0, 0, fuLoad ); или сохранять g_hInstance, заменять на handle внешней dll, получать оттуда что то и назад восстанавливать, мороки больше, чем профита, по мне.

ММК: Andrey пишет: Да уж... Для меня - сильно накручено ! Вы или герои или мазохисты !

SergKis: ММК пишет Вы или герои или мазохисты ! Скорее 2-е. Всегда нужен уникод, вот садомазо и занимаешься, то VO переделываешь, то HtmLayuot (html utf-8) используешь ... И hmg версию переделанную используешь, не слезешь. W2UI на подходе ...

Andrey: Привет всем ! Со сборкой dll-ки вроде разобрался.... Выложу пример чуть позже ... Остался вопрос вроде простой, а решить не получается... Поиск по интернету дал кучу не нужного. Можно ли простыми средствами собрать несколько отдельных иконок 16х16, 32х32 и т.д. в одну иконку (контейнер) ? Может ключи какие есть у сборщика ресурсов ? Писать что-то своё уж больно долго получится...

Петр: Andrey пишет: Можно ли простыми средствами собрать несколько отдельных иконок 16х16, 32х32 и т.д. в одну иконку (контейнер) ? А что для вас - "простые средства"? nConvert, надеюсь, не окажется сложным..

Dima: Петр пишет: А что для вас - "простые средства"? +1 IconWorkshop

Andrey: Петр пишет: nConvert, надеюсь, не окажется сложным.. Спасибо, вроде то что нужно !

Andrey: У Григория есть пример SAMPLES\BASIC\Icons\demo2.prg Хотел из библиотеки demo2.prg прочитать иконки также, обломилось .... [pre2]local cIcon := '5' ............ hLib := LoadLibraryEx( System.SystemFolder + '\shell32.dll', 0, LOAD_LIBRARY_AS_DATAFILE ) hIconFromDll := LoadIconByName( cIcon, 64, 64, hLib ) // пробовал и VAL(cIcon) ? hIconFromDll возвращает 0[/pre2] Смотрю в библиотеке есть такие иконки по номерам 1,2,3.... Что неправильно делаю ? Как считать иконки разного размера ?

Andrey: Начал делать программу для просмотра/извлечения иконок из DLL/EXE и обломился... Нет функций извлечения/записи иконок размерами: 48/64/128/256 ... Кто может добавить такие функции в папку SAMPLES\BASIC\Icons ? Вот моя заготовка - https://cloud.mail.ru/public/LNKL/hXTwbNtMx

Andrey: Вот мне сделали программу для извлечения иконок IconExtractor на C# ! Кому интересно, ссылка - https://cloud.mail.ru/public/LDiE/cwQLkHE9i Пожелания приветствуются (пока автор доступен)...



полная версия страницы