Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 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.061 c
3-1134631703
vajo
2005-12-15 10:28
2006.02.12
Почему-то неправильно получается значение RecordCount


2-1138273981
CyMKuH
2006-01-26 14:13
2006.02.12
Как "вырвать" иконку из DLL и сохранить в "*.ico"


2-1138272207
Daria
2006-01-26 13:43
2006.02.12
кодировки


2-1138312913
Goryn
2006-01-27 01:01
2006.02.12
Окна нет


15-1138032106
rts111
2006-01-23 19:01
2006.02.12
Чем *.exe отличается от *.com?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский