![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Есть ли у 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]Да уж!
Проглядел я его.
Сорри.
Есть такое событие. И что самое интересное — оно работает.