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

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

Есть ли у RichEdit событие OnMouseOver [D6, Win95/98]


AL2002 ©   (2002-09-28 00:48:00) 

Я имею в виду, когда указатель мыши движется над ричэдитом.
Чё то я в свойствах ричэдита этого не вижу.


AL2002   (2002-10-01 13:50:00) [1]

>gek © (01.10.02 13:47)
А даблклик?



gek   (2002-10-01 13:47:00) [2]


TMyRichEdit = class(TRichEdit)
private
FOnMouseEnter:TNotifyEvent;
protected
procedure MouseLeave(var Message:TMessage);message CM_MOUSELEAVE;
PUBLISHED
property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
end;

procedure TMyRichEdit.MouseEnter(var Message:TMessage);
begin
if assigned (FOnMouseEnter) then FOnMouseEnter(self);
end;



и далее аналогично


AL2002   (2002-10-01 13:38:00) [3]

А есть ли статья о написаниях наследников?
Боюсь накуролесить.


AL2002   (2002-10-01 12:43:00) [4]

Ну-ну. Накручу я с ним что-то, чувствую.


han_malign   (2002-10-01 12:35:00) [5]

только не забыть еще
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure WMMouseDblClick(var Message: TMessage); message WM_MBUTTONDBLCLK;

короче смотрите реализации в исходниках VCL


Рыжик   (2002-10-01 12:20:00) [6]


> pasha_golub © (30.09.02 15:25)

По-моему не надо. Если секция не указывается, то и так считается, что это published.


> AL2002 © (01.10.02 11:22)

Если хочешь изменить сам RichEdit, то измени его исходники добавлением в published строчки property OnDblClick. Это ничего не испортит. Только изменит видимость свойства, а на функциональность не повлияет. Затем надо будет перекомпилировать пакет, в котором находится RichEdit.
Но лучше всё-таки написать свой компонент-наследник. Тем более, что кода-то всего 3 строчки.


AL2002   (2002-10-01 11:22:00) [7]

А сам компонент ричэдит можно доделать?
Если можно, то как? Чтобы его не испоганить, конечно.


pasha_golub   (2002-09-30 15:25:00) [8]

2 Рыжик: по-моему секцию нада поставить, чтобы в Инспекторе Объектов появилась эта хрень :-)

> TMyRichEdit = class(TRichEdit)
PUBLISHED
> property OnDblClick;
> end;




Рыжик   (2002-09-30 15:10:00) [9]

Это надо писать в секции type. Затем создаёшь в runtime.
var ri:TMyRichEdit;
...
begin
ri:=TMyRichEdit.Create(...);
ri.Parent:=...;
ri.OnDblClick:=RichEditDoubleClick;
....

Либо зарегистрировать новую компоненту и использовать и в design-time.


AL2002   (2002-09-30 13:43:00) [10]

>Рыжик © (30.09.02 10:10)
Ух ты. А где это писать?
И как потом процедуру добавить в даблклик?


Рыжик   (2002-09-30 10:10:00) [11]

DblClick у RichEdit есть, но protected(наследуется от TControl)

Можно сделать так:
TMyRichEdit = class(TRichEdit)
property OnDblClick;
end;


Smiths   (2002-09-28 11:28:00) [12]

"Look at the source, Luke!" :)


AL2002   (2002-09-28 01:31:00) [13]

Ну ладно, а где даблклик у ричэдита?


AL2002   (2002-09-28 01:11:00) [14]

Да уж!
Проглядел я его.
Сорри.
Есть такое событие. И что самое интересное — оно работает.


Наверх

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