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

Delphi Sources



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

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

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

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

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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:42.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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