当鼠标悬停在 Delphi 中的 Timage 组件上时显示表单

Display a form while mouse hovers over a Timage component in Delphi

我只想在光标像提示一样悬停在 TImage 组件上时显示表单。我可以使用“OnMouseMove”事件来显示表单,但是我不确定鼠标离开图像后如何隐藏表单。我该怎么做?

提前致谢

  1. 在您的表单中添加一个名为 Timer1 的 TTimer 控件(可能来自系统选项卡控件)。

  2. 将 Timer1 Inteval 属性 设置为 100,这意味着它将每 100 毫秒检查一次光标位置,(一秒钟 10 次)。

  3. 将 Timer1 Enabled 属性 设置为 True。

  4. 在Timer1的OnTimer事件中添加如下代码:

procedure TForm1.Timer1Timer(Sender: TObject);
var
  oCursorPos: TPoint;
  oImagePos: TPoint;
  bInside: boolean;
begin
  //Get position of Cursor in Screen Coordinates
  GetCursorPos(oCursorPos);

  //Convert coordinates of Image1 from Client to Screen Coordinates
  oImagePos := Self.ClientToScreen(Point(Image1.Left, Image1.Top));

  bInside := (oCursorPos.x >= oImagePos.x) and (oCursorPos.x <= oImagePos.x + Image1.Width) and
             (oCursorPos.y >= oImagePos.y) and (oCursorPos.y <= oImagePos.y + Image1.Height);

  if bInside then
  begin
    //Cursor is over Image1 -> insert code to show the secondary form

  end
  else
  begin
    //Cursor is not over Image1 -> insert code to hide the secondary form

  end;

end;

就这些了。