Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.15;
Скачать: CL | DM;

Вниз

наследник от TPanel с onmouseleave   Найти похожие ветки 

 
spacerex ©   (2002-06-27 17:15) [0]

Как создать Свой наследник от TPanel с onmouseleave


 
Игорь Шевченко ©   (2002-06-27 17:17) [1]

Сам наследник:

unit MouseSensitivePanel;

interface
uses
ExtCtrls, Controls, Classes, Messages;

type
TMouseSensitivePanel = class(TPanel)
private
FOnMouseLeave: TNotifyEvent;
FOnMouseEnter: TNotifyEvent;
procedure CMMouseEnter (var Message : TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave (var Message : TMessage); message CM_MOUSELEAVE;
procedure DoMouseEnter; dynamic;
procedure DoMouseLeave; dynamic;
published
property OnMouseEnter : TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
property OnMouseLeave : TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
end;


implementation

{ TMouseSensitivePanel }

procedure TMouseSensitivePanel.CMMouseEnter(var Message: TMessage);
begin
inherited;
DoMouseEnter();
end;

procedure TMouseSensitivePanel.CMMouseLeave(var Message: TMessage);
begin
inherited;
DoMouseLeave();
end;

procedure TMouseSensitivePanel.DoMouseEnter;
begin
if Assigned(FOnMouseEnter) then
FOnMouseEnter(Self);
end;

procedure TMouseSensitivePanel.DoMouseLeave;
begin
if Assigned(FOnMouseLeave) then
FOnMouseLeave(Self);
end;

end.


Пример использования:

unit main;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
MouseSensitivePanel, ExtCtrls;

type
TForm1 = class(TForm)
Panel1: TPanel;
procedure FormCreate(Sender: TObject);
private
FPanel : TMouseSensitivePanel;
procedure PanelMouseEnter (Sender : TObject);
procedure PanelMouseLeave (Sender : TObject);
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.PanelMouseEnter(Sender: TObject);
begin
(Sender AS TPanel).Color := clRed;
end;

procedure TForm1.PanelMouseLeave(Sender: TObject);
begin
(Sender AS TPanel).Color := clBtnFace;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
FPanel := TMouseSensitivePanel.Create(Self);
with FPanel do begin
Parent := Self;
BoundsRect := Panel1.BoundsRect;
OnMouseEnter := PanelMouseEnter;
OnMouseLeave := PanelMouseLeave;
end;
end;

end.




Страницы: 1 вся ветка

Текущий архив: 2002.07.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.058 c
14-47729
McSimm
2002-06-11 17:20
2002.07.15
О ботанике... :)


3-47088
Adventure
2002-06-12 11:04
2002.07.15
***** Вопрос с СПЕЦИАЛИСТАМ по базам данных!


1-47319
dimanew
2002-07-01 09:26
2002.07.15
Например есть дата 01.07.2002 есть ли стандартная функция


1-47519
sdram
2002-07-04 17:28
2002.07.15
есть ли функция проверка преобразования strtoint


14-47742
SleD
2002-06-03 19:40
2002.07.15
---|Ветка была без названия|---