Форум: "Компоненты";
Текущий архив: 2006.02.12;
Скачать: [xml.tar.bz2];
ВнизКомпонент не реагирует на сообщение Найти похожие ветки
← →
Navi (2005-08-14 16:52) [0]Здравствуйте!
Компонент наследник 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;
Меняю шрифт, но не реагирует. Как лечить? Спасибо.
← →
Navi (2005-08-14 16:54) [1]А-а, каюсь, надо было в раздел Компоненты. Прости, Админ.
← →
Юрий Зотов © (2005-08-14 17:03) [2]А с какой же стати наследник TComponent, не являющийся окном, вдруг будет получать оконное сообщение, да к тому же еще и рассылаемое только окнам верхнего уровня?
← →
Navi (2005-08-20 08:27) [3]Понял. А как сделать-то?
← →
Юрий Зотов © (2005-08-20 16:55) [4]Честно сказать, смысла в таком компоненте не вижу. А сделать его можно, например, так:
1. Компонент ставит локальный хук, а тот ловит WM_SETTINGCHANGE и, поймав, уведомляет об этом компонент.
2. Поскольку такой компонент нужен один на все приложение, он выполнен, как синглтон.
← →
Наиль © (2005-08-20 20:00) [5]Рискну дать пояснения.
Хук - Application.HookMainWindow
А про синглтон очень подробно рассказано в ветке
Основная-> Автор: Страждущий; Тема - Уровень; Дата - 20.03.03
Это моя любимая ветка.
Найти можно в дайджестах этого форума, если они работают (почему-то я не могу в них войти).
← →
Юрий Зотов © (2005-08-20 20:24) [6]Я бы все же использовал SetWidowsHookEx.
← →
Leonid Troyanovsky © (2005-08-21 19:07) [7]
> Navi (14.08.05 16:52)
> Компонент наследник TComponent, надо в нем отловить изменение
> шрифта системного меню. В private пишу:
TControl получает cm_sysfontchanged.
--
Regards, LVT.
Страницы: 1 вся ветка
Форум: "Компоненты";
Текущий архив: 2006.02.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.054 c