Главная страница
    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.45 MB
Время: 0.04 c
15-1162630426
Сэм
2006-11-04 11:53
2006.11.26
системный лоток (system tray).


15-1162909504
TIF
2006-11-07 17:25
2006.11.26
У кого есть опыт борьбы с троянами-шутдаунерами?


3-1159253506
ScoPal
2006-09-26 10:51
2006.11.26
DOA Oracle не могу получить ошибку привызове процедуры.


1-1160562843
atruhin
2006-10-11 14:34
2006.11.26
Перекрестные ссылки в компонентах


3-1158925372
тф
2006-09-22 15:42
2006.11.26
Проблема с CASE





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