Einzelnen Beitrag anzeigen

Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#17

Re: Form schliessen wenn die Maus das Form verlässt.

  Alt 7. Jun 2005, 10:47
sorry, ich erkläre es gerne.

Meine Anwendung besteht aus einem MainForm.
Das MainForm erzeugt ein SecondForm und setzt zugleich den Mauscursor
in der Mitte von SecondForm. Das SecondForm beinhaltett nur ein TLabel.

Wenn die Maus die Form-Grenzen das SecondForm verläst, soll das
SecondForm geschlossen werden.

CM_MOUSELEAVE (siehe unten) feuert leider auch wenn der Mauscursor
über das SecondForm.Label1 fährt.
Wenn ich das Label umfahre und danach die Formgrenzen verlasse wird
das SecondForm ganz zuverlässig geschlossen.

Ich müsste also herausfinden wodurch WMMouseLeave gefeuert wurde.
Steht möglicherweise eine Information in der TMessage Struktur
die dafür verwendbar währe?


Delphi-Quellcode:
  private
    { Private declarations }
    Procedure WMMouseLeave(Var Msg: TMessage); Message CM_MOUSELEAVE;
  end;


var
  frSecondForm: TSecondForm;

implementation
{$R *.dfm}

procedure TSecondForm.WMMouseLeave(var Msg: TMessage);
begin
  SecondForm.close; //funkt einwandfrei

  {funkt leider nicht zuverlässig}
// if not PtInRect(SecondForm.BoundsRect, Mouse.CursorPos)
// then SecondForm.close;

end;
Ich hoffe es ist jetzt klar geworden was ich meine.
Ansonsten kann ich gerne eine Mini-APP erzeuge.

Gruß Kostas
  Mit Zitat antworten Zitat