Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Media";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.037 c
1-1098715274
aap
2004-10-25 18:41
2004.11.07
Доработать PageControl


3-1095409521
Guf
2004-09-17 12:25
2004.11.07
ADO Access *.udl


9-1089868223
Evgeniy_K
2004-07-15 09:10
2004.11.07
Тетколор


10-1056462721
HermitAlex
2003-06-24 17:52
2004.11.07
Динамическое наполнений DataSet в трехзвенном приложении


14-1098286900
Profi
2004-10-20 19: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
Английский Французский Немецкий Итальянский Португальский Русский Испанский