Wenn das Panel das Edit kennt, dann wäre das ein Ansatz:
Delphi-Quellcode:
procedure TodPanelCourt.CMMouseEnter(
var Message: TMessage);
begin
inherited;
...
BitBtnCancel.Visible := True;
BitBtnCancel.Left := Width - BitBtnCancel.Width;
BitBtnCancel.Top := 0;
end;
procedure TodPanelCourt.CMMouseLeave(
var Message: TMessage);
var
pt: TPoint;
H: hwnd;
begin
inherited;
...
GetCursorPos(pt);
H := WindowFromPoint(pt);
if (H =
Handle)
or (H = BitBtnCancel.Handle)
then
Exit;
BitBtnCancel.Visible := False;
end;
Ansonsten kann man noch prüfen, ob sich die Maus noch über dem Panel befindet:
Delphi-Quellcode:
function IsMouseOverControl(const ctrl: TControl): boolean;
var
sr: TRect;
begin
sr := Rect(ctrl.ClientToScreen(Point(0, 0)), ctrl.ClientToScreen(Point(ctrl.Width, ctrl.Height)));
result := PtInRect(sr, Mouse.CursorPos);
end;