Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.12;
Скачать: CL | DM;

Вниз

Компонент не реагирует на сообщение   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.031 c
8-1125922529
Grant
2005-09-05 16:15
2006.02.12
AVI в Delphi.


6-1131316062
SergProger
2005-11-07 01:27
2006.02.12
Копирование файла с сервера


2-1138217195
Dlg
2006-01-25 22:26
2006.02.12
Как в MessageDlg сделать, что бы в фокусе ввода была кнопка No ?


2-1137888484
Dormidont
2006-01-22 03:08
2006.02.12
Функция Undo текстового редактора


2-1138268930
VitV
2006-01-26 12:48
2006.02.12
смена разрешени экрана





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский