![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Иконка чужого окна [D7]
Phoroon~ © (2006-05-31 23:29:00)Привет всем!
Помогите поймать (маленькую) иконку окна, зная только его HANDLE. Что самое интересное с большой, все выходит.
Phoroon~ (2006-06-01 14:41:00) [1]Спасибо!
Че то не дошло сразу!
Вопрос исчерпан.
Юрий Зотов (2006-06-01 12:42:00) [2]> Phoroon~ (01.06.06 10:33) [6]
Создаем новый проект, кладем на форму 2 TImage, в обработчике OnClick формы пишем:
Image1.Picture.Icon.Handle := GetClassLong(Application.Handle, GCL_HICONSM);
Image2.Picture.Icon.Handle := GetClassLong(Application.Handle, GCL_HICON);
Запускаем программу и щелкаем по форме - видим иконки.
Потом в обеих строках убираем слово Application. Снова запускаем программу и щелкаем по форме - НЕ видим иконок.
Потом думаем - с чего бы это? Потом читаем [5] и снова думаем.
Phoroon~ (2006-06-01 10:33:00) [3]Не хочу показаться надоедливым, но что "маленькую" , что "большую" икону
не удоётся получить! Функция возвращет 0.
А кто нибудь проверял эти примеры на практике!
Юрий Зотов (2006-06-01 10:06:00) [4]> vl_chel © (01.06.06 09:02) [4]
Загляните в код метода TPicture.SetIcon
> Phoroon~ (01.06.06 08:55) [2]
Все заменяется одной строчкой:
Image1.Picture.Icon.Handle := GetClassLong(WindowHandle, GCL_HICONSM);
И если окно эту самую маленькую иконку вообще имеет (а никто не мешает ему ее и не иметь - впрочем, как и большую), то будет работать.
vl_chel (2006-06-01 09:02:00) [5]Наверно правильней будет сделать Image1.Picture.Icon.Assign(ico);
Image1.Picture.Icon.Assign(ico);
Phoroon~ (2006-06-01 08:56:00) [6]Но за ответ, спасибо!
Phoroon~ (2006-06-01 08:55:00) [7]Да, этот способ я пробовал, но че то нет результатов.
Вот что делаю:
var h: HICON;
ico: TIcon;
begin
ico:=TIcon.Create;
h:=GetClassLong(WindowHandle, GCL_HICONSM);
ico.Handle:=h;
Image1.Picture.Icon:=ico;
end;
Вроде правильно!
Юрий Зотов (2006-05-31 23:46:00) [8]GetClassLong(WindowHandle, GCL_HICONSM)
Возвращает хэндл маленькой иконки окна.