Форум: "Компоненты";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];
ВнизКомпонент и WM_DISPLAYCHANGE Найти похожие ветки
← →
FX © (2004-07-02 18:45) [0]Здравствуйте. Как заставить компонент, наследник TCustomControl, получать сообщения WM_DISPLAYCHANGE?
Спасибо.
← →
Mim1 © (2004-07-02 21:11) [1]Написав метод
procedure mymsg(var msg:Tmessage); message wm_user+10;
вы сможете передать в него при помоши perform нужное событие.
Так же можно изменить предка вашего компонента на TWinControl и тогда указанный выше метод (mymsg) сработает наверняка.
Если же это невозможно, то можно сделать так же, как это реализовано в таймере. Т.е. создать невидимое окно allocatehwnd.
Возможно можно как то подписаться на получение этого сообщения от parent"a, к сожалению мне такого способа неитзвестно.
← →
FX © (2004-07-05 11:48) [2]1) TCustomControl является потомком TWinControl
2) Не работает код:
type
TMyComponent = class(TCustomControl)
private
{ Private declarations }
protected
{ Protected declarations }
procedure WMDisplayChange(var Msg: TWMDisplayChange); message WM_DISPLAYCHANGE;
...
implementation
procedure TMyComponent.WMDisplayChange(var Msg: TWMDisplayChange);
begin
Windows.Beep(500, 500);
end;
...
Почему?
Спасибо.
← →
Григорьев Антон © (2004-07-05 13:40) [3]Ответил здесь: http://www.delphikingdom.com/asp/answer.asp?IDAnswer=23537
← →
Mim1 © (2004-07-05 17:57) [4]
> TCustomControl является потомком TWinControl
Точно, я почемуто подумал что это предок TControl. По аналогии с TPanel -> TCustomPanel, TEdit->TCustomEdit и п.д.
Страницы: 1 вся ветка
Форум: "Компоненты";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.046 c