Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Компоненты и классы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.04.2012, 21:53
Аватар для Fantomas_RUS
Fantomas_RUS Fantomas_RUS вне форума
Прохожий
 
Регистрация: 12.10.2010
Сообщения: 47
Репутация: 11
Вопрос События в компоненте?

Суть такая: Создал компонент на основе TImage. Теперь хочу создать в нём событие, которое будет реагировать, когда курсор на него наводиться. Но как это сделать? Если бонально просто, в TImage нет сообытия OnMove. Как же его туда добавить? Просто по сообщениям из Windows пока ни изучил материал. Как это хоть делаеться?
Код:

Код:
type
  TMyEvent =  procedure(Sender: TObject) of object;
  TButonImage = class (TImage)
  private
    Events: TApplicationEvents;
    fIndex: Integer;
    fOnMouseMove: TMyEvent;
    procedure DoOnMouseMove(Sender:TObject);
    procedure SetIndex(Index:Integer);
    procedure SetPicture(Name:string);

  published
    property Index: Integer read fIndex write SetIndex;
    property OnMouseMove: TMyEvent read fOnMouseMove;
  public
    constructor Create(Aowner: TComponent);
end;

implementation

uses Unit1;
{ ButonImage }

constructor TButonImage.Create(Aowner: TComponent);
begin
  inherited Create(Aowner);
  Parent:=TWinControl(Aowner);
  Self.Height:=100;
  Self.Width:=100;
SetIndex(0);
Self.Perform(WM_MOUSEMOVE,0,0);
end;

procedure TButonImage.DoOnMouseMove(Sender: TObject);
begin
  if Sender = Self then
    if Assigned(fOnMouseMove) then fOnMouseMove(Self)
    else
      begin
      SetIndex(0);
      end;
end;

procedure TButonImage.SetIndex(Index: Integer);
begin
fIndex:=Index;
case fIndex of
  -1: SetPicture('11.png');
   0: SetPicture('12.png');
   1: SetPicture('13.png');
end;
end;

procedure TButonImage.SetPicture(Name: string);
begin
Self.Picture.LoadFromFile(Name);
end;

end.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:50.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025