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

Вниз

Обработка сообщений формы из её компонента.   Найти похожие ветки 

 
uncle   (2003-08-16 02:11) [0]

О, уважаемые гуру, помогите решить мою проблему. Я делаю компонент (= class(TComponent)), одной из функций которого является определение, можно ли форму, на которой он лежит, таскать за клиентскую область. Для этого я должен обработать сообщение WM_NCHITTEST, которое поступает на форму. Так вот как мне написать обработчик этого сообщения в именно в компоненте? Проблема ещё и в том, что из компонента нельзя вызвать inherited WndProc(Message) для формы. Заранее спасибо.


 
Юрий Федоров ©   (2003-08-16 02:47) [1]

type
TMyComponent = class(TComponent)
private
FOldOwnerWndProc: TWndMethod;
procedure NewOwnerWndMethod(var Message: TMessage);
public
constructor Create(aOwner: TComponent); override;
end;

...
constructor TMyComponent.Create(aOwner: TComponent);
begin
if not (aOwner is TCustomForm) then
raise exception.Create("Кидайте мой комппонент на форму а не фиг знает куда плиз");
inherited Create(aOwner);
FOldOwnerWndProc:=(aOwner as TCustomForm).WindowProc;
(aOwner as TCustomForm).WindowProc:=@NewOwnerWndMethod;
end;

procedure TMyComponent.NewOwnerWndMethod(var Message: TMessage);
begin
if Message.Msg = <мое сообщение > then
begin
<я делаю то, что считаю нужным с овнером как формой и с сообщением которое пришло>
end
else
FOldOwnerWndProc(Message);
end;



Страницы: 1 вся ветка

Текущий архив: 2003.10.20;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.017 c
14-65589
ZeroDivide
2003-10-02 10:33
2003.10.20
Космические корабли, железная дорога и лошади


3-65388
Alek_1
2003-09-25 21:23
2003.10.20
Снова про FireBird!


1-65492
webpauk
2003-10-07 15:18
2003.10.20
отображение свойств компонента


14-65608
Denizzz
2003-10-01 08:10
2003.10.20
Прошу дать мне рекомендации


14-65629
Grouzd[E]v
2003-09-28 21:49
2003.10.20
What a ... blah blah blah?!!!