![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Событи на мыше [D7, XP]
Ezorcist © (2006-05-11 08:09:00)Есть такое, что б вызывалось, когда мышь входит в облать объекта, и когда выходит из нее?
Leonid Troyanovsky (2006-05-15 23:06:00) [1]
> Ezorcist (15.05.06 21:34) [6]
> А как собственно использовать этот код? [5] Всмысле для
> Image например?
Можно обойтись и без создания наследника для контрола,
т.е., обрабатывать оные события в его паренте.
http://rsdn.ru/Forum/Message.aspx?mid=541365&only=1
--
Regards, LVT.
Loginov Dmitry (2006-05-15 22:53:00) [2]Ezorcist (15.05.06 21:34) [6]
А как собственно использовать этот код?
Это собственно и есть компонент. Сперва установи его (Component -> Install Component).
Всмысле для Image например?
Напиши TImage вместо TPanel - будет для Image.
Ezorcist (2006-05-15 21:34:00) [3]А как собственно использовать этот код? [5] Всмысле для Image например?
Gydvin (2006-05-11 09:24:00) [4]ой извините )))
вот от tpanel
unit Newpanel1;
interface
uses
SysUtils, Classes, Controls, StdCtrls,ExtCtrls,messages;
type
tNewpanel = class(Tpanel)
private
{ Private declarations }
FOnMouseLeave: TNotifyEvent;
FOnMouseEnter: TNotifyEvent;
protected
{ Protected declarations }
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
public
{ Public declarations }
published
{ Published declarations }
property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
end;
procedure Register;
implementation
procedure tNewpanel.CMMouseEnter(var Message: TMessage);
begin
inherited;
if Assigned(FOnMouseEnter) then
FOnMouseEnter(Self);
end;
procedure tNewpanel.CMMouseLeave(var Message: TMessage);
begin
inherited;
if Assigned(FOnMouseLeave) then
FOnMouseLeave(Self);
end;
procedure Register;
begin
RegisterComponents('Samples', [TNewpanel]);
end;
end.
Loginov Dmitry (2006-05-11 08:51:00) [5]Gydvin © (11.05.06 8:37) [2]
В обычном TLabel эти события уже присутствуют.
sniknik (2006-05-11 08:38:00) [6]события есть, но обрабатываются они обычно сами внутри компанента, методы для "вывода наружу" не сделаны (ничего не мешает самому также сделать).
псмотри исходный код компанента TSpeedButton например.
Gydvin (2006-05-11 08:37:00) [7]вот потомок от лабел с нужными тебе функциями
unit Newlabel1;
interface
uses
SysUtils, Classes, Controls, StdCtrls;
type
tNewlabel = class(TLabel)
private
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
published
{ Published declarations }
property OnMouseEnter;
property OnMouseLeave;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Samples', [TNewlabel]);
end;
end.
Elen (2006-05-11 08:26:00) [8]Есть событие OnMouseMove для любых визуальных объектов попробуй его