Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.07;
Скачать: CL | DM;

Вниз

Нужно получить по известному хэндлу иконки её глубину цвета   Найти похожие ветки 

 
Ale}{(is)   (2004-08-06 16:39) [0]

Уважаемые Мастера! Помогите решить следующую проблему. Нужно получить по известному хэндлу иконки её глубину цвета. Пробовал получать AND битмап этой иконки, но он всегда имеет глубину 32-bit, т. е. как у экрана. А мне нужно получить реальную глубину. Заранее благодарен.


 
Mihey_temporary ©   (2004-08-06 18:07) [1]

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


 
Кириешки ©   (2004-08-07 07:44) [2]

А получить саму иконку, и ее уже измерить?

function GetIcon(wnd:hwnd):TIcon;
begin
result:=TIcon.Create;
result.Handle:=GetClassLong(wnd,GCL_HICON);
end;

procedure TForm1.....Click(Sender: TObject);
var
h : thandle;
begin
h := handleIconki;
geticon(h);
image1.Picture.Icon:=GetIcon(h);
end;

Может быть так получится. Хотя я не знаю, код написал пряма тута и не проверял.


 
Ale}{(is)   (2004-08-07 09:51) [3]

Читаю я иконку из файла. Но потом пользователь может заменить одну из иконок файла на другую. А при записи в файл нужно получить её параметры, в частности BPP, что я сделать не могу. Помогите!


 
Mihey_temporary ©   (2004-08-07 19:13) [4]

Я знаю эту проблему и не нашёл ей решения, точнее нашёл обход - вручную гружу из файла иконку и все данные, тогда без проблем. Вот модуль, реализующий это дело. Иконки грузятся в TBitmap, PixelFormat которого всегда без проблем опеределяется.

http://www.hot.ee/mvps21/IconLoad.rar


 
Ale}{(is)   (2004-08-09 11:20) [5]

К сожалению, меня опять не так поняли. Проблема такова: пользователь меняет свойство моего класса Icon: HICON и в результате должны обновиться другие поля этого класса, а именно Width, Height и BPP. Т. о. ничего кроме переменной типа HICON у меня нет, ни файла, ничего вообще. А XORMask, возвращаемые GetIconInfo возвращает всегда 32-битный битмап.


 
Mihey_temporary ©   (2004-08-09 15:19) [6]

>К сожалению, меня опять не так поняли. Проблема такова: пользователь меняет свойство моего класса Icon: HICON и в результате должны обновиться другие поля этого класса, а именно Width, Height и BPP.

Но ты сам писал:

>Читаю я иконку из файла. Но потом пользователь может заменить одну из иконок файла на другую. А при записи в файл нужно получить её параметры, в частности BPP, что я сделать не могу. Помогите!

В таком случае можно не работать с иконкой явно, а внутри хранить иконку как TBitmap, а загрузку и сохранение и передачу как HICON делать вручную.

Просто не ты первый, кто столкнулся с такой проблемой при работе с HICON. Решения я не знаю.


 
Ale}{(is)   (2004-08-09 15:57) [7]

Очень жаль, придётся искать обходные решения!


 
Mihey_temporary ©   (2004-08-09 15:59) [8]

Попробуй может напиши в Microsoft, мол ваша же API.



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

Текущий архив: 2004.11.07;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.043 c
1-1098515698
PURGEN
2004-10-23 11:14
2004.11.07
Хочу удалить объект!!!!


14-1098187111
QuasiLamo
2004-10-19 15:58
2004.11.07
Ну и какой из поисковиков круче? Я все время слышу что гугл рулит


6-1093803239
MeMO
2004-08-29 22:13
2004.11.07
MAC адрес


14-1097991894
SkyRanger
2004-10-17 09:44
2004.11.07
История Руси/России правда и ложь


14-1098046049
vecna
2004-10-18 00:47
2004.11.07
порядок инициализации пропертей