Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с созданием компонента! [D7, WinXP]


Gennadiy ©   (2005-03-25 14:53:00) 

Добрый день!
У меня такая проблема я на основе демонстрационного исходника по сканированию пытаюсь создат компонент для сканирования, так вот в исходнике есть такая процедура
procedure TForm1.MyMsg(var Msg: TMsg; var Handled: Boolean);
begin
 Handled := ProcessSourceMessage(Msg);
end;
и она вызывается при открытии формы во так:
procedure TForm1.FormCreate(Sender: TObject);
begin
 Application.OnMessage := MyMsg;
end;

а проблема в том когда я переношу вот эту строку    Application.OnMessage := MyMsg;
он ругается что Application не найден что в общем логично потому что компонент не является Application, и у меня вопрос как не использовать Application, но чтобы было такой же по смыслу код??


Плохиш   (2005-03-25 15:22:00) [1]


>Юрий Зотов ©   (25.03.05 15:19) [3]

Не все в отпуске :-)


Плохиш   (2005-03-25 15:20:00) [2]

В примере из [0] описано создание своей функции обработки сообщений и использование её в программе. Что тебе нужно, известно только тебе, а телепаты все в отпуске.


Юрий Зотов   (2005-03-25 15:19:00) [3]

> Gennadiy

Добавьте в uses модуль Forms - появится Application. Но в данном случае это плохой способ, потому что пользователь Вашего компонента запросто может назначить свой собственный обработчик события Application.OnMessage и компонент работать перестанет.

Зато компонент может поставить локальный хук и таким образом перехватить любые сообщения.


Gennadiy   (2005-03-25 15:10:00) [4]

ПРисвоить я не знаю как потому что Родителський компонент является TWinControl, а у него нету функции OnMessage


Плохиш   (2005-03-25 15:08:00) [5]


>и она вызывается при открытии формы во так:
>procedure TForm1.FormCreate(Sender: TObject);
>begin
> Application.OnMessage := MyMsg;
>end;

Она здесь не вызывается, а присваивается как обработчик события OnMessage.

А из твоего вопросо непонятно, что ты хочешь сделать.

Хотя :-) может быть достаточно присвоить эту функцию OnMessage экземпляру твоей компоненты.


Наверх

Титульная страница Поиск, карта сайта Написать письмо