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

Вниз

Добавление нового события   Найти похожие ветки 

 
Megabyte ©   (2006-04-04 14:28) [0]

Хочу сделать новый компонент на базе TImage.
Хочу добавить 2 события: вход/уход мышки с поля компонента(NoMouseEnter/OnMouseLeave).
Никогда не делал компоненты(но в принципе понимаю) и не нашел нужных примеров по добавлению событий.
Есть, допустим, 2 процедуры с директивой Message, реагирующие на сообщения Винды, соответственно: procedure MouseEnter(aMsg : TMessage); message WM_MOUSEENTER;
procedure MouseLeave(aMsg : TMessage); message  WM_MOUSELEAVE.
События - это свойства процедурного типа, как я понял.
Пусть мне нужно событие с одним параметром Sender, соответственно типа TNotifyEvent.

TadvImage = class(TImage)
FOnMouseEnter : TNotifyEvent;
FOnMouseLeave : TNotifyEvent;
...
published
property OnMouseEnter: TNotifyEvent read FOnMouseEnter
write FOnMouseEnter;
property OnMouseLeave: TNotifyEvent read FOnMouseLeave
write FOnMouseLeave

По идее FOnMouseEnter, FOnMouseLeave - переменные, кот. должны указывать на метод, кот. должен выполняться при наступлении события.
1) Во-первых, мне не понятно, что в данном случае означают директивы "read" и "write"?
2) Я не понимаю, как мне связать реакцию на данные сообщения Винды? По идее надо в переменные FOnMouseEnter, FOnMouseLeave указатели на мои процедуры, но тогда не будут совпадать типа переменных(один параметр aMsg: TMessage) и свойств/событий(один параметр Sender :TObject).

Может все делается горвздо проще? Мне надо сделать 2 новых события, реагирующих на определенные сообщения видны, и чтобы эти события отображались в инспекторе объектов.


 
MBo ©   (2006-04-04 14:31) [1]

http://www.swissdelphicenter.ch/en/showcode.php?id=1068


 
Megabyte ©   (2006-04-04 15:01) [2]

Хитро.
А 1-й вопрос?

> 1) Во-первых, мне не понятно, что в данном случае означают
> директивы "read" и "write"?

Возможно ли, чтобы отсутствовала одна директива, например write?


 
Megabyte ©   (2006-04-04 15:02) [3]

Типа в переменную заносится факт наступлния события?


 
MBo ©   (2006-04-04 15:06) [4]

Для того, чтобы свойство отображалось в инспекторе объектов, оно должно быть published и иметь доступ и на чтение, и на запись.


 
Юрий Зотов ©   (2006-04-05 12:06) [5]

> Megabyte ©   (04.04.06 15:02) [3]

Типа в переменную заносится адрес метода-обработчика.



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

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

Наверх




Память: 0.48 MB
Время: 0.054 c
15-1162916261
*Стажер*
2006-11-07 19:17
2006.11.26
Компьютер программиста, какой он?


4-1152362885
Пашка
2006-07-08 16:48
2006.11.26
Как можно определить содержимое ListBox чужого процесса


1-1160937815
Kolan
2006-10-15 22:43
2006.11.26
Дополнительный поток и Exception в главном. Что будет?


2-1162838477
kassel
2006-11-06 21:41
2006.11.26
создать компоненту....


15-1162992736
homm
2006-11-08 16:32
2006.11.26
Прикол от Яндекса :)