Суть такая: Создал компонент на основе 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.