![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вытащить иконку
_Stas_ © (2003-06-12 13:22:00)
Как вытащить иконку окна в TIcon? или сохранить в *.ico ?
_Stas_ (2003-06-12 17:28:00) [1]
DVM, спасибо, все работает:)
DVM (2003-06-12 14:08:00) [2]
> ну дак какая разница откуда ее брать?
Разница большая. ExtractIcon извлекает иконку из файла. Если есть окно и надо получить его иконку, то, чтобы воспользоваться ExtractIcon надо 1. Определить к какому процессу относится окно, 2. Определить имя файла процесса. 3. Определить номер иконки в этом файле (это скорее невозможно).
WM_GETICON + WM_QUERYDRAGICON позволяют получить иконку непосредственно из окна, т.е. минуя шаги 1-3. В вопросе было слово ОКНО.
Spawn (2003-06-12 14:01:00) [3]
ну дак какая разница откуда ее брать? Или сдесь именно из процесса нужно? Тогда правильный ответ у DVM :)
DVM (2003-06-12 13:59:00) [4]
> _Stas_ © (12.06.03 13:56)
> да, но она возвращает HICON...
MyIcon:=TIcon.Create;
try
hIcon:=....
MyIcon.Handle:=hIcon;
....
DestroyIcon(hIcon); // возможно не понадобится
finally
MyIcon.free;
end;
DVM (2003-06-12 13:57:00) [5]
> Spawn © ( Ex)
> Spawn ©
> вытащить иконку окнав TIcon?
Причем здесь ExtractIcon(Ex)?
Правильный ответ WM_GETICON.
_Stas_ (2003-06-12 13:56:00) [6]
да, но она возвращает HICON...
Spawn (2003-06-12 13:53:00) [7]
Иконку можно получить при помощи ExtractIcon(Ex).