Wie kann ich auf OnMouseEnter und OnMouseLeave Events reagieren?
Wie kann ich auf MouseEnter und MouseLeave reagieren, wenn es diese Events in einer Komponente nicht gibt?
Ganz einfach: Man muß die entsprechenden Windows nachrichten selber anfangen, hier am Beispiel eines tEdit:
interface
type
TTestEdit = class(TEdit)
private
FOnMouseEnter: TNotifyEvent;
FOnMouseLeave: TNotifyEvent;
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
published
property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
end;
implementation
procedure TTestEdit.CMMouseEnter(var Message: TMessage);
begin
inherited;
if not(csLoading in ComponentState) and Assigned(FOnMouseEnter) then begin
FOnMouseEnter(Self);
end;
end;
procedure TCustomdpEdit.CMMouseLeave(var Message: TMessage);
begin
inherited;
if not(csLoading in ComponentState) and Assigned(FOnMouseLeave) then begin
FOnMouseLeave(Self);
end;
end;
| Delphi 1 | Delphi 2 | Delphi 3 | Delphi 4 |
| nicht getestet | Version nicht betroffen | getestet |
siehe auch: