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

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

Событи на мыше [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 для любых визуальных объектов попробуй его


Наверх

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