Главная страница
    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.46 MB
Время: 0.046 c
14-1097998754
Megabyte
2004-10-17 11:39
2004.11.07
Непонятки с базой


6-1093710640
Marex
2004-08-28 20:30
2004.11.07
Как запретить выделение текста WebBrowser?


14-1098080502
Prohodil Mimo
2004-10-18 10:21
2004.11.07
Цифровой фотоаппарат Canon Powershot A75. Что вы о нём думаете?


1-1098270070
Calm
2004-10-20 15:01
2004.11.07
TXMLDocuemnt, проблема с кирилицей


4-1096476106
xman
2004-09-29 20:41
2004.11.07
Какой процесс запущен?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский