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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.08.2008, 20:29
Аватар для Admin
Admin Admin вне форума
Администратор
 
Регистрация: 03.10.2005
Адрес: Россия, Москва
Сообщения: 1,564
Версия Delphi: Delphi 7
Репутация: выкл
По умолчанию Компонент TImage, дополняющий его функциональность

Нашел в нете пример и дабы он не пропал, выкладываю сюда, авось кому-то будет полезен (где-то подобное встречал для TLabel).

Пример расширеного компонента TImage, в котором добавлены события "OnMouseLeave" и "OnMouseEnter" возникающие при появлении / исчезании мыши на изображении (на компоненте TImage).

Код:
unit ExtImage;

interface

uses
  Controls, ExtCtrls, Messages, Classes, Graphics;

type
  TCustomExtImage = class(TImage)
  private
    FOnMouseLeave: TNotifyEvent;
    FOnMouseEnter: TNotifyEvent;
    procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
  protected
    property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
    property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;

    procedure MouseEnter; virtual;
    procedure MouseLeave; virtual;
  end;

  TExtImage = class(TCustomExtImage)
  published
    property OnMouseEnter;
    property OnMouseLeave;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Supplement', [TExtImage]);
end;

{ TCustomExtImage }

procedure TCustomExtImage.CMMouseEnter(var Message: TMessage);
begin
  MouseEnter;
end;

procedure TCustomExtImage.CMMouseLeave(var Message: TMessage);
begin
  MouseLeave;
end;

procedure TCustomExtImage.MouseEnter;
begin
  if Assigned(FOnMouseEnter) then
    FOnMouseEnter(Self);
end;

procedure TCustomExtImage.MouseLeave;
begin
  if Assigned(FOnMouseLeave) then
    FOnMouseLeave(Self);
end;

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


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter