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