Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.05.2024, 14:52
T232006 T232006 вне форума
Новичок
 
Регистрация: 17.11.2022
Сообщения: 50
Версия Delphi: Delphi XE5
Репутация: 10
По умолчанию Получить иконку окна

Здравствуйте, уважаемые форумчане!
У меня простой вопрос, но нигде не могу найти ответа: как на форме нарисовать иконку этого окна?
Ответить с цитированием
  #2  
Старый 16.05.2024, 21:24
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,035
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А тебе у своего окна или у чужого.
Если у своего, то тут все просто. В качестве иконки окна (если ты сам не назначал иконку отдельному окну, а в этом случае ты уже ее имеешь) всегда используется иконка приложения, а она доступна через Aplication.Icon.
Если надо получить иконку чужого окна, то тут немного сложнее. Исходя из задачи, как я понимаю, хэндл нужного окна у тебя уже должен быть. Тогда по хэндлу окна через GetWindowThreadProcessId получаем ID процесса, по ID процесса через GetModuleFileNameEx (см https://stackoverflow.com/questions/...d-using-delphi) получаешь путь к программе, ну а дальше вызываешь ExtractAssociatedIconW (см доку https://learn.microsoft.com/en-us/wi...ssociatediconw) для получения хэндла иконки. А далее делаешь что-то типа такого:
Код:
var 
  IconHndl : THandle;
  Icon : TIcon;
begin
  IconHndl := GetIconHandleByWnd(WndHandle);
  Icon := TIcon.Create;
  Try
    Icon.Handle := IconHndl;
    Form1.Canvas.Draw(0,0,Icon); // Это просто для примера, вроде так...
  Finally
    Icon.Free;
  End;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:33.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter