![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Компонент не реагирует на сообщение [D5, Win2k]
Navi © (2005-08-14 16:52:00)Здравствуйте!
Компонент наследник TComponent, надо в нем отловить изменение шрифта системного меню. В private пишу:
procedure Wm_SettingChange(var Message: TWMSettingChange); message WM_SETTINGCHANGE;
В implementation:
procedure TMT.Wm_SettingChange(var Message: TWMSettingChange);
begin
inherited;
ShowMessage(Format('%d:%d', [Message.Msg, Message.Flag]));
end;
Меняю шрифт, но не реагирует. Как лечить? Спасибо.
Leonid Troyanovsky (2005-08-21 19:07:00) [1]
> Navi (14.08.05 16:52)
> Компонент наследник TComponent, надо в нем отловить изменение
> шрифта системного меню. В private пишу:
TControl получает cm_sysfontchanged.
--
Regards, LVT.
Юрий Зотов (2005-08-20 20:24:00) [2]Я бы все же использовал SetWidowsHookEx.
Наиль (2005-08-20 20:00:00) [3]Рискну дать пояснения.
Хук - Application.HookMainWindow
А про синглтон очень подробно рассказано в ветке
Основная-> Автор: Страждущий; Тема - Уровень; Дата - 20.03.03
Это моя любимая ветка.
Найти можно в дайджестах этого форума, если они работают (почему-то я не могу в них войти).
Юрий Зотов (2005-08-20 16:55:00) [4]Честно сказать, смысла в таком компоненте не вижу. А сделать его можно, например, так:
1. Компонент ставит локальный хук, а тот ловит WM_SETTINGCHANGE и, поймав, уведомляет об этом компонент.
2. Поскольку такой компонент нужен один на все приложение, он выполнен, как синглтон.
Navi (2005-08-20 08:27:00) [5]Понял. А как сделать-то?
Юрий Зотов (2005-08-14 17:03:00) [6]А с какой же стати наследник TComponent, не являющийся окном, вдруг будет получать оконное сообщение, да к тому же еще и рассылаемое только окнам верхнего уровня?
Navi (2005-08-14 16:54:00) [7]А-а, каюсь, надо было в раздел Компоненты. Прости, Админ.