Thema: Delphi OnMouseOut-Event

Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#11

Re: OnMouseOut-Event

  Alt 20. Jan 2007, 15:07
Hallo,

ist es wirklich notwendig, einen Hook zu installieren? Die Verarbeitung der Nachricht CM_MOUSEENTER in Verbindung mit einem Timer löst das Problem doch ebenfalls:

Delphi-Quellcode:
// uses ExtCtrls

type
  TForm1 = class (TForm)
    procedure FormCreate (Sender: TObject);
  private
    FTimer : TTimer;
    procedure CMMouseEnter (var Msg: TWMMouse); message CM_MOUSEENTER;
    procedure Timer1Timer (Sender: TObject);
  end;

procedure TForm1.CMMouseEnter (var Msg: TWMMouse);
begin
  inherited;
  AlphaBlend := False;
  FTimer.Enabled := True;
end;

procedure TForm1.FormCreate (Sender: TObject);
begin
  AlphaBlendValue := 128;
  AlphaBlend := False;
  FTimer := TTimer.Create(Self);
  FTimer.Interval := 100;
  FTimer.OnTimer := Timer1Timer;
end;

procedure TForm1.Timer1Timer (Sender: TObject);
begin
  if PtInRect(BoundsRect, Mouse.CursorPos) then
    Exit;
  FTimer.Enabled := False;
  AlphaBlend := True;
end;
Gruß Hawkeye
  Mit Zitat antworten Zitat