Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.044 c
4-1152770235
тт
2006-07-13 09:57
2006.11.26
Как узнать серийный номер HDD в Win2000, не имея прав админа?


15-1162483616
Другой
2006-11-02 19:06
2006.11.26
5000 статей по Delphi.


2-1162827781
EkZot
2006-11-06 18:43
2006.11.26
Запустить программу с ключем


2-1156158641
apic
2006-08-21 15:10
2006.11.26
1024 компонента


1-1161092738
MegaVolt
2006-10-17 17:45
2006.11.26
Некорректно отображаются Hint в ListView с OwnrDraw :(





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