Вниз
Скачать: CL | DM;

Выдираем из файла определённую иконку   Найти похожие ветки 

← →
Kinder   (2003-12-16 20:21) [0]

Вопрос. Как из файла выдрать иконку 16х16х256 ? Имеется ввиду что она там есть.


← →
Erazser   (2003-12-17 01:24) [1]

Какой файл ты имеешь в виду: exe, bmp, ico или ресурсный ????


← →
Kinder   (2003-12-17 16:06) [2]

exe файл.
Т.е. скажем у меня есть есть через ExtractIconEx handle иконки маленькой. Но там может быть несколько форматов (XP, 256, 16, 2) мне надо выдрать именно 256 цветов, т.к. по умолчанию берётся XP, а меня это не страивает.


← →
DVM ©   (2003-12-17 19:52) [3]

ExtractIconEx() - позволяет получить массивы маленьких и больших иконок. Потом перебирая эти иконки надо выяснять количество цветов в каждой.
P.S. Эта функция описана неправильно в Delphi. См. MSDN.


← →
Kinder   (2003-12-17 22:21) [4]

А как она должна быть описана. В MSDN точно так же и описана. И ещё, а какой ф-цией эти иконки перебирать меня интересует, когда есть только их хэндл?


← →
SPeller ©   (2003-12-18 10:34) [5]

Для затравки вот тебе код функции, вытаскивающей из ресурсов текущего ЕХЕ иконку нужных размеров. Правда, не знаю как вытащить нужную глубину цвета.

function LoadIconSize( ResName: PChar; X, Y: Integer ): HICON;
var
HG: HGLOBAL;
ID, HRes, RS: Cardinal;
PRes: Pointer;
begin
Result := 0;
HRes := FindResource( hInstance, ResName, RT_GROUP_ICON );
HG := LoadResource( hInstance, HRes );
PRes := LockResource( HG );
ID := LookupIconIdFromDirectoryEx( PRes, True, X, Y,
LR_DEFAULTCOLOR );
if ID < 1 then Exit;

HRes := FindResource( hInstance, MakeIntResource( ID ), RT_ICON );
RS := SizeOfResource( hInstance, HRes );
HG := LoadResource( hInstance, HRes );
PRes := LockResource( HG );
Result := CreateIconFromResourceEx( PRes, RS, True, $30000, X, Y,
LR_DEFAULTCOLOR );
end;


← →
DVM ©   (2003-12-18 10:41) [6]


> И ещё, а какой ф-цией эти иконки перебирать меня интересует,
> когда есть только их хэндл?

Я же говорю - массив будет! Точнее два.

> А как она должна быть описана. В MSDN точно так же и описана.
>

В Delphi6 описана точно неправильно в ShellApi.pas. Не знаю как в 7.
А в MSDN - ПРАВИЛЬНО:

UINT ExtractIconEx( LPCTSTR lpszFile,
int nIconIndex,
HICON *phiconLarge,
HICON *phiconSmall,
UINT nIcons
);

В справке, поставляемой с Delphi не помню как.


← →
DVM ©   (2003-12-18 10:43) [7]


> SPeller © (18.12.03 10:34) [5]

Имя ресурса может быть и неизвестно.


← →
Kinder   (2003-12-18 14:57) [8]

Народ. Как вытащить иконку я знаю. Но если вы понимаете, то иконка может содержать несколько цыетов в палитре. Мне надо, чтобы была иконка 16х16х256. Как мне взять цветовую палитру???


← →
Игорь Шевченко ©   (2003-12-18 15:41) [9]

Kinder (18.12.03 14:57)

LoadImage



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.017 c
3-79554
rosl
2004-02-02 05:43
2004.02.25
помогите с запросом


3-79678
Polevi
2004-01-30 10:31
2004.02.25
Запрос


1-79798
Aks
2004-02-11 14:26
2004.02.25
trouble with Excel


1-79826
Amirka
2004-02-11 10:10
2004.02.25
Использование сторонних dll


3-79677
Santer
2004-01-30 13:54
2004.02.25
не могу состыковать Cyrr 866 и ANSI в одном запросе!




   Наверх